chacha.h 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*!
  2. \ingroup ChaCha
  3. \brief この関数はChachaオブジェクトの初期化ベクトル(nonce)を設定し、暗号として使用するために初期化します。WC_CHACHA_SETKEYを使用して、キーが設定された後に呼び出されるべきです。暗号化の各ラウンドに差し違いを使用する必要があります。
  4. \return 0 初期化ベクトルを正常に設定すると返されます
  5. \return BAD_FUNC_ARG CTX入力引数の処理中にエラーが発生した場合
  6. \param ctx IVを設定するChacha構造へのポインタ
  7. \param inIv Chacha構造を初期化するための12バイトの初期化ベクトルを含むバッファへのポインタ
  8. _Example_
  9. \code
  10. ChaCha enc;
  11. // initialize enc with wc_Chacha_SetKey
  12. byte iv[12];
  13. // initialize iv
  14. if( wc_Chacha_SetIV(&enc, iv, 0) != 0) {
  15. // error initializing ChaCha structure
  16. }
  17. \endcode
  18. \sa wc_Chacha_SetKey
  19. \sa wc_Chacha_Process
  20. */
  21. int wc_Chacha_SetIV(ChaCha* ctx, const byte* inIv, word32 counter);
  22. /*!
  23. \ingroup ChaCha
  24. \brief この関数は、バッファ入力からテキストを処理し、暗号化または復号化し、結果をバッファ出力に格納します。
  25. \return 0 入力の暗号化または復号化に成功したときに返されます
  26. \return BAD_FUNC_ARG CTX入力引数の処理中にエラーが発生した場合
  27. \param ctx IVを設定するChacha構造へのポインタ
  28. \param output 出力暗号文または復号化された平文を保存するバッファへのポインタ
  29. \param input 暗号化する入力平文を含むバッファへのポインタまたは復号化する入力暗号文
  30. _Example_
  31. \code
  32. ChaCha enc;
  33. // initialize enc with wc_Chacha_SetKey and wc_Chacha_SetIV
  34. byte plain[] = { // initialize plaintext };
  35. byte cipher[sizeof(plain)];
  36. if( wc_Chacha_Process(&enc, cipher, plain, sizeof(plain)) != 0) {
  37. // error processing ChaCha cipher
  38. }
  39. \endcode
  40. \sa wc_Chacha_SetKey
  41. \sa wc_Chacha_Process
  42. */
  43. int wc_Chacha_Process(ChaCha* ctx, byte* cipher, const byte* plain,
  44. word32 msglen);
  45. /*!
  46. \ingroup ChaCha
  47. \brief この関数はChachaオブジェクトのキーを設定し、それを暗号として使用するために初期化します。NONCEをWC_CHACHA_SETIVで設定する前に、WC_CHACHA_PROCESSを使用した暗号化に使用する前に呼び出す必要があります。
  48. \return 0 キーの設定に成功したときに返されます
  49. \return BAD_FUNC_ARG CTX入力引数の処理中にエラーが発生した場合、またはキーが16または32バイトの長さがある場合
  50. \param ctx キーを設定するChacha構造へのポインタ
  51. \param key Chacha構造を初期化するための16または32バイトのキーを含むバッファへのポインタ
  52. _Example_
  53. \code
  54. ChaCha enc;
  55. byte key[] = { // initialize key };
  56. if( wc_Chacha_SetKey(&enc, key, sizeof(key)) != 0) {
  57. // error initializing ChaCha structure
  58. }
  59. \endcode
  60. \sa wc_Chacha_SetIV
  61. \sa wc_Chacha_Process
  62. */
  63. int wc_Chacha_SetKey(ChaCha* ctx, const byte* key, word32 keySz);