wolfssl/doc/dox_comments/header_files-ja/dsa.h

238 lines
10 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*!
\ingroup DSA
\brief この関数は、デジタル署名アルゴリズムDSAを介した認証に使用するためにDSAKEYオブジェクトを初期化します。
\return 0 成功に戻りました。
\return BAD_FUNC_ARG NULLキーが渡された場合に返されます。
_Example_
\code
DsaKey key;
int ret;
ret = wc_InitDsaKey(&key); // initialize DSA key
\endcode
\sa wc_FreeDsaKey
*/
int wc_InitDsaKey(DsaKey* key);
/*!
\ingroup DSA
\brief この関数は、使用された後にdsakeyオブジェクトを解放します。
\return none いいえ返します。
_Example_
\code
DsaKey key;
// initialize key, use for authentication
...
wc_FreeDsaKey(&key); // free DSA key
\endcode
\sa wc_FreeDsaKey
*/
void wc_FreeDsaKey(DsaKey* key);
/*!
\ingroup DSA
\brief この機能は入力ダイジェストに署名し、結果を出力バッファーに格納します。
\return 0 入力ダイジェストに正常に署名したときに返されました
\return MP_INIT_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_READ_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_CMP_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_INVMOD_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_EXPTMOD_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_MOD_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_MUL_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_ADD_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_MULMOD_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_TO_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_MEM DSA署名の処理にエラーがある場合は返される可能性があります。
\param digest 署名するハッシュへのポインタ
\param out 署名を保存するバッファへのポインタ
\param key 署名を生成するための初期化されたDsakey構造へのポインタ
_Example_
\code
DsaKey key;
// initialize DSA key, load private Key
int ret;
WC_RNG rng;
wc_InitRng(&rng);
byte hash[] = { // initialize with hash digest };
byte signature[40]; // signature will be 40 bytes (320 bits)
ret = wc_DsaSign(hash, signature, &key, &rng);
if (ret != 0) {
// error generating DSA signature
}
\endcode
\sa wc_DsaVerify
*/
int wc_DsaSign(const byte* digest, byte* out,
DsaKey* key, WC_RNG* rng);
/*!
\ingroup DSA
\brief この関数は、秘密鍵を考えると、ダイジェストの署名を検証します。回答パラメータでキーが正しく検証されているかどうか、正常な検証に対応する1、および失敗した検証に対応する0が格納されます。
\return 0 検証要求の処理に成功したときに返されます。注:これは、署名が検証されていることを意味するわけではなく、関数が成功したというだけです。
\return MP_INIT_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_READ_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_CMP_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_INVMOD_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_EXPTMOD_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_MOD_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_MUL_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_ADD_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_MULMOD_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_TO_E DSA署名の処理にエラーがある場合は返される可能性があります。
\return MP_MEM DSA署名の処理にエラーがある場合は返される可能性があります。
\param digest 署名の主題を含むダイジェストへのポインタ
\param sig 確認する署名を含むバッファへのポインタ
\param key 署名を検証するための初期化されたDsakey構造へのポインタ
_Example_
\code
DsaKey key;
// initialize DSA key, load public Key
int ret;
int verified;
byte hash[] = { // initialize with hash digest };
byte signature[] = { // initialize with signature to verify };
ret = wc_DsaVerify(hash, signature, &key, &verified);
if (ret != 0) {
// error processing verify request
} else if (answer == 0) {
// invalid signature
}
\endcode
\sa wc_DsaSign
*/
int wc_DsaVerify(const byte* digest, const byte* sig,
DsaKey* key, int* answer);
/*!
\ingroup DSA
\brief この機能は、DSA公開鍵を含むDERフォーマットの証明書バッファを復号し、与えられたDSakey構造体にキーを格納します。また、入力読み取りの長さに応じてINOUTIDXパラメータを設定します。
\return 0 dsakeyオブジェクトの公開鍵を正常に設定する
\return ASN_PARSE_E 証明書バッファを読みながらエンコーディングにエラーがある場合
\return ASN_DH_KEY_E DSAパラメータの1つが誤ってフォーマットされている場合に返されます
\param input DERフォーマットDSA公開鍵を含むバッファへのポインタ
\param inOutIdx 証明書の最後のインデックスを保存する整数へのポインタ
\param key 公開鍵を保存するDsakey構造へのポインタ
_Example_
\code
int ret, idx=0;
DsaKey key;
wc_InitDsaKey(&key);
byte derBuff[] = { // DSA public key};
ret = wc_DsaPublicKeyDecode(derBuff, &idx, &key, inSz);
if (ret != 0) {
// error reading public key
}
\endcode
\sa wc_InitDsaKey
\sa wc_DsaPrivateKeyDecode
*/
int wc_DsaPublicKeyDecode(const byte* input, word32* inOutIdx,
DsaKey* key, word32 inSz);
/*!
\ingroup DSA
\brief この機能は、DSA秘密鍵を含むDERフォーマットの証明書バッファをデコードし、指定されたDSakey構造体にキーを格納します。また、入力読み取りの長さに応じてINOUTIDXパラメータを設定します。
\return 0 dsakeyオブジェクトの秘密鍵を正常に設定するに返されました
\return ASN_PARSE_E 証明書バッファを読みながらエンコーディングにエラーがある場合
\return ASN_DH_KEY_E DSAパラメータの1つが誤ってフォーマットされている場合に返されます
\param input DERフォーマットDSA秘密鍵を含むバッファへのポインタ
\param inOutIdx 証明書の最後のインデックスを保存する整数へのポインタ
\param key 秘密鍵を保存するDSakey構造へのポインタ
_Example_
\code
int ret, idx=0;
DsaKey key;
wc_InitDsaKey(&key);
byte derBuff[] = { // DSA private key };
ret = wc_DsaPrivateKeyDecode(derBuff, &idx, &key, inSz);
if (ret != 0) {
// error reading private key
}
\endcode
\sa wc_InitDsaKey
\sa wc_DsaPublicKeyDecode
*/
int wc_DsaPrivateKeyDecode(const byte* input, word32* inOutIdx,
DsaKey* key, word32 inSz);
/*!
\ingroup DSA
\brief DSAKEYキーをDERフォーマット、出力への書き込みInlen、書き込まれたバイトを返します。
\return outLen 成功、書かれたバイト数
\return BAD_FUNC_ARG キーまたは出力はNULLまたはキー - >タイプがDSA_PRIVATEではありません。
\return MEMORY_E メモリの割り当て中にエラーが発生しました。
\param key 変換するdsakey構造へのポインタ。
\param output 変換キーの出力バッファへのポインタ。
_Example_
\code
DsaKey key;
WC_RNG rng;
int derSz;
int bufferSize = // Sufficient buffer size;
byte der[bufferSize];
wc_InitDsaKey(&key);
wc_InitRng(&rng);
wc_MakeDsaKey(&rng, &key);
derSz = wc_DsaKeyToDer(&key, der, bufferSize);
\endcode
\sa wc_InitDsaKey
\sa wc_FreeDsaKey
\sa wc_MakeDsaKey
*/
int wc_DsaKeyToDer(DsaKey* key, byte* output, word32 inLen);
/*!
\ingroup DSA
\brief DSAキーを作成します。
\return MP_OKAY 成功
\return BAD_FUNC_ARG RNGまたはDSAのどちらかがnullです。
\return MEMORY_E バッファにメモリを割り当てることができませんでした。
\return MP_INIT_E MP_INTの初期化エラー
\param rng WC_RNG構造体へのポインタ。
_Example_
\code
WC_RNG rng;
DsaKey dsa;
wc_InitRng(&rng);
wc_InitDsa(&dsa);
if(wc_MakeDsaKey(&rng, &dsa) != 0)
{
// Error creating key
}
\endcode
\sa wc_InitDsaKey
\sa wc_FreeDsaKey
\sa wc_DsaSign
*/
int wc_MakeDsaKey(WC_RNG *rng, DsaKey *dsa);
/*!
\ingroup DSA
\brief FIPS 186-4は、modulus_size値の有効な値を定義します1024,1602048,2563072,256
\return 0 成功
\return BAD_FUNC_ARG RNGまたはDSAはNULLまたはMODULUS_SIZEが無効です。
\return MEMORY_E メモリを割り当てようとするエラーが発生しました。
\param rng WolfCrypt RNGへのポインタ。
\param modulus_size 1024,2048、または3072は有効な値です。
_Example_
\code
DsaKey key;
WC_RNG rng;
wc_InitDsaKey(&key);
wc_InitRng(&rng);
if(wc_MakeDsaParameters(&rng, 1024, &genKey) != 0)
{
// Handle error
}
\endcode
\sa wc_MakeDsaKey
\sa wc_DsaKeyToDer
\sa wc_InitDsaKey
*/
int wc_MakeDsaParameters(WC_RNG *rng, int modulus_size, DsaKey *dsa);