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

238 lines
10 KiB
C
Raw Normal View History

/*!
\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 10
\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;
2022-10-20 17:17:24 -05:00
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
2022-10-20 17:17:24 -05:00
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-4modulus_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,20483072
_Example_
\code
DsaKey key;
2022-10-20 17:17:24 -05:00
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);