blake2.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*!
  2. \ingroup BLAKE2
  3. \brief この関数はBlake2 Hash関数で使用するためのBlake2b構造を初期化します。
  4. \return 0 Blake2B構造の初期化に成功し、ダイジェストサイズを設定したときに返されます。
  5. \param b2b 初期化するためにBlake2b構造へのポインタ
  6. _Example_
  7. \code
  8. Blake2b b2b;
  9. // initialize Blake2b structure with 64 byte digest
  10. wc_InitBlake2b(&b2b, 64);
  11. \endcode
  12. \sa wc_Blake2bUpdate
  13. */
  14. int wc_InitBlake2b(Blake2b* b2b, word32 digestSz);
  15. /*!
  16. \ingroup BLAKE2
  17. \brief この関数は、与えられた入力データとBlake2Bハッシュを更新します。この関数は、wc_initblake2bの後に呼び出され、最後のハッシュ:wc_blake2bfinalの準備ができているまで繰り返します。
  18. \return 0 与えられたデータを使用してBlake2B構造を正常に更新すると返されます。
  19. \return -1 入力データの圧縮中に障害が発生した場合
  20. \param b2b 更新するBlake2b構造へのポインタ
  21. \param data 追加するデータを含むバッファへのポインタ
  22. _Example_
  23. \code
  24. int ret;
  25. Blake2b b2b;
  26. // initialize Blake2b structure with 64 byte digest
  27. wc_InitBlake2b(&b2b, 64);
  28. byte plain[] = { // initialize input };
  29. ret = wc_Blake2bUpdate(&b2b, plain, sizeof(plain));
  30. if( ret != 0) {
  31. // error updating blake2b
  32. }
  33. \endcode
  34. \sa wc_InitBlake2b
  35. \sa wc_Blake2bFinal
  36. */
  37. int wc_Blake2bUpdate(Blake2b* b2b, const byte* data, word32 sz);
  38. /*!
  39. \ingroup BLAKE2
  40. \brief この関数は、以前に供給された入力データのBlake2bハッシュを計算します。出力ハッシュは長さREQUESTSZ、あるいは要求された場合はB2B構造のDigestSZを使用します。この関数は、wc_initblake2bの後に呼び出され、wc_blake2bupdateは必要な各入力データに対して処理されています。
  41. \return 0 Blake2B Hashの計算に成功したときに返されました
  42. \return -1 blake2bハッシュを解析している間に失敗がある場合
  43. \param b2b 更新するBlake2b構造へのポインタ
  44. \param final Blake2Bハッシュを保存するバッファへのポインタ。長さrequestszにする必要があります
  45. _Example_
  46. \code
  47. int ret;
  48. Blake2b b2b;
  49. byte hash[64];
  50. // initialize Blake2b structure with 64 byte digest
  51. wc_InitBlake2b(&b2b, 64);
  52. ... // call wc_Blake2bUpdate to add data to hash
  53. ret = wc_Blake2bFinal(&b2b, hash, 64);
  54. if( ret != 0) {
  55. // error generating blake2b hash
  56. }
  57. \endcode
  58. \sa wc_InitBlake2b
  59. \sa wc_Blake2bUpdate
  60. */
  61. int wc_Blake2bFinal(Blake2b* b2b, byte* final, word32 requestSz);