我将项目从Delphi 5转换为XE4。我在Delphi 5中使用了LockBox 2.现在我想使用LockBox 3,但我有一些RSA密钥(在LockBox 2中生成)。我无法在LockBox 3中加载此密钥。 我找了一些关于LockBox 2的信息。我发现LockBox 2使用ASN.1格式来保存密钥。这是真的吗?我找不到哪种格式使用LockBox 3.有没有办法将私钥和公钥从ASN.1转换为使用LockBox 3的格式?
在Delphi 5中使用(LockBox 2):
PrivateRSAKey: TLbRSAKey;
MemStream: TMemoryStream;
...
PrivateRSAKey.LoadFromStream(MemStream);
...
Result := RSAEncryptString(CryptedText, PrivateRSAKey, false); //works fine
在XE4(LockBox 3)中使用:
Codec: TCodec;
Key: TSymetricKey;
MemStream: TMemoryStream; //contains same data as MemStream in Delphi 5
...
Key := Codec.Asymetric_Engine.CreateFromStream(MemStream, [partPrivate]);
Codec.InitFromKey(Key);
...
Codec.DecryptStream(DecryptStream, CryptStream); //CryptedStream contains same data as CryptedText in Delphi 5
//Now DecryptStream contains different data as Result in Delphi 5