我必須使用帶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