如何从pfx中提取私钥和证书?

时间:2020-06-04 20:09:04

标签: delphi openssl crypt pkcs#12

我正在尝试读取私钥和.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);,我得到的就是这个

error

0 个答案:

没有答案