我正在尝试读取私钥和.PFX文件的证书。 我都需要使用此单元(https://github.com/cybexr/Delphi-unit-OpenSSL/blob/master/OpenSSLUtils.pas)的MimeSign方法对消息进行签名。 我正在使用此代码
procedure ReadKeyFromPFX(PFXFileName: TFileName);
var
Certfile: pBIO;
PFX: pPKCS12;
PCert : PX509;
POtherCerts : pSTACK_OFX509;
PKey : pEVP_PKEY;
Sucesso : Integer;
begin
Certfile := BIO_new(BIO_s_file());
BIO_read_filename(Certfile, PAnsiChar(AnsiString(PFXFileName)));
PFX := d2i_PKCS12_bio(Certfile, nil);
Sucesso := PKCS12_parse(PFX, nil , PKey, PCert, POtherCerts);
fCertificate := PCert;
fKey := PKey;
end;
Sucesso返回0并根据openssl文档,这意味着一个错误(https://www.openssl.org/docs/manmaster/man3/PKCS12_parse.html),但是如果我调用ERR_error_string(ERR_get_error, @ErrMsg);
,我得到的就是这个