我必须使用带RSA的SHA-1算法使用PKCS#1填充对数字签名进行字符串签名。我已经下载Turbo Power Lockbox以与Delphi编程语言一起使用。带锁箱的数字签名密钥
在previous question我学会了如何将私钥从PEM格式转换为DER格式(如果我正确理解的是ASN.1格式并且与Lockbox一起使用)。
我 “被零除” 关于SignString得到一个错误在下面的代码:
uses LbRSA,lbAsym,LbDSA;
procedure TForm1.Button1Click(sender: TObject);
var
mPrivateKey: TLbRSAKey;
mLbRSASSA : TLbRSASSA;
begin
mPrivateKey := TLbRSAKey.Create(aks1024);
mPrivateKey.LoadFromFile('C:\temp\myrsakey.der');
mLbRSASSA := TLbRSASSA.create(nil);
mLbRSASSA.HashMethod := hmSHA1;
mLbRSASSA.PrivateKey.Assign(mprivateKey);
mLbRSASSA.SignString('sign this message');
这是我如何生成的C:\ TEMP \ myrsakey.der:
Ç :\ openssl \ bin \ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -sha1 -subj“/ C = US/ST = CA/L = Mountain View/CN = www.mycompany.com”-keyout myrsakey .pem -out c:\ temp \ myrsacert.pem
使用以下从PEM转换为DER:
C:\ OpenSSL的\ BIN \ OpenSSL的RSA -inform PEM -outform DER -in C:\ TEMP \ myrsakey.pem退房手续C:\ TEMP \ myrsakey.der
任何想法,为什么我通过零错误得到除法?
谢谢,很有帮助。我认为你所说的使用OpenSSL生成的密钥不能与LockBox一起使用。我将尝试OpenSSL库(OpenSSLUtils.pas)。我想这是有道理的;毕竟LockBox已超过7岁。如果有帮助,我试图通过数字签名与谷歌的AuthSub接口。 – 2009-11-23 15:59:55
不一定说它不能完成 - 只是不确定它值得付出的努力:-)如上所述,Lockbox非常古老,一旦你掌握了OpenSSL API,它就可以很好地工作。忘了补充一点,如果你使用的是unicode Delphi,那么你需要从PChar到PByte或PAnsiChar从该网站的pas文件中进行一些更改。 EVP_ *功能是你想要的。 – shunty 2009-11-23 16:15:33