Delphi LockBox3,Asymetric_Engine.createFromStream错误
编辑:因为我无法让这段代码正常工作,所以我做了一点变通:现在我通过ShellExecute调用openssl控制台(虽然不太安全,但可以正常工作) 早上好,大家好,我很头疼如何使用delphi代码:Delphi LockBox3,Asymetric_Engine.createFromStream错误,delphi,rsa,lockbox-3,Delphi,Rsa,Lockbox 3,编辑:因为我无法让这段代码正常工作,所以我做了一点变通:现在我通过ShellExecute调用openssl控制台(虽然不太安全,但可以正常工作) 早上好,大家好,我很头疼如何使用delphi代码: (included uTPLb_* libraries) function Crypto.encodeRSA(msg:String;test:Boolean = False):String; var file_path:String; keyStream:TMemoryStrea
(included uTPLb_* libraries)
function Crypto.encodeRSA(msg:String;test:Boolean = False):String;
var
file_path:String;
keyStream:TMemoryStream;
res:String;
Codec:TCodec;
wasAborted:Boolean;
KeyPair:TAsymetricKeyPair;
Key:TSymetricKey;
lib:TCryptographicLibrary;
signatory:TSignatory;
begin
codec:=TCodec.Create(nil);
signatory:=TSignatory.Create(nil);
lib:=TCryptoGraphicLibrary.Create(nil);
try
if test then
begin
file_path:=PUBLIC_KEY_TEST_FILE;
end
else
begin
file_path:=PUBLIC_KEY_FILE;
end;
file_path:=GetCurrentDir+'\'+file_path;
keyStream:=TMemoryStream.Create;
keyStream.LoadFromFile(file_path);
codec.Reset;
codec.CryptoLibrary:=lib;
codec.ChainModeId:=ECB_ProgID;
codec.StreamCipherId:='native.RSA';
Codec.StreamCipherId:=RSA_ProgID;
signatory.Codec:=codec;
signatory.LoadKeysFromStream(keyStream,[partPublic]);
//stuff to do...
Result:=res;
finally
lib.Free;
codec.Free;
end;
end;
问题是“signifier.LoadKeysFromStream(keyStream,[partPublic]);”过程继续失败,出现“Stream Error”异常;文件在读取模式下已正确打开
公钥文件的内容是
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsU4LA0ZLWO+twuoReM41
...
-----END PUBLIC KEY-----
(我有完整的钥匙,但我不想泄露)
有人能帮我吗?
我读过关于pkcs#1填充和openssl命令的文章
()
但未识别“-RSAPublicKey_out”(OpenSSL 0.9.8zh 2016年1月14日)。
我还有私钥
感谢所有能帮助我的人
更新:
我还尝试生成加密密钥,但无法读取它们
signatory.storeKeysToStream
结果是一样的
我在这里下载了图书馆:
LockBox3与OpenSSL不兼容。OpenSSL 0.9.8既旧又有缺陷。使用最新版本(1.0.x)我使用1.0.2h版本运行此应用程序,感谢您的建议。LockBox3与OpenSSL不兼容。OpenSSL 0.9.8既旧又有缺陷。使用最新版本(1.0.x)我使用1.0.2h版本运行此应用程序,谢谢您的建议。
signatory.storeKeysToStream