Wie wäre es, wenn jemand den Debugger nimmt und schaut, was da passiert?
Delphi-Quellcode:
procedure TSignatory.StoreKeysToStream(
Store: TStream; Parts: TKeyStoragePartSet);
begin
if assigned( FCryptoKeys) then
FCryptoKeys.StoreToStream( Store, Parts);
if assigned( FSigningKeys) then
FSigningKeys.StoreToStream( Store, Parts);
end;
procedure TAsymetricKeyPair.StoreToStream(
Store: TStream; Parts: TKeyStoragePartSet);
var
hasPart: boolean;
begin
if partPublic in Parts then
begin
hasPart := assigned( FPublicPart) and (not FPublicPart.isEmpty);
Store.WriteBuffer( hasPart, SizeOf( hasPart));
if hasPart then
FPublicPart.SaveToStream( Store)
end;
if partPrivate in Parts then
begin
hasPart := assigned( FPrivatePart) and (not FPrivatePart.isEmpty);
Store.WriteBuffer( hasPart, SizeOf( hasPart));
if hasPart then
FPrivatePart.SaveToStream( Store)
end
end;
Und was das Lesen von fremden Keys betrifft ... hier ist es ein wohl eher binäres und eventuell sogar "eigenes" propitäres Format.
Bei so Textdateien ala RSA PRIVATE KEY, würde ich eher mal bei TOpenSSL_Signatory vorbeisehn.