.pemファイルに保存されている秘密鍵を使用してPythonでテキストにデジタル署名する必要があります。最近はM2Cryptoが好ましい方法のようですので、それを使用しています。私はそれのほとんどを手に入れていると思いますが、パディングを構成する方法について混乱しています。具体的には、次のkSecPaddingPKCS1SHA1
ように呼び出されて説明されるパディングスキームを使用して、iPhoneアプリの署名を確認する必要があります。
署名されるデータはSHA1ハッシュです。標準のASN.1パディング、および基になるRSA操作のPKCS1パディングが実行されます。
暗号の専門家ではないので、私はこれが何を意味するのか曖昧な考えしか持っていません。私はRFCのいくつかを調べようとしましたが、それらは侵入できないことがわかりました。RSAオブジェクトの暗号化/復号化メソッドはパディングタイプを使用しているようですが、署名の検証に関連する同様の方法は見当たりません。
特にコードに関して、どんな助けでもありがたいです。
(ある意味で、これはこの質問の逆です。)
わかりました、以下の答えは正しいAFAICTです。次のコードは、パディングスキームtext
を使用してiPhoneで検証するための署名を生成します。kSecPaddingPKCS1SHA1
from M2Crypto import EVP
privkey = EVP.load_key("privkey.pem")
privkey.sign_init()
privkey.sign_update(text)
signature = privkey.sign_final()
(編集して申し訳ありませんが、暗号ハッカーは宇宙で最もお粗末なドキュメンテーションライターの一部であると言えますか?)