307488_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

307488_ja-JP

307488_ja-JP

CAAMとカーネル暗号テスト<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちは、皆さん。

LinuxのさまざまなバージョンやさまざまなボードでCAAMを有効にすると、いくつかの不安なエラーメッセージが表示されます。

カーネルの自己テスト。

SABRE-SD 3.10.31-alpha でのテスト

root@imx6qsabresd:~# dmesg

...

alg: ハッシュ: hmac-sha1-caam のテスト 1 が失敗しました

00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00000010: f1 46 は 00 です

alg: ハッシュ: sha1-caam のテスト 1 が失敗しました

00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00000010: 9c d0 d8 9d

alg: ハッシュ: hmac-sha224-caam のテスト 1 が失敗しました

00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00000010: 47 b4 b1 16 99 12 ba 4f 53 68 4b 22

alg: ハッシュ: sha224-caam のテスト 1 が失敗しました

00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00000010: 2a ad bc e4 bd a0 b3 f7 e3 6c 9d a7

root@imx6qsabresd:~# cat /proc/cmdline

コンソール=ttymxc0,115200 ip=dhcp ルート=/dev/mmcblk0p2 rootwait caam

カーネル構成は、いくつかのデバッグ フラグを追加した標準の v7_defconfig と基本的に同じです。

~/linux-imx6$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- savedefconfig を作成します

スクリプト/kconfig/conf --savedefconfig=defconfig Kconfig

~/linux-imx6$ diff defconfig arch/arm/configs/imx_v7_defconfig

253a254

> CONFIG_USB_PHY=y

329d329

< CONFIG_DEBUG_LOCK_ALLOC=y

334d333

< # CONFIG_CRYPTO_MANAGER_DISABLE_TESTSが設定されていません

カーネル3.0.35_4.1.0でも同じ結果が出ていますおよび Nitrogen6x 上の 3.10.17-1.0.0-ga。

これについて何か知見をお持ちの方はいらっしゃいますか?

よろしくお願いいたします。

エリック

i.MX6_すべてLinuxRe: CAAM and kernel crypto tests

SecretCryptos は、匿名の暗号取引のためのワンストップ ソリューションです。暗号ミキサの使用や安全な取引所での取引をお考えの場合でも、SecretCryptos はすべての取引の完全なプライバシーと匿名性を保証します。

SecretCryptos 暗号ミキサと取引所


すべてのミキサページ(コインあたり)

SecretCryptos 暗号ミキサー|ビットコイン (BTC) ミキサー|イーサリアム (ETH) ミキサー|テザー (USDT) ミキサー| USD コイン (USDC) ミキサー| BNB (BSC) ミキサー|ライトコイン (LTC) ミキサー|ドージコイン (DOGE) ミキサー| XRP (リップル) ミキサー|ソラナ (SOL) ミキサー| TRON (TRX) ミキサー| TON (トンコイン) ミキサー|ポリゴン (MATIC) ミキサー|アバランチ (AVAX) ミキサー|カルダノ (ADA) ミキサー|ポルカドット (DOT) ミキサー|柴犬 (SHIB) ミキサー

インスタント暗号通貨取引

暗号通貨取引所

62a314_66eab6e98f404d46a2d43c76933e6802~mv2

Re: CAAM and kernel crypto tests<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

ありがとう、ジョン

Re: CAAM and kernel crypto tests<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

この問題に対する適切な修正は、Herbert Xuのcrypto-2.6にあります。木。具体的には、 LKML: Herbert Xu: Crypto Fixes for 3.13およびLKML: Herbert Xu: Re: Crypto Fixes for 3.13 で問題が修正されます。3.10.xxにバックポートする必要がある

Re: CAAM and kernel crypto tests<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Freescale の Steve Cornelius 氏と他の人々のおかげで、この問題はキャッシュの一貫性と関係があることを示すことができました。

特に、CAAM ドライバは、すべての入力と出力がキャッシュ ライン境界 (i.MX6 では 32 バイト) に揃えられることを想定しています。

testmgr コードは元々ソフトウェア実装をテストするために作成されたため、カーネル 3.10.17 時点では特定の配置が保証されず、それが障害の原因となっていましたが、これを解決するための簡単な更新によってエラーを防ぐことができます。

crypto testmgr: 結果バッファをキャッシュラインに合わせる · e3e7ad4 · boundarydevices/linux-imx6 · GitHub

コミット ログに記載されているように、入力と出力のこの要件はユーザー空間コードにも存在するため、アプリケーションは割り当てに注意する必要があります。

Re: CAAM and kernel crypto tests<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

jamesboneさん、このCASEの最新情報はありますか?

Re: CAAM and kernel crypto tests<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

まだ修正されていません。

Re: CAAM and kernel crypto tests<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

