PKCS # 1 패딩을 사용하여 RSA에서 SHA-1 알고리즘을 사용하여 문자열에 디지털 서명을해야합니다. Delphi 프로그래밍 언어와 함께 사용하기 위해 Turbo Power Lockbox를 다운로드했습니다.디지털 서명 키 (Lockbox 포함)
previous question에서 개인 키를 PEM 형식에서 DER 형식으로 변환하는 방법을 배웠습니다 (올바르게 이해하면 ASN.1 형식이며 Lockbox와 함께 사용됩니다). \ 임시 \의 myrsakey.der :
C
다음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를 생성하는 방법입니다
은 내가 SignString에서 다음 코드에서 "0으로 나누기"오류를 무엇입니까 : \ openssl \ bin \ openssl req -x509 -nodes -days 365 -newkey rsa : 1024 -sha1 -subj "/ C = US/ST = CA/L = 마운틴 뷰/CN = www.mycompany.com"-keyout myrsakey .pem -out c : \ temp \ myrsacert.pem
PEM로 변환하려면 다음을 사용 데르 :
C를 : \ OpenSSL을 \ 빈 \하려면 openssl RSA -inform PEM -outform DER -in C : \ TEMP \ myrsakey.pem -out C : \ 임시 \의 myrsakey.der을
제로 오류로 나누기가 발생하는 이유는 무엇입니까?
감사합니다. OpenSSL로 생성 된 키는 LockBox에서 사용할 수 없다고 생각합니다. OpenSSL 라이브러리에 OpenSSLUtils.pas를 제공 할 것입니다. 나는 그것이 의미가 있다고 생각한다. afterall LockBox는 7 세 이상입니다. 도움이된다면 디지털 서명을 사용하여 Google의 AuthSub에 연결하려고합니다. –
반드시 할 수는 없다는 말은하지 않습니다. - 노력한 가치가 있는지 확신하지 못합니다 :-) Lockbox는 꽤 오래되었지만 일단 OpenSSL API를 사용하면 제대로 작동합니다. 유니 코드 델파이를 사용한다면 PChar에서 PByte 또는 PAnsiChar로 약간의 변경을해야 할 것입니다. EVP_ * 함수는 원하는 것입니다. – shunty