コンテンツにスキップ

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