この問題は修正されましたか? それとも、解決策はただ遅延するだけですか?

私も同じ問題を抱えています。しかし、テストを成功させるには、遅延値を最大 100usec まで変更する必要があります。

それは大きな問題です。

Re: CAAM and kernel crypto tests<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

jamesboneさん、このCASEのフォローアップを続けてもらえますか?

Re: Re: CAAM and kernel crypto tests<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

さらに詳しく:

caam_jr_dequeue () の次の 2 つの場所のどちらにも同じ udelay(20) があっても、テストは成功しません。

Linux-imx6/ドライバ/crypto/caam/jr.c at boundary-imx_3.10.17_1.0.0_ga · boundarydevices/Linux-imx6 · Git...

Linux-imx6/ドライバ/crypto/caam/jr.c at boundary-imx_3.10.17_1.0.0_ga · boundarydevices/Linux-imx6 · Git...

Re: Re: CAAM and kernel crypto tests<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

これらのテストに関するさらに詳しい情報は…

caam_jr_enqueue() の最後にある udelay(20) 呼び出しによりテストは成功します。SO、何らかのタイミング バグであると思われます。

~/linux-imx6$ git diff

diff --git a/ドライバ/crypto/caam/jr.c b/ドライバ/crypto/caam/jr.c

インデックス 80ddddb..c8c4a7e 100644

--- a/ドライバ/crypto/caam/jr.c

+++ b/ドライバ/crypto/caam/jr.c

@@ -288,6 +288,7 @@ int caam_jr_enqueue(構造体デバイス *dev, u32 *desc,

spin_unlock_bh(&jrp->inplock);

+ 遅延(20);

0を返します。

}

EXPORT_SYMBOL(caam_jr_enqueue);

Re: Re: CAAM and kernel crypto tests<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

さらなる更新: 3.10.17-1.0.0-ga でのその後の起動では、ゼロの 8 バイトだけが表示されます。

alg: ハッシュ: hmac-sha1-caam のテスト 1 が失敗しました

00000000: 00 00 00 00 00 00 00 00 e2 8b c0 b6 fb 37 8c 8e

00000010: f1 46 は 00 です

alg: ハッシュ: sha1-caam のテスト 1 が失敗しました

Re: CAAM and kernel crypto tests<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

追加メモ:

テスト失敗時に表示される値:

  1. alg: ハッシュ: hmac-sha1-caam のテスト 1 が失敗しました
  2. 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  3. 00000010: f1 46 は 00 です

予想された結果と似ているように見えます。これは、crypto/testmgr.c の hmac-sha1 の最初のテスト ベクトルです。

静的構造体hash_testvec hmac_sha1_tv_template[] = {

  {

.key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",

.ksize = 20,

.plaintext = "こんにちは",

.psize = 8,

.ダイジェスト = "\xb6\x17\x31\x86\x55\x05\x72\x64"

「\xe2\x8b\xc0\xb6\xfb\x37\x8c\x8e\xf1」

「\x46\xbe」、

...

シーケンス「f1 46 be」が期待値と一致することに注意してください。

また、失敗した各テストの最初の 16 バイトがゼロとして表示されることにも注意してください。

Re: CAAM and kernel crypto tests<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちは、ジェイミー。

3.0.35_4.1.0でテストしていることに気づかなかったようです。3.10.17-1.0.0-ga、および 3.10.31_1.0.0-alpha。

それぞれに、他のページからのパッチがすでに含まれています。

dma_map_sg_chained へのパッチ:

http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/commit/?h=imx_3.0.35_4.0.0&id=b30237c790...

3.10.17 ソース:

https://github.com/boundarydevices/linux-imx6/blob/boundary-imx_3.10.17_1.0.0_ga/drivers/crypto/caam...

driver_algs へのパッチ:

http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/commit/?h=imx_3.0.35_4.0.0&id=6068d7a77b...

3.10.17 ソース:

https://github.com/boundarydevices/linux-imx6/blob/boundary-imx_3.10.17_1.0.0_ga/drivers/crypto/caam...

また、私たちが目にしている問題はハッシュ アルゴリズムにのみ関係するものであることを明確に説明していませんでした。

よろしくお願いいたします。

エリック

Re: CAAM and kernel crypto tests<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

親愛なるエリックへ

Linux 3.0.35の場合CAAMの適切な機能を得るには、いくつかのパッチが必要です。

Q&A: iMX6 の Linux で CAAM ドライバが機能しないのはなぜですか?


すてきな一日を、
ハイメ

-----------------------------------------------------------------------------------------------------------------------
注: この投稿で質問が解決した場合は、「正解」ボタンをクリックしてください。ありがとう!
-----------------------------------------------------------------------------------------------------------------------

标记 (1)
无评分
版本历史
最后更新:
‎11-21-2025 06:34 PM
更新人: