Wi-Fiホワイトリストを削除し、修正されたBIOSを再びeepromにフラッシュするようにThinkpadのBIOSを修正しました。これを行うには、次のツールを使用する必要があります。Thinkpad-uefi-フラグ起動できるようにイメージに署名します。 Thinkpad-uefi-signにはpycryptodomeが必要です。私はそれを使ってインストールしました。
apt install python3-pycryptodome
しかし、まだ動作していないとエラーが発生します。
ModuleNotFoundError: No module named 'Crypto'
thinkpad-uefi-sign/verify.pyを実行すると。私は最新のパッケージとPython 3.11.5を含むDebian Testing Trixieを使用しています。
私が試したもう一つのことは、次のようにインストールすることです。
pip install pycryptodome
ただし、これはパッケージが破損する可能性があるという警告を提供し、apt install python-xyzを使用してパッケージをインストールできます。その後、python3-fullをインストールし、python3 -m venv /path/to/venvを使用してvenv(仮想環境)を設定しました。次のコマンドを使用してvenvにpycryptodomをインストールしました。
/path/to/venv/bin/pip3 install pycryptodome
次に、thinkpad-uefi-sign/verify.pyスクリプトを実行します。
/path/to/venv/bin/python3 thinkpad-uefi-sign/verify.py Bios_Modded.bin
それでも同じエラーが発生します。その後、venvでpip3を使用してpycryptodomex、Crypto、pycryptoをインストールしようとしましたが、プログラムを実行してもエラーが発生しました。私も次の答えを試してみました。この他の記事、しかしあまり役に立ちませんでした。私はMacBookを試してみましたが、何らかの理由で動作するようですが、これはパッケージングに関する問題かもしれません。仕上げることが役に立ちます。ここにコマンドと完全な出力があります。
$ ./python3_venv_with_pycryptodome/bin/python3 thinkpad-uefi-sign/verify.py Bios_Modded.bin
Traceback (most recent call last):
File "/home/witherslayer/Sowa/ThkpX1CG2_UEFIs/workflow/thinkpad-uefi-sign/verify.py", line 19, in <module>
from Crypto.PublicKey import RSA
ModuleNotFoundError: No module named 'Crypto'
答え1
Pankiのコメントによると、Python venvを有効にした後に署名されたソフトウェアを実行することができました。次のコマンドを使用してbashに対してこれを行います。
$ source <venv>/bin/activate
~からPythonドキュメント。
答え2
このライブラリには3.4.1以降、次の機能があります。
3.4.1(2016年2月21日)
新機能
Cryptodome
(代わりに)パッケージの下にライブラリをインストールするオプションが追加されましたCrypto
。
実際にソースに記載されているように古いPyCryptoライブラリをインストールまたは使用する場合は、古いPyCryptoライブラリとの競合を避ける必要があります。
誰でも:
既存のPyCryptoライブラリをほぼ即座に置き換えます。
You install it with:: pip install pycryptodome In this case, all modules are installed under the `Crypto` package. You can test everything is right with:: pip install pycryptodome-test-vectors python -m Crypto.SelfTest
PyCryptoとPyCryptodomの両方を避けるべきです。お互いに干渉するので、両方を同時に設置してください。したがって、アプリケーション全体が
virtualenv
。
または:
以前のPyCryptoとは独立したライブラリです。
次のコマンドを使用してインストールできます。
pip install pycryptodomex You can test everything is right with:: pip install pycryptodome-test-vectors python -m Cryptodome.SelfTest
この場合、
Cryptodome
すべてのモジュールはこのパッケージの下にインストールされます。既存のPyCryptoとPyCryptodomは共存できます。
aaディストリビュータとして、Debianは潜在的な競合を避けるためにこのオプションを選択しました(以前のPyCryptoをまったく提供していない場合でも):
touch .separate_namespace
use_separate_namespace = os.path.isfile(".separate_namespace")
other_project = "pycryptodomex" other_root = "Cryptodome"
if use_separate_namespace: project_name, other_project = other_project, project_name package_root, other_root = other_root, package_root
最後Crypto
に(venvなしで)Debianパッケージライブラリを使用することもできます。Cryptodome
sign.py
そしてverify.py
。