mirror of https://github.com/wolfSSL/wolfssl.git
144 lines
8.4 KiB
C
144 lines
8.4 KiB
C
/*!
|
||
\ingroup ASN
|
||
\brief この関数はデフォルトの証明書を初期化します。デフォルトのオプション:version = 3(0x2)、sigtype = sha_with_rsa、issuer =空白、dayValid = 500、selfsigned = 1(true)発行者としての件名=空白
|
||
\return none いいえ返します。
|
||
_Example_
|
||
\code
|
||
Cert myCert;
|
||
wc_InitCert(&myCert);
|
||
\endcode
|
||
\sa wc_MakeCert
|
||
\sa wc_MakeCertReq
|
||
*/
|
||
int wc_InitCert(Cert*);
|
||
|
||
/*!
|
||
\ingroup ASN
|
||
\brief CA署名付き証明書を作成するために使用されます。被写体情報が入力された後に呼び出されました。この関数は、証明書入力からX509証明書V3 RSAまたはECCを作成します。その後、この証明書をDerbufferに書き込みます。証明書を生成するためのRSAKEYまたはECCKEYのいずれかを取ります。このメソッドが呼び出される前に、証明書をWC_INITCERTで初期化する必要があります。
|
||
\return Success 指定された入力証明書からX509証明書を正常に行うと、生成された証明書のサイズを返します。
|
||
\return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
|
||
\return BUFFER_E 提供されたDerbufferが生成された証明書を保存するには小さすぎる場合に返されます
|
||
\return Others 証明書の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。
|
||
\param cert 初期化された証明書構造へのポインタ
|
||
\param derBuffer 生成された証明書を保持するバッファへのポインタ
|
||
\param derSz 証明書を保存するバッファのサイズ
|
||
\param rsaKey 証明書の生成に使用されるRSAキーを含むRSAKEY構造体へのポインタ
|
||
\param eccKey 証明書の生成に使用されるECCキーを含むECCKEY構造体へのポインタ
|
||
_Example_
|
||
\code
|
||
Cert myCert;
|
||
wc_InitCert(&myCert);
|
||
WC_RNG rng;
|
||
//initialize rng;
|
||
RsaKey key;
|
||
//initialize key;
|
||
byte * derCert = malloc(FOURK_BUF);
|
||
word32 certSz;
|
||
certSz = wc_MakeCert(&myCert, derCert, FOURK_BUF, &key, NULL, &rng);
|
||
\endcode
|
||
\sa wc_InitCert
|
||
\sa wc_MakeCertReq
|
||
*/
|
||
int wc_MakeCert(Cert* cert, byte* derBuffer, word32 derSz, RsaKey* rsaKey,
|
||
ecc_key* eccKey, WC_RNG* rng);
|
||
|
||
/*!
|
||
\ingroup ASN
|
||
\brief この関数は、入力証明書を使用して証明書署名要求を行い、出力をDerbufferに書き込みます。証明書要求を生成するRSAKEYまたはECCKEYのどちらかを取ります。この関数が証明書要求に署名するためにwc_signcert()を呼び出す必要があります。この関数の使用例については、WolfCryptテストアプリケーション(./wolfcrypt/test/test.c)を参照してください。
|
||
\return Success 指定された入力証明書からX.509証明書要求を正常に行うと、生成された証明書要求のサイズを返します。
|
||
\return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
|
||
\return BUFFER_E 提供されたDerbufferが生成された証明書を保存するには小さすぎる場合に返されます
|
||
\return Other 証明書要求生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。
|
||
\param cert 初期化された証明書構造へのポインタ
|
||
\param derBuffer 生成された証明書要求を保持するバッファへのポインタ
|
||
\param derSz 証明書要求を保存するバッファのサイズ
|
||
\param rsaKey 証明書要求を生成するために使用されるRSAキーを含むRSAKEY構造体へのポインタ
|
||
_Example_
|
||
\code
|
||
Cert myCert;
|
||
// initialize myCert
|
||
EccKey key;
|
||
//initialize key;
|
||
byte* derCert = (byte*)malloc(FOURK_BUF);
|
||
|
||
word32 certSz;
|
||
certSz = wc_MakeCertReq(&myCert, derCert, FOURK_BUF, NULL, &key);
|
||
\endcode
|
||
\sa wc_InitCert
|
||
\sa wc_MakeCert
|
||
*/
|
||
int wc_MakeCertReq(Cert* cert, byte* derBuffer, word32 derSz,
|
||
RsaKey* rsaKey, ecc_key* eccKey);
|
||
|
||
/*!
|
||
\ingroup ASN
|
||
\brief この関数はバッファーに署名し、署名をバッファの最後に追加します。署名の種類を取ります。CA署名付き証明書を作成する場合は、wc_makecert()またはwc_makecertreq()の後に呼び出す必要があります。
|
||
\return Success 証明書に正常に署名する場合は、CERTの新しいサイズ(署名を含む)を返します。
|
||
\return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
|
||
\return BUFFER_E 提供された証明書を保存するには提供されたバッファが小さすぎる場合に返されます。
|
||
\return Other 証明書の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。
|
||
\param requestSz 署名したことを要求している証明書本文のサイズ
|
||
\param sType 作成する署名の種類。有効なオプションは次のとおりです.CTC_MD5WRSA、CTC_SHAWRSA、CTC_SHAWECDSA、CTC_SHA256WECDSA、ANDCTC_SHA256WRSA
|
||
\param buffer 署名する証明書を含むバッファへのポインタ。成功:新たに署名された証明書を保持します
|
||
\param buffSz 新たに署名された証明書を保存するバッファの(合計)サイズ
|
||
\param rsaKey 証明書に署名するために使用されるRSAキーを含むRSAKEY構造体へのポインタ
|
||
\param eccKey 証明書に署名するために使用されるECCキーを含むECCKey構造体へのポインタ
|
||
_Example_
|
||
\code
|
||
Cert myCert;
|
||
byte* derCert = (byte*)malloc(FOURK_BUF);
|
||
// initialize myCert, derCert
|
||
RsaKey key;
|
||
// initialize key;
|
||
WC_RNG rng;
|
||
// initialize rng
|
||
|
||
word32 certSz;
|
||
certSz = wc_SignCert(myCert.bodySz, myCert.sigType,derCert,FOURK_BUF,
|
||
&key, NULL,
|
||
&rng);
|
||
\endcode
|
||
\sa wc_InitCert
|
||
\sa wc_MakeCert
|
||
*/
|
||
int wc_SignCert(int requestSz, int sigType, byte* derBuffer,
|
||
word32 derSz, RsaKey* rsaKey, ecc_key* eccKey, WC_RNG* rng);
|
||
|
||
/*!
|
||
\ingroup ASN
|
||
\brief この関数は、以前の2つの関数、wc_makecert、および自己署名のためのwc_signcertの組み合わせです(前の関数はCA要求に使用される場合があります)。証明書を作成してから、それに署名し、自己署名証明書を生成します。
|
||
\return Success 証明書に正常に署名する場合は、CERTの新しいサイズを返します。
|
||
\return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
|
||
\return BUFFER_E 提供された証明書を保存するには提供されたバッファが小さすぎる場合に返されます。
|
||
\return Other 証明書の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。
|
||
\param cert 作成して署名する証明書へのポインタ
|
||
\param buffer 署名付き証明書を保持するためのバッファへのポインタ
|
||
\param buffSz 署名付き証明書を保存するバッファのサイズ
|
||
\param key 証明書に署名するために使用されるRSAキーを含むRSAKEY構造体へのポインタ
|
||
_Example_
|
||
\code
|
||
Cert myCert;
|
||
byte* derCert = (byte*)malloc(FOURK_BUF);
|
||
// initialize myCert, derCert
|
||
RsaKey key;
|
||
// initialize key;
|
||
WC_RNG rng;
|
||
// initialize rng
|
||
|
||
word32 certSz;
|
||
certSz = wc_MakeSelfCert(&myCert, derCert, FOURK_BUF, &key, NULL, &rng);
|
||
\endcode
|
||
\sa wc_InitCert
|
||
\sa wc_MakeCert
|
||
\sa wc_SignCert
|
||
*/
|
||
int wc_MakeSelfCert(Cert* cert, byte* derBuffer, word32 derSz, RsaKey* key,
|
||
WC_RNG* rng);
|
||
|
||
/*!
|
||
\ingroup ASN
|
||
\brief この関数は、提供されたPEM ISSUERFILE内の証明書の発行者を発行者に設定します。また、証明書の自己署名属性をfalseに変更します。ISSUERFILEで指定された発行者は、CERT発行者を設定する前に確認されます。このメソッドは、署名の前にフィールドを設定するために使用されます。
|
||
\return 0 証明書の発行者を正常に設定した
|
||
\return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
|
||
\return ASN_PARSE_E CERTヘッダーファイルの解析中にエラーがある場合は返されます。
|