Skip to content

Commit 5091ea0

Browse files
authored
Merge pull request #237 from tamasan238/pr236
[JA] FIPS FAQ UPDT Q4 2025
2 parents a6c6fbc + 4e0456b commit 5091ea0

File tree

2 files changed

+55
-3
lines changed

2 files changed

+55
-3
lines changed

wolfSSL-FIPS-FAQ/src-ja/section01.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
wolfSSL FIPSの構築/実装に関する一般的な質問を解決するのに役立ちます。
55
ご質問がこのドキュメントに記されていない場合は、wolfSSLマニュアルをご確認いただくか、[[email protected]](mailto:[email protected])までお気軽にお問い合わせください。
66

7+
最終更新:2025/12/8
8+
79
## 目次
810

911
1. バージョンX.X.X.Xで検証したにも関わらず、`wolfSSL_Y.Y.Y_commercial-fips-OE-v2.7z`が届きました。
@@ -20,7 +22,9 @@ wolfSSL FIPSの構築/実装に関する一般的な質問を解決するのに
2022
このほか、以下についての情報も掲載しています。
2123

2224
- `wc_SetSeed_Cd()`コールバックとTLSレイヤーについて
25+
- `wc_SetSeed_Cb()`コールバックとカスタムシード生成関数について
2326
- POST
2427
- すべての`CAST()`のスレッドに関する考慮事項
25-
- `wc_SetSeedCb()`は少し特殊です
28+
- `wc_SetSeedCb()`はCAST'sとの関係において少し特殊です
2629
- 鍵アクセス管理
30+
- 使用前にアンロック、使用後に再ロックが必要なAPIリスト

wolfSSL-FIPS-FAQ/src-ja/section02.md

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,54 @@ extern unsigned int my_rng_seed_gen(void);
202202
/* アプリケーションレベルにおけるmy_rng_seed_gen()実装 */
203203
```
204204
205+
## wc_SetSeed_Cb() コールバックとカスタムシード生成関数について
206+
207+
潜在的な実装バグを避けるため、以下の手順でカスタムシード関数を追加することを推奨しています。
208+
209+
ステップ 1) `user_settings.h` または `settings.h` に以下を追加します。
210+
211+
```c
212+
/* シードソース */
213+
extern unsigned int my_rng_seed_gen(byte* output, word32 sz);
214+
#undef CUSTOM_RAND_GENERATE_SEED
215+
#define CUSTOM_RAND_GENERATE_SEED my_rng_seed_gen
216+
```
217+
218+
ここで、FIPS 140-3暗号処理を使用するもののFIPS 140-3検証の対象ではない、
219+
モジュール境界外のあらゆるものを ***Consuming Application*** と定義します。
220+
(ESVの対象となる可能性はありますが、それは140-3とは別のものです。)
221+
222+
ステップ 2) ***Consuming Application*** レベルでコールバック関数を実装します。
223+
224+
``` c
225+
/* @param output エントロピービットを1バイトずつ埋め込むバッファ。
226+
* ソリューションがバイトではなくビットを返す場合、
227+
* 'sz' ではなく、'sz' の8倍の値を取得するようにしてください。
228+
* @param sz 出力バッファが保持できるバイト数。
229+
* 使用アプリケーションで宣言されたサイズに基づきます。
230+
*/
231+
unsigned int my_rng_seed_gen(byte* output, word32 sz)
232+
{
233+
/* 以下のように実装してください。 */
234+
235+
/* バッファ 'output' に 'sz' バイトのエントロピーを書き込みます。
236+
* 埋め込みに失敗した場合は、このシステムの適切なエラーコードを返します。
237+
* それ以外の場合は、成功を示す 0 を返します。
238+
*/
239+
}
240+
```
241+
242+
ステップ 3) 最後に、シード生成メカニズムとして ***のみ*** wolfSSL提供のコールバック `wc_GenerateSeed()` を使用してください。
243+
これを ***Consuming Application*** 内で以下のように登録します。
244+
245+
```c
246+
#ifdef WC_RNG_SEED_CB
247+
wc_SetSeed_Cb(wc_GenerateSeed);
248+
#else
249+
#error "Module was not compiled with required setting WC_RNG_SEED_CB"
250+
#endif
251+
```
252+
205253
## POST
206254

207255
FIPS 140-2において、POSTは「Power On Self Test」を意味していました。
@@ -275,7 +323,7 @@ if (wc_RunCast_fips(FIPS_CAST_RSA_SIGN_PKCS1v15) != 0){
275323
}
276324
```
277325

278-
## `wc_SetSeedCb()`は少し特殊です
326+
## `wc_SetSeedCb()`はCAST'sとの関係において少し特殊です
279327

280328
`wc_SetSeed_Cb()`はDRBGの最初のオペレーショナル使用であり、そのためコールバックが初めて設定されるときにCASTが実行されます。
281329
CASTでの競合状態を避けるため、ユーザーはスレッドごとではなく起動時に1回シードコールバックを設定します。
@@ -384,7 +432,7 @@ static inline int true_lock(void)
384432
#endif
385433
```
386434

387-
### 使用前にアンロック、使用後に再ロックが必要なAPIリスト
435+
## 使用前にアンロック、使用後に再ロックが必要なAPIリスト
388436

389437
```
390438
* wc_PRF

0 commit comments

Comments
 (0)