asn_public.h 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. /*!
  2. \ingroup ASN
  3. \brief この関数はデフォルトの証明書を初期化します。デフォルトのオプション:version = 3(0x2)、sigtype = sha_with_rsa、issuer =空白、dayValid = 500、selfsigned = 1(true)発行者としての件名=空白
  4. \return none いいえ返します。
  5. _Example_
  6. \code
  7. Cert myCert;
  8. wc_InitCert(&myCert);
  9. \endcode
  10. \sa wc_MakeCert
  11. \sa wc_MakeCertReq
  12. */
  13. int wc_InitCert(Cert*);
  14. /*!
  15. \ingroup ASN
  16. \brief CA署名付き証明書を作成するために使用されます。被写体情報が入力された後に呼び出されました。この関数は、証明書入力からX509証明書V3 RSAまたはECCを作成します。その後、この証明書をDerbufferに書き込みます。証明書を生成するためのRSAKEYまたはECCKEYのいずれかを取ります。このメソッドが呼び出される前に、証明書をWC_INITCERTで初期化する必要があります。
  17. \return Success 指定された入力証明書からX509証明書を正常に行うと、生成された証明書のサイズを返します。
  18. \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
  19. \return BUFFER_E 提供されたDerbufferが生成された証明書を保存するには小さすぎる場合に返されます
  20. \return Others 証明書の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。
  21. \param cert 初期化された証明書構造へのポインタ
  22. \param derBuffer 生成された証明書を保持するバッファへのポインタ
  23. \param derSz 証明書を保存するバッファのサイズ
  24. \param rsaKey 証明書の生成に使用されるRSAキーを含むRSAKEY構造体へのポインタ
  25. \param eccKey 証明書の生成に使用されるECCキーを含むECCKEY構造体へのポインタ
  26. _Example_
  27. \code
  28. Cert myCert;
  29. wc_InitCert(&myCert);
  30. WC_RNG rng;
  31. //initialize rng;
  32. RsaKey key;
  33. //initialize key;
  34. byte * derCert = malloc(FOURK_BUF);
  35. word32 certSz;
  36. certSz = wc_MakeCert(&myCert, derCert, FOURK_BUF, &key, NULL, &rng);
  37. \endcode
  38. \sa wc_InitCert
  39. \sa wc_MakeCertReq
  40. */
  41. int wc_MakeCert(Cert* cert, byte* derBuffer, word32 derSz, RsaKey* rsaKey,
  42. ecc_key* eccKey, WC_RNG* rng);
  43. /*!
  44. \ingroup ASN
  45. \brief この関数は、入力証明書を使用して証明書署名要求を行い、出力をDerbufferに書き込みます。証明書要求を生成するRSAKEYまたはECCKEYのどちらかを取ります。この関数が証明書要求に署名するためにwc_signcert()を呼び出す必要があります。この関数の使用例については、WolfCryptテストアプリケーション(./wolfcrypt/test/test.c)を参照してください。
  46. \return Success 指定された入力証明書からX.509証明書要求を正常に行うと、生成された証明書要求のサイズを返します。
  47. \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
  48. \return BUFFER_E 提供されたDerbufferが生成された証明書を保存するには小さすぎる場合に返されます
  49. \return Other 証明書要求生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。
  50. \param cert 初期化された証明書構造へのポインタ
  51. \param derBuffer 生成された証明書要求を保持するバッファへのポインタ
  52. \param derSz 証明書要求を保存するバッファのサイズ
  53. \param rsaKey 証明書要求を生成するために使用されるRSAキーを含むRSAKEY構造体へのポインタ
  54. _Example_
  55. \code
  56. Cert myCert;
  57. // initialize myCert
  58. EccKey key;
  59. //initialize key;
  60. byte* derCert = (byte*)malloc(FOURK_BUF);
  61. word32 certSz;
  62. certSz = wc_MakeCertReq(&myCert, derCert, FOURK_BUF, NULL, &key);
  63. \endcode
  64. \sa wc_InitCert
  65. \sa wc_MakeCert
  66. */
  67. int wc_MakeCertReq(Cert* cert, byte* derBuffer, word32 derSz,
  68. RsaKey* rsaKey, ecc_key* eccKey);
  69. /*!
  70. \ingroup ASN
  71. \brief この関数はバッファーに署名し、署名をバッファの最後に追加します。署名の種類を取ります。CA署名付き証明書を作成する場合は、wc_makecert()またはwc_makecertreq()の後に呼び出す必要があります。
  72. \return Success 証明書に正常に署名する場合は、CERTの新しいサイズ(署名を含む)を返します。
  73. \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
  74. \return BUFFER_E 提供された証明書を保存するには提供されたバッファが小さすぎる場合に返されます。
  75. \return Other 証明書の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。
  76. \param requestSz 署名したことを要求している証明書本文のサイズ
  77. \param sType 作成する署名の種類。有効なオプションは次のとおりです.CTC_MD5WRSA、CTC_SHAWRSA、CTC_SHAWECDSA、CTC_SHA256WECDSA、ANDCTC_SHA256WRSA
  78. \param buffer 署名する証明書を含むバッファへのポインタ。成功:新たに署名された証明書を保持します
  79. \param buffSz 新たに署名された証明書を保存するバッファの(合計)サイズ
  80. \param rsaKey 証明書に署名するために使用されるRSAキーを含むRSAKEY構造体へのポインタ
  81. \param eccKey 証明書に署名するために使用されるECCキーを含むECCKey構造体へのポインタ
  82. _Example_
  83. \code
  84. Cert myCert;
  85. byte* derCert = (byte*)malloc(FOURK_BUF);
  86. // initialize myCert, derCert
  87. RsaKey key;
  88. // initialize key;
  89. WC_RNG rng;
  90. // initialize rng
  91. word32 certSz;
  92. certSz = wc_SignCert(myCert.bodySz, myCert.sigType,derCert,FOURK_BUF,
  93. &key, NULL,
  94. &rng);
  95. \endcode
  96. \sa wc_InitCert
  97. \sa wc_MakeCert
  98. */
  99. int wc_SignCert(int requestSz, int sigType, byte* derBuffer,
  100. word32 derSz, RsaKey* rsaKey, ecc_key* eccKey, WC_RNG* rng);
  101. /*!
  102. \ingroup ASN
  103. \brief この関数は、以前の2つの関数、wc_makecert、および自己署名のためのwc_signcertの組み合わせです(前の関数はCA要求に使用される場合があります)。証明書を作成してから、それに署名し、自己署名証明書を生成します。
  104. \return Success 証明書に正常に署名する場合は、CERTの新しいサイズを返します。
  105. \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
  106. \return BUFFER_E 提供された証明書を保存するには提供されたバッファが小さすぎる場合に返されます。
  107. \return Other 証明書の生成が成功しなかった場合、追加のエラーメッセージが返される可能性があります。
  108. \param cert 作成して署名する証明書へのポインタ
  109. \param buffer 署名付き証明書を保持するためのバッファへのポインタ
  110. \param buffSz 署名付き証明書を保存するバッファのサイズ
  111. \param key 証明書に署名するために使用されるRSAキーを含むRSAKEY構造体へのポインタ
  112. _Example_
  113. \code
  114. Cert myCert;
  115. byte* derCert = (byte*)malloc(FOURK_BUF);
  116. // initialize myCert, derCert
  117. RsaKey key;
  118. // initialize key;
  119. WC_RNG rng;
  120. // initialize rng
  121. word32 certSz;
  122. certSz = wc_MakeSelfCert(&myCert, derCert, FOURK_BUF, &key, NULL, &rng);
  123. \endcode
  124. \sa wc_InitCert
  125. \sa wc_MakeCert
  126. \sa wc_SignCert
  127. */
  128. int wc_MakeSelfCert(Cert* cert, byte* derBuffer, word32 derSz, RsaKey* key,
  129. WC_RNG* rng);
  130. /*!
  131. \ingroup ASN
  132. \brief この関数は、提供されたPEM ISSUERFILE内の証明書の発行者を発行者に設定します。また、証明書の自己署名属性をfalseに変更します。ISSUERFILEで指定された発行者は、CERT発行者を設定する前に確認されます。このメソッドは、署名の前にフィールドを設定するために使用されます。
  133. \return 0 証明書の発行者を正常に設定した
  134. \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
  135. \return ASN_PARSE_E CERTヘッダーファイルの解析中にエラーがある場合は返されます。