ここで私の無知を許してください。私はPythonをよく読んでおらず、まったく書くことができません。
CVE-2013-1445 の Python プロジェクトを監査しようとしています。注意が必要なソース ファイルが見つかったと思います (その他の改善の機会の中でも)。ファイルはutil.pyで、次の行があります。
import base64
from Crypto.Hash import HMAC
from Crypto import Random
...
Python crypto docsを見ると、Random
クラスについての言及がありません。hashlib
およびのみhmac
:
The modules described in this chapter implement various algorithms of a
cryptographic nature. They are available at the discretion of the
installation. On Unix systems, the crypt module may also be available.
Here’s an overview:
15.1. hashlib — Secure hashes and message digests
15.2. hmac — Keyed-Hashing for Message Authentication
...
正確にはどこRandom
から来ているのですか?ネイティブですか、それともサードパーティですか?
または、私の質問は、どこCrypto
から来ているのでしょうか? サードパーティの場合Crypto
、サードパーティのライブラリとクラスが (ネイティブのライブラリとクラスに対して) どのように/どこに含まれているかを判断するにはどうすればよいですか?
完全を期すために、Pythonのスコープと名前空間を理解しようとしましたが、現時点では意味がありません(この質問がおそらく示すように)。たとえば、 or には明らかなスコープや名前空間はありませんCrypto
(の一部であるRandom
以外Random
はCrypto
)。
前もって感謝します。