将RSA密钥从LockBox 2转换为LockBox 3

时间:2013-10-25 06:41:04

标签: delphi rsa asn.1 lockbox-3 lockbox-2

我将项目从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

0 个答案:

没有答案