/*! \ingroup Camellia \brief この関数は、Camelliaオブジェクトのキーと初期化ベクトルを設定し、それを暗号として使用するために初期化します。 \return 0 キーと初期化ベクトルを正常に設定すると返されます \return BAD_FUNC_ARG 入力引数の1つがエラー処理がある場合に返されます \return MEMORY_E xmallocでメモリを割り当てるエラーがある場合 \param cam キーとIVを設定する椿構造へのポインタ \param key 暗号化と復号化に使用する16,24、または32バイトのキーを含むバッファへのポインタ \param len 渡されたキーの長さ _Example_ \code Camellia cam; byte key[32]; // initialize key byte iv[16]; // initialize iv if( wc_CamelliaSetKey(&cam, key, sizeof(key), iv) != 0) { // error initializing camellia structure } \endcode \sa wc_CamelliaEncryptDirect \sa wc_CamelliaDecryptDirect \sa wc_CamelliaCbcEncrypt \sa wc_CamelliaCbcDecrypt */ int wc_CamelliaSetKey(Camellia* cam, const byte* key, word32 len, const byte* iv); /*! \ingroup Camellia \brief この関数は、Camelliaオブジェクトの初期化ベクトルを設定します。 \return 0 キーと初期化ベクトルを正常に設定すると返されます \return BAD_FUNC_ARG 入力引数の1つがエラー処理がある場合に返されます \param cam IVを設定する椿構造へのポインタ _Example_ \code Camellia cam; byte iv[16]; // initialize iv if( wc_CamelliaSetIV(&cam, iv) != 0) { // error initializing camellia structure } \endcode \sa wc_CamelliaSetKey */ int wc_CamelliaSetIV(Camellia* cam, const byte* iv); /*! \ingroup Camellia \brief この機能は、提供されたCamelliaオブジェクトを使用して1ブロック暗号化します。それはバッファーの最初の16バイトブロックを解析し、暗号化結果をバッファアウトに格納します。この機能を使用する前に、WC_CAMELLIASETKEYを使用してCamelliaオブジェクトを初期化する必要があります。 \return none いいえ返します。 \param cam 暗号化に使用する椿構造へのポインタ \param out 暗号化されたブロックを保存するバッファへのポインタ _Example_ \code Camellia cam; // initialize cam structure with key and iv byte plain[] = { // initialize with message to encrypt }; byte cipher[16]; wc_CamelliaEncryptDirect(&ca, cipher, plain); \endcode \sa wc_CamelliaDecryptDirect */ int wc_CamelliaEncryptDirect(Camellia* cam, byte* out, const byte* in); /*! \ingroup Camellia \brief この機能は、提供されたCamelliaオブジェクトを使用して1ブロック復号化します。それはバッファ内の最初の16バイトブロックを解析し、それを復号化し、結果をバッファアウトに格納します。この機能を使用する前に、WC_CAMELLIASETKEYを使用してCamelliaオブジェクトを初期化する必要があります。 \return none いいえ返します。 \param cam 暗号化に使用する椿構造へのポインタ \param out 復号化された平文ブロックを保存するバッファへのポインタ _Example_ \code Camellia cam; // initialize cam structure with key and iv byte cipher[] = { // initialize with encrypted message to decrypt }; byte decrypted[16]; wc_CamelliaDecryptDirect(&cam, decrypted, cipher); \endcode \sa wc_CamelliaEncryptDirect */ int wc_CamelliaDecryptDirect(Camellia* cam, byte* out, const byte* in); /*! \ingroup Camellia \brief この関数は、バッファーの平文を暗号化し、その出力をバッファOUTに格納します。暗号ブロックチェーン(CBC)を使用してCamelliaを使用してこの暗号化を実行します。 \return none いいえ返します。 \param cam 暗号化に使用する椿構造へのポインタ \param out 暗号化された暗号文を保存するバッファへのポインタ \param in 暗号化する平文を含むバッファへのポインタ _Example_ \code Camellia cam; // initialize cam structure with key and iv byte plain[] = { // initialize with encrypted message to decrypt }; byte cipher[sizeof(plain)]; wc_CamelliaCbcEncrypt(&cam, cipher, plain, sizeof(plain)); \endcode \sa wc_CamelliaCbcDecrypt */ int wc_CamelliaCbcEncrypt(Camellia* cam, byte* out, const byte* in, word32 sz); /*! \ingroup Camellia \brief この関数は、バッファ内の暗号文を復号化し、その出力をバッファOUTに格納します。暗号ブロックチェーン(CBC)を搭載したCamelliaを使用してこの復号化を実行します。 \return none いいえ返します。 \param cam 暗号化に使用する椿構造へのポインタ \param out 復号化されたメッセージを保存するバッファへのポインタ \param in 暗号化された暗号文を含むバッファへのポインタ _Example_ \code Camellia cam; // initialize cam structure with key and iv byte cipher[] = { // initialize with encrypted message to decrypt }; byte decrypted[sizeof(cipher)]; wc_CamelliaCbcDecrypt(&cam, decrypted, cipher, sizeof(cipher)); \endcode \sa wc_CamelliaCbcEncrypt */ int wc_CamelliaCbcDecrypt(Camellia* cam, byte* out, const byte* in, word32 sz);