camellia.h 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. /*!
  2. \ingroup Camellia
  3. \brief この関数は、Camelliaオブジェクトのキーと初期化ベクトルを設定し、それを暗号として使用するために初期化します。
  4. \return 0 キーと初期化ベクトルを正常に設定すると返されます
  5. \return BAD_FUNC_ARG 入力引数の1つがエラー処理がある場合に返されます
  6. \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合
  7. \param cam キーとIVを設定する椿構造へのポインタ
  8. \param key 暗号化と復号化に使用する16,24、または32バイトのキーを含むバッファへのポインタ
  9. \param len 渡されたキーの長さ
  10. _Example_
  11. \code
  12. Camellia cam;
  13. byte key[32];
  14. // initialize key
  15. byte iv[16];
  16. // initialize iv
  17. if( wc_CamelliaSetKey(&cam, key, sizeof(key), iv) != 0) {
  18. // error initializing camellia structure
  19. }
  20. \endcode
  21. \sa wc_CamelliaEncryptDirect
  22. \sa wc_CamelliaDecryptDirect
  23. \sa wc_CamelliaCbcEncrypt
  24. \sa wc_CamelliaCbcDecrypt
  25. */
  26. int wc_CamelliaSetKey(Camellia* cam,
  27. const byte* key, word32 len, const byte* iv);
  28. /*!
  29. \ingroup Camellia
  30. \brief この関数は、Camelliaオブジェクトの初期化ベクトルを設定します。
  31. \return 0 キーと初期化ベクトルを正常に設定すると返されます
  32. \return BAD_FUNC_ARG 入力引数の1つがエラー処理がある場合に返されます
  33. \param cam IVを設定する椿構造へのポインタ
  34. _Example_
  35. \code
  36. Camellia cam;
  37. byte iv[16];
  38. // initialize iv
  39. if( wc_CamelliaSetIV(&cam, iv) != 0) {
  40. // error initializing camellia structure
  41. }
  42. \endcode
  43. \sa wc_CamelliaSetKey
  44. */
  45. int wc_CamelliaSetIV(Camellia* cam, const byte* iv);
  46. /*!
  47. \ingroup Camellia
  48. \brief この機能は、提供されたCamelliaオブジェクトを使用して1ブロック暗号化します。それはバッファーの最初の16バイトブロックを解析し、暗号化結果をバッファアウトに格納します。この機能を使用する前に、WC_CAMELLIASETKEYを使用してCamelliaオブジェクトを初期化する必要があります。
  49. \return none いいえ返します。
  50. \param cam 暗号化に使用する椿構造へのポインタ
  51. \param out 暗号化されたブロックを保存するバッファへのポインタ
  52. _Example_
  53. \code
  54. Camellia cam;
  55. // initialize cam structure with key and iv
  56. byte plain[] = { // initialize with message to encrypt };
  57. byte cipher[16];
  58. wc_CamelliaEncryptDirect(&ca, cipher, plain);
  59. \endcode
  60. \sa wc_CamelliaDecryptDirect
  61. */
  62. int wc_CamelliaEncryptDirect(Camellia* cam, byte* out,
  63. const byte* in);
  64. /*!
  65. \ingroup Camellia
  66. \brief この機能は、提供されたCamelliaオブジェクトを使用して1ブロック復号化します。それはバッファ内の最初の16バイトブロックを解析し、それを復号化し、結果をバッファアウトに格納します。この機能を使用する前に、WC_CAMELLIASETKEYを使用してCamelliaオブジェクトを初期化する必要があります。
  67. \return none いいえ返します。
  68. \param cam 暗号化に使用する椿構造へのポインタ
  69. \param out 復号化された平文ブロックを保存するバッファへのポインタ
  70. _Example_
  71. \code
  72. Camellia cam;
  73. // initialize cam structure with key and iv
  74. byte cipher[] = { // initialize with encrypted message to decrypt };
  75. byte decrypted[16];
  76. wc_CamelliaDecryptDirect(&cam, decrypted, cipher);
  77. \endcode
  78. \sa wc_CamelliaEncryptDirect
  79. */
  80. int wc_CamelliaDecryptDirect(Camellia* cam, byte* out,
  81. const byte* in);
  82. /*!
  83. \ingroup Camellia
  84. \brief この関数は、バッファーの平文を暗号化し、その出力をバッファOUTに格納します。暗号ブロックチェーン(CBC)を使用してCamelliaを使用してこの暗号化を実行します。
  85. \return none いいえ返します。
  86. \param cam 暗号化に使用する椿構造へのポインタ
  87. \param out 暗号化された暗号文を保存するバッファへのポインタ
  88. \param in 暗号化する平文を含むバッファへのポインタ
  89. _Example_
  90. \code
  91. Camellia cam;
  92. // initialize cam structure with key and iv
  93. byte plain[] = { // initialize with encrypted message to decrypt };
  94. byte cipher[sizeof(plain)];
  95. wc_CamelliaCbcEncrypt(&cam, cipher, plain, sizeof(plain));
  96. \endcode
  97. \sa wc_CamelliaCbcDecrypt
  98. */
  99. int wc_CamelliaCbcEncrypt(Camellia* cam,
  100. byte* out, const byte* in, word32 sz);
  101. /*!
  102. \ingroup Camellia
  103. \brief この関数は、バッファ内の暗号文を復号化し、その出力をバッファOUTに格納します。暗号ブロックチェーン(CBC)を搭載したCamelliaを使用してこの復号化を実行します。
  104. \return none いいえ返します。
  105. \param cam 暗号化に使用する椿構造へのポインタ
  106. \param out 復号化されたメッセージを保存するバッファへのポインタ
  107. \param in 暗号化された暗号文を含むバッファへのポインタ
  108. _Example_
  109. \code
  110. Camellia cam;
  111. // initialize cam structure with key and iv
  112. byte cipher[] = { // initialize with encrypted message to decrypt };
  113. byte decrypted[sizeof(cipher)];
  114. wc_CamelliaCbcDecrypt(&cam, decrypted, cipher, sizeof(cipher));
  115. \endcode
  116. \sa wc_CamelliaCbcEncrypt
  117. */
  118. int wc_CamelliaCbcDecrypt(Camellia* cam,
  119. byte* out, const byte* in, word32 sz);