md5.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. /*!
  2. \ingroup MD5
  3. \brief この関数はMD5を初期化します。これはWC_MD5HASHによって自動的に呼び出されます。
  4. \return 0 初期化に成功したときに返されます。
  5. \return BAD_FUNC_ARG MD5構造がNULL値として渡された場合に返されます。
  6. _Example_
  7. \code
  8. Md5 md5;
  9. byte* hash;
  10. if ((ret = wc_InitMd5(&md5)) != 0) {
  11. WOLFSSL_MSG("wc_Initmd5 failed");
  12. }
  13. else {
  14. ret = wc_Md5Update(&md5, data, len);
  15. if (ret != 0) {
  16. // Md5 Update Failure Case.
  17. }
  18. ret = wc_Md5Final(&md5, hash);
  19. if (ret != 0) {
  20. // Md5 Final Failure Case.
  21. }
  22. }
  23. \endcode
  24. \sa wc_Md5Hash
  25. \sa wc_Md5Update
  26. \sa wc_Md5Final
  27. */
  28. int wc_InitMd5(wc_Md5*);
  29. /*!
  30. \ingroup MD5
  31. \brief 長さLENの提供されたバイト配列を絶えずハッシュするように呼び出すことができます。
  32. \return 0 データをダイジェストに正常に追加すると返されます。
  33. \return BAD_FUNC_ARG MD5構造がNULLの場合、またはデータがNULLで、LENがゼロより大きい場合に返されます。DATAパラメーターがNULLでLENがゼロの場合、関数はエラーを返してはいけません。
  34. \param md5 暗号化に使用するMD5構造へのポインタ
  35. \param data ハッシュするデータ
  36. _Example_
  37. \code
  38. Md5 md5;
  39. byte data[] = { Data to be hashed };
  40. word32 len = sizeof(data);
  41. if ((ret = wc_InitMd5(&md5)) != 0) {
  42. WOLFSSL_MSG("wc_Initmd5 failed");
  43. }
  44. else {
  45. ret = wc_Md5Update(&md5, data, len);
  46. if (ret != 0) {
  47. // Md5 Update Error Case.
  48. }
  49. ret = wc_Md5Final(&md5, hash);
  50. if (ret != 0) {
  51. // Md5 Final Error Case.
  52. }
  53. }
  54. \endcode
  55. \sa wc_Md5Hash
  56. \sa wc_Md5Final
  57. \sa wc_InitMd5
  58. */
  59. int wc_Md5Update(wc_Md5* md5, const byte* data, word32 len);
  60. /*!
  61. \ingroup MD5
  62. \brief データのハッシュを確定します。結果はハッシュに入れられます。MD5構造体がリセットされます。注:この関数は、habe_intel_qaが定義されている場合にintelqasymmd5()を呼び出す結果も返します。
  63. \return 0 ファイナライズに成功したときに返されます。
  64. \return BAD_FUNC_ARG MD5構造またはハッシュポインタがNULLで渡された場合に返されます。
  65. \param md5 暗号化に使用するMD5構造へのポインタ
  66. _Example_
  67. \code
  68. md5 md5[1];
  69. byte data[] = { Data to be hashed };
  70. word32 len = sizeof(data);
  71. if ((ret = wc_InitMd5(md5)) != 0) {
  72. WOLFSSL_MSG("wc_Initmd5 failed");
  73. }
  74. else {
  75. ret = wc_Md5Update(md5, data, len);
  76. if (ret != 0) {
  77. // Md5 Update Failure Case.
  78. }
  79. ret = wc_Md5Final(md5, hash);
  80. if (ret != 0) {
  81. // Md5 Final Failure Case.
  82. }
  83. }
  84. \endcode
  85. \sa wc_Md5Hash
  86. \sa wc_InitMd5
  87. \sa wc_Md5GetHash
  88. */
  89. int wc_Md5Final(wc_Md5* md5, byte* hash);
  90. /*!
  91. \ingroup MD5
  92. \brief MD5構造をリセットします。注:これは、wolfssl_ti_hashが定義されている場合にのみサポートされています。
  93. \return none いいえ返します。
  94. _Example_
  95. \code
  96. Md5 md5;
  97. byte data[] = { Data to be hashed };
  98. word32 len = sizeof(data);
  99. if ((ret = wc_InitMd5(&md5)) != 0) {
  100. WOLFSSL_MSG("wc_InitMd5 failed");
  101. }
  102. else {
  103. wc_Md5Update(&md5, data, len);
  104. wc_Md5Final(&md5, hash);
  105. wc_Md5Free(&md5);
  106. }
  107. \endcode
  108. \sa wc_InitMd5
  109. \sa wc_Md5Update
  110. \sa wc_Md5Final
  111. */
  112. void wc_Md5Free(wc_Md5*);
  113. /*!
  114. \ingroup MD5
  115. \brief ハッシュデータを取得します。結果はハッシュに入れられます。MD5構造はリセットされません。
  116. \return none いいえリターン
  117. \param md5 暗号化に使用するMD5構造へのポインタ。
  118. _Example_
  119. \code
  120. md5 md5[1];
  121. if ((ret = wc_InitMd5(md5)) != 0) {
  122. WOLFSSL_MSG("wc_Initmd5 failed");
  123. }
  124. else {
  125. wc_Md5Update(md5, data, len);
  126. wc_Md5GetHash(md5, hash);
  127. }
  128. \endcode
  129. \sa wc_Md5Hash
  130. \sa wc_Md5Final
  131. \sa wc_InitMd5
  132. */
  133. int wc_Md5GetHash(wc_Md5* md5, byte* hash);