2010-12-27 4 views
1

I'eは、単純なRSAのPythonスクリプトを得た:PythonのPyCryptoとRSA問題

import Crypto.PublicKey.RSA 
import rsakey 
from Crypto.PublicKey import pubkey 

# Some global stuff 
impl = Crypto.PublicKey.RSA.RSAImplementation(use_fast_math = True) 
RSAObj = impl.construct(rsakey.RSAKeys) 

def decrypt(encrypted): 
     return RSAObj.decrypt(encrypted) 

と私はそれを私のCLIを実行しようと、エラーを示しています

Traceback (most recent call last):
File "otrsa.py", line 6, in impl = Crypto.PublicKey.RSA.RSAImplementation(use_fast_math = True) AttributeError: 'module' object has no attribute 'RSAImplementation'

私は、Pythonには本当に新しいですそれが何を意味するのか分かりません。 私は何らかの助けに感謝します。

答えて

3

Crypto.PublicKey.RSAがRSAImplementationというクラスが含まれていないことを意味します。

のため、次の作品私は(32ビットWindows上のPython 2.7.1で):。それが利用できない場合、それが利用可能な場合、デフォルトでは、高速な数学が使用され、

import Crypto.PublicKey.RSA 
impl = Crypto.PublicKey.RSA.RSAImplementation() 

注意強制use_fast_mathだけで、実行時エラーが発生します。

+0

私は、PyCryptoのすべてがあまりにも少ないドキュメントからは分かりませんが、RSAImplementationは今後変更される可能性のある内部APIです。それが存在する唯一の理由は、SelfTestモジュールがfastmathコードとともに非fastmathコードをテストできるようにするためです。 通常のRSA.construct、RSA.generateなどのメソッドを使用できない場合は、https://bugs.launchpad.net/pycrypto/+bugsにバグを報告してください。 – dlitz

0

ええ、同じエラーが発生します。おそらく、ドキュメントとコードのミスマッチがありますか?

私はpyCryptoを少し使いましたが、M2Cryptoは全体的に優れたライブラリであることがわかりました。試してみるといいかもしれません。