sha.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. /*!
  2. \ingroup SHA
  3. \brief この関数はSHAを初期化します。これは自動的にWC_Shahashによって呼び出されます。
  4. \return 0 初期化に成功したときに返されます
  5. _Example_
  6. \code
  7. Sha sha[1];
  8. if ((ret = wc_InitSha(sha)) != 0) {
  9. WOLFSSL_MSG("wc_InitSha failed");
  10. }
  11. else {
  12. wc_ShaUpdate(sha, data, len);
  13. wc_ShaFinal(sha, hash);
  14. }
  15. \endcode
  16. \sa wc_ShaHash
  17. \sa wc_ShaUpdate
  18. \sa wc_ShaFinal
  19. */
  20. int wc_InitSha(wc_Sha*);
  21. /*!
  22. \ingroup SHA
  23. \brief 長さLENの提供されたバイト配列を絶えずハッシュするように呼び出すことができます。
  24. \return 0 データをダイジェストに正常に追加すると返されます。
  25. \param sha 暗号化に使用するSHA構造へのポインタ
  26. \param data ハッシュするデータ
  27. _Example_
  28. \code
  29. Sha sha[1];
  30. byte data[] = { // Data to be hashed };
  31. word32 len = sizeof(data);
  32. if ((ret = wc_InitSha(sha)) != 0) {
  33. WOLFSSL_MSG("wc_InitSha failed");
  34. }
  35. else {
  36. wc_ShaUpdate(sha, data, len);
  37. wc_ShaFinal(sha, hash);
  38. }
  39. \endcode
  40. \sa wc_ShaHash
  41. \sa wc_ShaFinal
  42. \sa wc_InitSha
  43. */
  44. int wc_ShaUpdate(wc_Sha* sha, const byte* data, word32 len);
  45. /*!
  46. \ingroup SHA
  47. \brief データのハッシュを確定します。結果はハッシュに入れられます。SHA構造体の状態をリセットします。
  48. \return 0 ファイナライズに成功したときに返されます。
  49. \param sha 暗号化に使用するSHA構造へのポインタ
  50. _Example_
  51. \code
  52. Sha sha[1];
  53. byte data[] = { Data to be hashed };
  54. word32 len = sizeof(data);
  55. if ((ret = wc_InitSha(sha)) != 0) {
  56. WOLFSSL_MSG("wc_InitSha failed");
  57. }
  58. else {
  59. wc_ShaUpdate(sha, data, len);
  60. wc_ShaFinal(sha, hash);
  61. }
  62. \endcode
  63. \sa wc_ShaHash
  64. \sa wc_InitSha
  65. \sa wc_ShaGetHash
  66. */
  67. int wc_ShaFinal(wc_Sha* sha, byte* hash);
  68. /*!
  69. \ingroup SHA
  70. \brief 初期化されたSHA構造体によって使用されるメモリをクリーンアップするために使用されます。注:これは、wolfssl_ti_hashが定義されている場合にのみサポートされています。
  71. \return No 戻り値。
  72. _Example_
  73. \code
  74. Sha sha;
  75. wc_InitSha(&sha);
  76. // Use sha
  77. wc_ShaFree(&sha);
  78. \endcode
  79. \sa wc_InitSha
  80. \sa wc_ShaUpdate
  81. \sa wc_ShaFinal
  82. */
  83. void wc_ShaFree(wc_Sha*);
  84. /*!
  85. \ingroup SHA
  86. \brief ハッシュデータを取得します。結果はハッシュに入れられます。SHA構造体の状態をリセットしません。
  87. \return 0 ファイナライズに成功したときに返されます。
  88. \param sha 暗号化に使用するSHA構造へのポインタ
  89. _Example_
  90. \code
  91. Sha sha[1];
  92. if ((ret = wc_InitSha(sha)) != 0) {
  93. WOLFSSL_MSG("wc_InitSha failed");
  94. }
  95. else {
  96. wc_ShaUpdate(sha, data, len);
  97. wc_ShaGetHash(sha, hash);
  98. }
  99. \endcode
  100. \sa wc_ShaHash
  101. \sa wc_ShaFinal
  102. \sa wc_InitSha
  103. */
  104. int wc_ShaGetHash(wc_Sha* sha, byte* hash);