2017-04-15 12 views
1

私は問題を修正しようとしていますが、何度も失敗しました。私はメソッド、sign()を使う必要がありますが、正しいライブラリがインポートされていますが、まだ認識されていません。PKCS1_PSS sign()メソッド

私はPythonでコーディングだし、これは私はそれが重要なようだ持っているものです。

#importing the library 
from Crypto.Signature import PKCS1_PSS 

[...] 
signer = PKCS1_PSS.new(keypair) 
sig = PKCS1_PSS.sign(keypair) 

しかし記号()メソッドが認識されません。そのライブラリからコード全体で唯一のものです:。

「この検査は 動的ディスパッチとダックタイピングのために解決ではなく、やるべき名を検出し、これは限られたが、例 便利な数が可能であるトップレベルとクラスレベルのアイテム。がサポートされています betteインスタンスアイテムよりも。

これを修正する方法についてのご意見はありますか?

答えて

3

PKCS1_PSSのドキュメントは間違っています。現在、それを言う:

from Crypto.Signature import PKCS1_PSS 
from Crypto.Hash import SHA 
from Crypto.PublicKey import RSA 
from Crypto import Random 

message = 'To be signed' 
key = RSA.importKey(open('privkey.der').read()) 
h = SHA.new() 
h.update(message) 
signer = PKCS1_PSS.new(key) 
signature = PKCS1_PSS.sign(key) 

をしかし、それはPKCS1_v1_5

from Crypto.Signature import PKCS1_PSS 
from Crypto.Hash import SHA 
from Crypto.PublicKey import RSA 
from Crypto import Random 

message = 'To be signed' 
key = RSA.importKey(open('privkey.der').read()) 
h = SHA.new() 
h.update(message) 
signer = PKCS1_PSS.new(key) 
signature = signer.sign(h) 
+0

のドキュメントを次のように類似であるべき答えをありがとうございました^^ –