wolfCrypt FIPS Ready API Documentation
以下は、wolfCrypt FIPS Ready API の概要です。 詳細については、wolfCrypt API ドキュメントをご覧ください。
Map of API to FIPS 140-3 module services
Digital Signature Service
| API Call | Description |
|---|---|
| InitRsaKey_fips | オプションのヒープ ヒント p で使用するRSA鍵オブジェクトを初期化します。成功すると 0、エラーの場合は負値を返します。 |
| FreeRsaKey_fips | RSA鍵リソースを解放します。成功すると 0、エラーの場合は負値を返します。 |
| RsaSSL_Sign_fips | サイズ inLen の入力 in に対して RSA鍵署名操作を実行し、rng を使用してサイズ outLen の out に出力します。成功すると 0、エラーの場合は負値を返します。 |
| RsaSSL_VerifyInline_fips | サイズ inLen の入力 in に一時メモリを割り当てずに RSA鍵検証を実行し、出力 out に書き込みます。成功すると 0、エラーの場合は負値を返します。 |
| RsaSSL_Verify_fips | サイズ inLen の入力 in に対して RSA鍵検証を実行し、サイズ outLen の出力 out に書き込みます。成功すると 0、エラーの場合は負値を返します。 |
| SS_Sign_fips | サイズ inLen の入力 in に対して PSS パディングを使用して RSA鍵署名操作を実行し、rng を使用してサイズ outLen の out に出力します。 マスク生成関数 mgf を使用したハッシュアルゴリズム hash を使用します。成功すると 0、エラーの場合は負値を返します。 |
| RsaPSS_SignEx_fips | サイズ inLen の入力 in に対して PSS パディングを使用して RSA鍵署名操作を実行し、rng を使用してサイズ outLen の out に出力します。 これは、マスク生成関数 mgf とソルト長の SaltLen を備えたハッシュアルゴリズム hash を使用します。成功すると 0、エラーの場合は負値を返します。 |
| RsaPSS_VerifyInline_fips | サイズ inLen の入力 in に一時メモリを割り当てずに RSA鍵検証を実行し、出力 out に書き込みます。 マスク生成関数 mgf を使用したハッシュアルゴリズム hash を使用します。成功すると 0、エラーの場合は負値を返します。 |
| RsaPSS_VerifyInlineEx_fips | サイズ inLen の入力 in に対して RSA鍵検証を実行し、サイズ outLen の出力 out に書き込みます。 ハッシュアルゴリズム hash とマスク生成関数 mgf およびソルト長の SaltLen を使用します。成功すると 0、エラーの場合は負値を返します。 |
| RsaPSS_Verify_fips | サイズ inLen の入力 in に対して RSA鍵検証を実行し、サイズ outLen の出力 out に書き込みます。 ハッシュアルゴリズム hash とマスク生成関数 mgf を使用します。成功すると 0、エラーの場合は負値を返します。 |
| RsaPSS_VerifyEx_fips | サイズ inLen の入力 in に対して RSA鍵検証を実行し、サイズ outLen の出力 out に書き込みます。 ハッシュアルゴリズム hash とマスク生成関数 mgf およびソルト長の SaltLen を使用します。成功すると 0、エラーの場合は負値を返します。 |
| RsaPSS_CheckPadding_fips | ハッシュ hashType を使用して、サイズ sigSz の署名 sig をサイズ inSz の入力 in での RSA鍵検証後のパディングをチェックします。成功すると 0、エラーの場合は負値を返します。 |
| RsaPSS_CheckPaddingEx_fips | ハッシュ hashType と長さ saltLen の salt を使用して、サイズ sigSz の署名 sig をサイズ inSz の入力 in での RSA鍵検証後のパディングをチェックします。成功すると 0、エラーの場合は負値を返します。 |
| RsaEncryptSize_fips | RSA鍵の出力サイズを取得します。成功した場合は鍵の出力サイズ(正値)、エラーの場合は負値を返します。 |
| wc_RsaPrivateKeyDecode | サイズ inSz のインデックス inOutIdx で始まるバッファ入力 in から RSA秘密鍵をデコードします。成功すると 0、エラーの場合は負値を返します。 |
| wc_RsaPublicKeyDecode | サイズ inSz のインデックス inOutIdx で始まるバッファ入力 in から RSA公開鍵をデコードします。成功すると 0、エラーの場合は負値を返します。 |
| ecc_init_fips | ECC鍵オブジェクトを使用するために初期化します。成功すると 0、エラーの場合は負値を返します。 |
| ecc_free_fips | ECC鍵オブジェクトのリソースを解放します。成功すると 0、エラーの場合は負値を返します。 |
| ecc_import_x963_fips | サイズ inLen の入力 in から ANSI X9.63 形式の ECC公開鍵をインポートします。成功すると 0、エラーの場合は負値を返します。 |
| ecc_sign_hash_fips | 長さ inlen の入力 in に対して ECC鍵署名操作を実行し、rng を使用して長さ outlen の out に出力します。成功すると 0、エラーの場合は負値を返します。 |
| ecc_verify_hash_fips | 長さ hashlen のハッシュを使用して、サイズ siglen の sig の ECC鍵検証を実行します。 署名検証結果はresで返します。成功すると 0、エラーの場合は負値を返します。 |
鍵生成
| API Call | Description |
|---|---|
| MakeRsaKey_fips | 乱数発生器 rng にモジュラス長 size と指数 e を使用して RSA鍵を生成します。成功すると 0、エラーの場合は負値を返します。 |
| CheckProbablePrime_fips | 長さ nlen のポテンシャル係数については、サイズ pRawSz の候補数 pRaw とサイズ qRawSz の qRaw をチェックして、それらがおそらく素数であるかどうかを確認します。 両方とも、サイズ eRawSz が 1 の指数 eRaw を持つ GCD を持つ必要があります。主な候補は Miller-Rabin でチェックします。 結果は isPrime に書き込みます。成功すると 0、エラーの場合は負値を返します。 |
| RsaExportKey_fips | RSA鍵を、eSz の e、nSz の n、dSz の d、pSz の p、qSz の q のコンポーネントとして出力します。 サイズはバッファのサイズである必要があり、数値の実際の長さに更新されます。成功すると 0、エラーの場合は負値を返します。 |
| ecc_make_key_fips | rng を使用して、サイズ keysize の鍵 key に対して ECC鍵生成操作を実行します。成功すると 0、エラーの場合は負値を返します。 |
| ecc_make_key_ex_fips | rng を使用して、楕円曲線 curve_id を持つサイズ keysize の鍵 key に対して ECC鍵生成操作を実行します。成功すると 0、エラーの場合は負値を返します。 |
| ecc_export_x963_fips | ECC公開鍵を ANSI X9.63 形式でサイズ outLen の out に出力します。成功すると 0、エラーの場合は負値を返します。 |
| InitDhKey_fips | DH鍵オブジェクトを使用できるように初期化します。成功すると 0、エラーの場合は負値を返します。 |
| FreeDhKey_fips | DH鍵リソースを解放します。成功すると 0、エラーの場合は負値を返します。 |
| DhSetKeyEx_fips | サイズ pSz の符号なしバイナリ入力 p、サイズ qSz の q、およびサイズ gSz の g から DH鍵のグループパラメーターを設定します。成功すると 0、エラーの場合は負値を返します。 |
| DhGenerateKeyPair_fips | DH鍵の rng を使用して、サイズ pubSz の公開鍵 pub、サイズ privSz の秘密鍵 priv を生成します。成功すると 0、エラーの場合は負値を返します。 |
| CheckRsaKey_fips | RSA鍵に対してペアごとの鍵検証を実行します。成功すると 0、エラーの場合は負値を返します。 |
| ecc_check_key_fips | ECC鍵に対してペアごとの鍵検証を実行します。成功すると 0、エラーの場合は負値を返します。 |
| DhCheckPubKeyEx_fips | 鍵内のドメインパラメーターまたはサイズ primeSz の素数 prime を用いて、サイズ pubSz の pub 値に対して数学的鍵検証を実行します。 |
| DhCheckPrivKeyEx_fips | 鍵内のドメインパラメーターまたはサイズ primeSz の素数 prime を用いて、サイズ privSz の priv 値に対して数学的鍵検証を実行します。 |
| DhCheckKeyPair_fips | ドメインパラメーターを使用して、サイズ pubSz の pub 値とサイズ privSz の priv 値の間でペアごとの鍵検証を実行します。成功すると 0、エラーの場合は負値を返します。 |
| HKDF_fips | ハッシュ type とサイズ inKeySz の inKey、長さ saltSz のソルト salt と infoSz の情報 info を使用して、HMAC ベースの鍵導出関数を実行します。 鍵はサイズ outSz の出力 out に書き込みます。成功すると 0、エラーの場合は負値を返します。 |
鍵合意
| API Call | Description |
|---|---|
| ecc_shared_secret_fips | privKey とペアの pubKey を使用して ECDHE 鍵合意操作を実行し、結果を長さsharedSzのsharedSecretに保存します。成功すると 0、エラーの場合は負値を返します。 |
| DhAgree_fips | サイズ privSz の DH秘密鍵 priv とサイズ pubSz のペアの公開鍵 otherPub を使用して、サイズ acceptSz の合意 agree を作成します。成功すると 0、エラーの場合は負値を返します。 |
鍵転送
| API Call | Description |
|---|---|
| RsaPublicEncrypt_fips | サイズ inLen の入力 in に対してRSA公開鍵を用いて暗号化し、rng を使用してサイズ outLen の出力 out に書き込みます。成功すると 0、エラーの場合は負値を返します。 |
| RsaPublicEncryptEx_fips | サイズ inLen の入力 in に対してRSA公開鍵を用いて暗号化し、rng を使用してサイズ outLen の出力 out に書き込みます。ハッシュtype のパディングを使用します。 PSS パディングを使用する場合は、サイズ labelSz のラベル labelを持つハッシュと mgf を使用します。成功すると 0、エラーの場合は負値を返します。 |
| RsaPrivateDecryptInline_fips | サイズ inLen の入力 in に一時メモリを割り当てずにRSA秘密鍵を用いて復号し、出力 out に書き込みます。成功すると 0、エラーの場合は負値を返します。 |
| RsaPrivateDecryptInlineEx_fips | サイズ inLen の入力 in に一時メモリを割り当てずにRSA秘密鍵を用いて復号し、出力 out に書き込みます。 typeのパディングを使用します。 PSS パディングを使用する場合は、サイズ labelSz のラベル label を持つハッシュと mgf を使用します。 成功すると 0、エラーの場合は負値を返します。 |
| RsaPrivateDecrypt_fips | サイズ inLen の入力 in に対して RSA秘密鍵を用いて復号し、サイズ outLen の出力 out に書き込みます。成功すると 0、エラーの場合は負値を返します。 |
| RsaPrivateDecryptEx_fips | サイズ inLen の入力 in に対して RSA秘密鍵を用いて復号し、サイズ outLen の出力 out に書き込みます。 type のパディングを使用します。 PSS パディングを使用する場合は、サイズ labelSz のラベル label を持つハッシュと mgf を使用します。成功すると 0、エラーの場合は負値を返します。 |
鍵付きハッシュ
| API Call | Description |
|---|---|
| HmacSetKey_fips | ハッシュ type を使用して、サイズ keySz の鍵 keyで hmac オブジェクトを初期化します。成功すると 0、エラーの場合は負値を返します。 |
| HmacUpdate_fips | サイズ len の入力 data に対して hmac Update を実行します。成功すると 0、エラーの場合は負値を返します。 |
| HmacFinal_fips | hmac Finalを実行し、ダイジェストをハッシュに出力します。成功すると 0、エラーの場合は負値を返します。 |
| Gmac_fips | サイズ authInSz の入力 authIn に対して GMAC を実行し、サイズ authTagSz の authTag を出力します。 長さ keySz の鍵 key を使用し、乱数発生器 rng を使用して iv に格納する長さ ivSz の IV をランダムに生成します。成功すると 0、エラーの場合は負値を返します。 |
| GmacVerify_fips | 長さ keySz の鍵 key と長さ ivSz の iv を使用して、サイズ authInSz の入力 authIn 上の長さ authTagSz の GMAC authTag を検証します。成功すると 0、エラーの場合は負値を返します。 |
| InitCmac_fips | ハッシュ type を使用して、サイズ keySz の鍵 key で cmac オブジェクトを初期化します。成功すると 0、エラーの場合は負値を返します。 |
| CmacUpdate_fips | サイズ inSz の入力 in に対して cmac Update を実行します。成功すると 0、エラーの場合は負値を返します。 |
| CmacFinal_fips | cmac Final を実行し、サイズ outSz の出力 outにダイジェストを出力します。これは実際の出力サイズで更新されます。成功すると 0、エラーの場合は負値を返します。 |
メッセージダイジェスト
| API Call | Description |
|---|---|
| InitSha_fips | sha オブジェクトを使用できるように初期化します。成功すると 0、エラーの場合は負値を返します。 |
| ShaUpdate_fips | サイズ len の入力 data に対して SHA-Update を実行します。成功すると 0、エラーの場合は負値を返します。 |
| ShaFinal_fips | sha Finalを実行し、ダイジェストをハッシュに出力します。成功すると 0、エラーの場合は負値を返します。 |
| InitSha224_fips | sha224 オブジェクトを使用できるように初期化します。成功すると 0、エラーの場合は負値を返します。 |
| Sha224Update_fips | サイズ len の入力 data に対して sha224 Update を実行します。成功すると 0、エラーの場合は負値を返します。 |
| Sha224Final_fips | sha224 Finalを実行し、ダイジェストをハッシュに出力します。成功すると 0、エラーの場合は負値を返します。 |
| InitSha256_fips | sha256 オブジェクトを使用できるように初期化します。成功すると 0、エラーの場合は負値を返します。 |
| Sha256Update_fips | サイズ len の入力 data に対して sha256 Update を実行します。成功すると 0、エラーの場合は負値を返します。 |
| Sha256Final_fips | sha256 Finalを実行し、ダイジェストをハッシュに出力します。成功すると 0、エラーの場合は負値を返します。 |
| InitSha384_fips | sha384 オブジェクトを使用できるように初期化します。成功すると 0、エラーの場合は負値を返します。 |
| Sha384Update_fips | サイズ len の入力 data に対して sha384 Update を実行します。成功すると 0、エラーの場合は負値を返します。 |
| Sha384Final_fips | sha384 Finalを実行し、ダイジェストをハッシュに出力します。成功すると 0、エラーの場合は負値を返します。 |
| InitSha512_fips | sha512 オブジェクトを使用できるように初期化します。成功すると 0、エラーの場合は負値を返します。 |
| Sha512Update_fips | サイズ len の入力 data に対して sha512 Update を実行します。成功すると 0、エラーの場合は負値を返します。 |
| Sha512Final_fips | sha512 Finalを実行し、ダイジェストをハッシュに出力します。成功すると 0、エラーの場合は負値を返します。 |
| InitSha3_224_fips | sha3 (224 ビット) オブジェクトを使用できるように初期化します。成功すると 0、エラーの場合は負値を返します。 |
| Sha3_224_Update_fips | サイズ len の入力 data に対して sha3 (224 ビット) 更新を実行します。成功すると 0、エラーの場合は負値を返します。 |
| Sha3_224_Final_fips | sha3 (224 ビット) Final を実行し、ダイジェストをハッシュに出力します。成功すると 0、エラーの場合は負値を返します。 |
| InitSha3_256_fips | sha3 (256 ビット) オブジェクトを使用できるように初期化します。成功すると 0、エラーの場合は負値を返します。 |
| Sha3_256_Update_fips | サイズ len の入力 data に対して sha3 (256 ビット) 更新を実行します。成功すると 0、エラーの場合は負値を返します。 |
| Sha3_256_Final_fips | sha3 (256 ビット) Final を実行し、ダイジェストをハッシュに出力します。成功すると 0、エラーの場合は負値を返します。 |
| InitSha3_384_fips | sha3 (384 ビット) オブジェクトを使用できるように初期化します。成功すると 0、エラーの場合は負値を返します。 |
| Sha3_384_Update_fips | サイズ len の入力 data に対して sha3 (384 ビット) 更新を実行します。成功すると 0、エラーの場合は負値を返します。 |
| Sha3_384_Final_fips | sha3 (384 ビット) Final を実行し、ダイジェストをハッシュに出力します。成功すると 0、エラーの場合は負値を返します。 |
| InitSha3_512_fips | sha3 (512 ビット) オブジェクトを使用できるように初期化します。成功すると 0、エラーの場合は負値を返します。 |
| Sha3_512_Update_fips | サイズ len の入力 data に対して sha3 (512 ビット) 更新を実行します。成功すると 0、エラーの場合は負値を返します。 |
| Sha3_512_Final_fips | sha3 (512 ビット) Final を実行し、ダイジェストをハッシュに出力します。成功すると 0、エラーの場合は負値を返します。 |
乱数生成
| API Call | Description |
|---|---|
| InitRng_fips | RNG オブジェクトを使用できるように初期化します。成功すると 0、エラーの場合は負値を返します。 |
| InitRngNonce_fips | サイズ nonceSz の nonce で使用するために RNG オブジェクトを初期化します。成功すると 0、エラーの場合は負値を返します。 |
| FreeRng_fips | RNG リソースを解放し、状態をゼロにします。成功すると 0、エラーの場合は負値を返します。ゼロライズサービスの一部でもあります。 |
| RNG_GenerateBlock_fips | ユーザー用の RNG 出力のブロックを bufSz バイトの buf に取得します。成功すると 0、エラーの場合は負値を返します。 |
| RNG_HealthTest_fips | reseed が 0 の場合、entropyASz バイトのシードバッファ entropyA を使用して、outputSz バイトの予想される出力に対して RNG の一時インスタンスの出力をテストします。このとき、entropyB と entropyBSz は無視されます。 reseed が 1 の場合、テストではサイズ entropyBSz のシード バッファ entropyB を使用して RNG の一時インスタンスも再シードし、サイズが outSz バイトの予想される出力に対して RNG をテストします。成功すると 0、エラーの場合は負値を返します。 |
ステータス出力
| API Call | Description |
|---|---|
| wolfCrypt_GetStatus_fips | モジュールの現在のステータスを返します。返り値 0 は、モジュールがエラーのない状態にあることを意味します。その他の返り値は、モジュールが特定のエラー状態にあることを示します。 |
| wolfCrypt_GetVersion_fips | wolfCryptライブラリバージョンのnull終端文字列へのポインタを返します。 |
| wolfCrypt_GetCoreHash_fips | コアハッシュのnull終端文字列へのポインタを 16 進数で返します。 |
共通鍵暗号
| API Call | Description |
|---|---|
| AesSetKey_fips | 長さ keylen の userKey を使用して AES オブジェクトを初期化します。dir は方向(暗号化/復号)を示し、iv はオプションです。成功すると 0、エラーの場合は負値を返します。 |
| AesSetIV_fips | ユーザー iv を使用して AES オブジェクトを初期化します。成功すると 0、エラーの場合は負値を返します。 |
| AesCbcEncrypt_fips | 入力 in に対してAES CBC 暗号化を実行し、サイズ sz の out に出力します。成功すると 0、エラーの場合は負値を返します。 |
| AesCbcDecrypt_fips | 入力 in に対してAES CBC 復号を実行し、サイズ sz の out に出力します。成功すると 0、エラーの場合は負値を返します。 |
| AesEcbEncrypt_fips | 入力 in に対してAES ECB 暗号化を実行し、サイズ sz の out に出力します。成功すると 0、エラーの場合は負値を返します。 |
| AesEcbDecrypt_fips | 入力 in に対してAES ECB 復号を実行し、サイズ sz の out に出力します。成功すると 0、エラーの場合は負値を返します。 |
| AesCtrEncrypt_fips | 入力 in に対してAES CTR 暗号化を実行し、サイズ sz の out に出力します。成功すると 0、エラーの場合は負値を返します。この API は CTR 復号も実行します。 |
| AesGcmSetKey_fips | 長さ len の鍵を使用して AES オブジェクトを初期化します。成功すると 0、エラーの場合は負値を返します。 |
| AesGcmSetExtIV_fips | 外部で生成された長さ ivSz の iv を使用して AES オブジェクトを初期化します。成功すると 0、エラーの場合は負値を返します。 |
| AesGcmSetIV_fips | 最初の ivFixedSz バイトとして ivFixed を使用し、残りは rng からのランダム バイトであることを使用して、長さ ivSz の内部生成された IV で AES オブジェクトを初期化します。成功すると 0、エラーの場合は負値を返します。 |
| AesGcmEncrypt_fips | 入力 in からサイズ outSz の 出力 outに対して AES GCM 暗号化を実行します。 現在の IV は、長さ ivOutSz のバッファ ivOut に格納します。 認証タグは、サイズ authTagSz のバッファ authTag に格納します。 authIn からの authInSz バイトが計算されて認証タグに組み込まれます。成功すると 0、エラーの場合は負値を返します。 |
| AesGcmDecrypt_fips | サイズ ivSz の iv を使用して、入力 in に対して AES GCM 復号を実行し、サイズ sz の out に出力します。 サイズ authTagSz の authTag は、authInSz バイトの入力 authIn を使用してチェックします。成功すると 0、エラーの場合は負値を返します。 |
| AesCcmSetKey_fips | 長さ keySz の鍵 key を使用して AES オブジェクトを初期化します。成功すると 0、エラーの場合は負値を返します。 |
| AesCcmSetNonce_fips | 外部で生成された長さ nonceSz の nonce を使用して AES オブジェクトを初期化します。成功すると 0、エラーの場合は負値を返します。 |
| AesCcmEncrypt_fips | 入力 in からサイズ outSz の 出力 outに対して AES CCM 暗号化を実行します。 現在の IV は、長さ nonceSz のバッファ nonce に格納します。 認証タグは、サイズ authTagSz のバッファ authTag に格納します。 authIn からの authInSz バイトが計算されて認証タグに組み込まれます。成功すると 0、エラーの場合は負値を返します。 |
| AesCcmDecrypt_fips | サイズ nonceSz の nonce を使用して、サイズ inSz の入力 in に対して AES CCM 復号を実行し、out に出力します。 サイズ authTagSz の authTag は、authIn の入力バイトと authInSz バイトを使用してチェックします。成功すると 0、エラーの場合は負値を返します。 |
| Des3_SetKey_fips | des3 オブジェクトを鍵 key で初期化します。dir は方向(暗号化/復号)を示し、iv はオプションです。成功すると 0、エラーの場合は負値を返します。 |
| Des3_SetIV_fips | des3 オブジェクトをユーザー iv で初期化します。成功すると 0、エラーの場合は負値を返します。 |
| Des3_CbcEncrypt_fips | サイズ sz の入力 in から出力 out へ DES3 CBC 暗号化を実行します。成功すると 0、エラーの場合は負値を返します。 |
| Des3_CbcDecrypt_fips | サイズ sz の入力 in から出力 out へ DES3 CBC 復号を実行します。成功すると 0、エラーの場合は負値を返します。 |
ゼロライズ
| API Call | Description |
|---|---|
| FreeRng_fips | RNG CSP を破棄します。 他のすべてのサービスは、メモリ バインドされた CSP を自動的に上書きします。成功すると 0、エラーの場合は負値を返します。 |
| スタックのクリーンアップはアプリケーションの義務です。汎用コンピュータを再起動すると、RAM 内のすべての CSP がクリアされます。 | |
| API Calls for Allowed Security Functions | |