evp.h
Functions
| Name | |
|---|---|
| const WOLFSSL_EVP_CIPHER * | wolfSSL_EVP_des_ede3_ecb(void ) それぞれのWOLFSSL_EVP_CIPHERポインタのゲッター関数。これらの暗号文字列を設定するには、まずプログラムでwolfSSL_EVP_init()を一度呼び出す必要があります。wolfSSL_EVP_des_ede3_ecb()の場合、WOLFSSL_DES_ECBマクロが定義されている必要があります。 |
| const WOLFSSL_EVP_CIPHER * | wolfSSL_EVP_des_cbc(void ) それぞれのWOLFSSL_EVP_CIPHERポインタのゲッター関数。これらの暗号文字列を設定するには、まずプログラムでwolfSSL_EVP_init()を一度呼び出す必要があります。wolfSSL_EVP_des_ecb()の場合、WOLFSSL_DES_ECBマクロが定義されている必要があります。 |
| int | wolfSSL_EVP_DigestInit_ex(WOLFSSL_EVP_MD_CTX * ctx, const WOLFSSL_EVP_MD * type, WOLFSSL_ENGINE * impl) WOLFSSL_EVP_MD_CTXを初期化する関数。この関数は、wolfSSLがWOLFSSL_ENGINEを使用しないため、wolfSSL_EVP_DigestInit()のラッパーです。 |
| int | wolfSSL_EVP_CipherInit_ex(WOLFSSL_EVP_CIPHER_CTX * ctx, const WOLFSSL_EVP_CIPHER * type, WOLFSSL_ENGINE * impl, const unsigned char * key, const unsigned char * iv, int enc) WOLFSSL_EVP_CIPHER_CTXを初期化する関数。この関数は、wolfSSLがWOLFSSL_ENGINEを使用しないため、wolfSSL_CipherInit()のラッパーです。 |
| int | wolfSSL_EVP_EncryptInit_ex(WOLFSSL_EVP_CIPHER_CTX * ctx, const WOLFSSL_EVP_CIPHER * type, WOLFSSL_ENGINE * impl, const unsigned char * key, const unsigned char * iv) WOLFSSL_EVP_CIPHER_CTXを初期化する関数。この関数は、wolfSSLがWOLFSSL_ENGINEを使用しないため、wolfSSL_EVP_CipherInit()のラッパーです。暗号化フラグを暗号化に設定します。 |
| int | wolfSSL_EVP_DecryptInit_ex(WOLFSSL_EVP_CIPHER_CTX * ctx, const WOLFSSL_EVP_CIPHER * type, WOLFSSL_ENGINE * impl, const unsigned char * key, const unsigned char * iv) WOLFSSL_EVP_CIPHER_CTXを初期化する関数。この関数は、wolfSSLがWOLFSSL_ENGINEを使用しないため、wolfSSL_EVP_CipherInit()のラッパーです。暗号化フラグを復号に設定します。 |
| int | wolfSSL_EVP_CipherUpdate(WOLFSSL_EVP_CIPHER_CTX * ctx, unsigned char * out, int * outl, const unsigned char * in, int inl) データを暗号化/復号する関数。inバッファが暗号化または復号される対象として追加され、outバッファが結果を保持します。outlは暗号化/復号された情報の長さになります。 |
| int | wolfSSL_EVP_CipherFinal(WOLFSSL_EVP_CIPHER_CTX * ctx, unsigned char * out, int * outl) この関数は、パディングを追加する最終暗号操作を実行します。WOLFSSL_EVP_CIPHER_CTX構造体にWOLFSSL_EVP_CIPH_NO_PADDINGフラグが設定されている場合、1が返され、暗号化/復号は実行されません。パディングフラグが設定されている場合、ctxが暗号化に設定されているときにパディングが追加され暗号化され、復号に設定されているときにパディング値がチェックされます。 |
| int | wolfSSL_EVP_CIPHER_CTX_set_key_length(WOLFSSL_EVP_CIPHER_CTX * ctx, int keylen) WOLFSSL_EVP_CIPHER_CTX構造体の鍵長のセッター関数。 |
| int | wolfSSL_EVP_CIPHER_CTX_block_size(const WOLFSSL_EVP_CIPHER_CTX * ctx) これはctxブロックサイズのゲッター関数です。 |
| int | wolfSSL_EVP_CIPHER_block_size(const WOLFSSL_EVP_CIPHER * cipher) これは暗号のブロックサイズのゲッター関数です。 |
| void | wolfSSL_EVP_CIPHER_CTX_set_flags(WOLFSSL_EVP_CIPHER_CTX * ctx, int flags) WOLFSSL_EVP_CIPHER_CTX構造体のセッター関数。 |
| void | wolfSSL_EVP_CIPHER_CTX_clear_flags(WOLFSSL_EVP_CIPHER_CTX * ctx, int flags) WOLFSSL_EVP_CIPHER_CTX構造体のクリア関数。 |
| int | wolfSSL_EVP_CIPHER_CTX_set_padding(WOLFSSL_EVP_CIPHER_CTX * c, int pad) パディングを使用するためのWOLFSSL_EVP_CIPHER_CTX構造体のセッター関数。 |
| unsigned long | wolfSSL_EVP_CIPHER_CTX_flags(const WOLFSSL_EVP_CIPHER_CTX * ctx) WOLFSSL_EVP_CIPHER_CTX構造体のゲッター関数。v1.1.0で非推奨 |
Functions Documentation
function wolfSSL_EVP_des_ede3_ecb
const WOLFSSL_EVP_CIPHER * wolfSSL_EVP_des_ede3_ecb(
void
)
それぞれのWOLFSSL_EVP_CIPHERポインタのゲッター関数。これらの暗号文字列を設定するには、まずプログラムでwolfSSL_EVP_init()を一度呼び出す必要があります。wolfSSL_EVP_des_ede3_ecb()の場合、WOLFSSL_DES_ECBマクロが定義されている必要があります。
Parameters:
- none パラメータなし。
See: wolfSSL_EVP_CIPHER_CTX_init
Return: pointer DES EDE3操作用のWOLFSSL_EVP_CIPHERポインタを返します。
Example
printf("block size des ede3 cbc = %d\n",
wolfSSL_EVP_CIPHER_block_size(wolfSSL_EVP_des_ede3_cbc()));
printf("block size des ede3 ecb = %d\n",
wolfSSL_EVP_CIPHER_block_size(wolfSSL_EVP_des_ede3_ecb()));
function wolfSSL_EVP_des_cbc
const WOLFSSL_EVP_CIPHER * wolfSSL_EVP_des_cbc(
void
)
それぞれのWOLFSSL_EVP_CIPHERポインタのゲッター関数。これらの暗号文字列を設定するには、まずプログラムでwolfSSL_EVP_init()を一度呼び出す必要があります。wolfSSL_EVP_des_ecb()の場合、WOLFSSL_DES_ECBマクロが定義されている必要があります。
Parameters:
- none パラメータなし。
See: wolfSSL_EVP_CIPHER_CTX_init
Return: pointer DES操作用のWOLFSSL_EVP_CIPHERポインタを返します。
Example
WOLFSSL_EVP_CIPHER* cipher;
cipher = wolfSSL_EVP_des_cbc();
…
function wolfSSL_EVP_DigestInit_ex
int wolfSSL_EVP_DigestInit_ex(
WOLFSSL_EVP_MD_CTX * ctx,
const WOLFSSL_EVP_MD * type,
WOLFSSL_ENGINE * impl
)
WOLFSSL_EVP_MD_CTXを初期化する関数。この関数は、wolfSSLがWOLFSSL_ENGINEを使用しないため、wolfSSL_EVP_DigestInit()のラッパーです。
Parameters:
- ctx 初期化する構造体。
- type 実行するハッシュのタイプ、例えばSHA。
- impl 使用するエンジン。wolfSSLでは該当なし、NULLでも可。
See:
- wolfSSL_EVP_MD_CTX_new
- wolfCrypt_Init
- wolfSSL_EVP_MD_CTX_free
Return:
- SSL_SUCCESS 正常に設定された場合。
- SSL_FAILURE 成功しなかった場合。
Example
WOLFSSL_EVP_MD_CTX* md = NULL;
wolfCrypt_Init();
md = wolfSSL_EVP_MD_CTX_new();
if (md == NULL) {
printf("error setting md\n");
return -1;
}
printf("cipher md init ret = %d\n", wolfSSL_EVP_DigestInit_ex(md,
wolfSSL_EVP_sha1(), e));
//リソースを解放
function wolfSSL_EVP_CipherInit_ex
int wolfSSL_EVP_CipherInit_ex(
WOLFSSL_EVP_CIPHER_CTX * ctx,
const WOLFSSL_EVP_CIPHER * type,
WOLFSSL_ENGINE * impl,
const unsigned char * key,
const unsigned char * iv,
int enc
)
WOLFSSL_EVP_CIPHER_CTXを初期化する関数。この関数は、wolfSSLがWOLFSSL_ENGINEを使用しないため、wolfSSL_CipherInit()のラッパーです。
Parameters:
- ctx 初期化する構造体。
- type 実行する暗号化/復号のタイプ、例えばAES。
- impl 使用するエンジン。wolfSSLでは該当なし、NULLでも可。
- key 設定する鍵。
- iv アルゴリズムが必要とする場合のiv。
- enc 暗号化(1)または復号(0)フラグ。
See:
- wolfSSL_EVP_CIPHER_CTX_new
- wolfCrypt_Init
- wolfSSL_EVP_CIPHER_CTX_free
Return:
- SSL_SUCCESS 正常に設定された場合。
- SSL_FAILURE 成功しなかった場合。
Example
WOLFSSL_EVP_CIPHER_CTX* ctx = NULL;
WOLFSSL_ENGINE* e = NULL;
unsigned char key[16];
unsigned char iv[12];
wolfCrypt_Init();
ctx = wolfSSL_EVP_CIPHER_CTX_new();
if (ctx == NULL) {
printf("issue creating ctx\n");
return -1;
}
printf("cipher init ex error ret = %d\n", wolfSSL_EVP_CipherInit_ex(NULL,
EVP_aes_128_ cbc(), e, key, iv, 1));
printf("cipher init ex success ret = %d\n", wolfSSL_EVP_CipherInit_ex(ctx,
EVP_aes_128_c bc(), e, key, iv, 1));
// リソースを解放
function wolfSSL_EVP_EncryptInit_ex
int wolfSSL_EVP_EncryptInit_ex(
WOLFSSL_EVP_CIPHER_CTX * ctx,
const WOLFSSL_EVP_CIPHER * type,
WOLFSSL_ENGINE * impl,
const unsigned char * key,
const unsigned char * iv
)
WOLFSSL_EVP_CIPHER_CTXを初期化する関数。この関数は、wolfSSLがWOLFSSL_ENGINEを使用しないため、wolfSSL_EVP_CipherInit()のラッパーです。暗号化フラグを暗号化に設定します。
Parameters:
- ctx 初期化する構造体。
- type 実行する暗号化のタイプ、例えばAES。
- impl 使用するエンジン。wolfSSLでは該当なし、NULLでも可。
- key 使用する鍵。
- iv 使用するiv。
See:
- wolfSSL_EVP_CIPHER_CTX_new
- wolfCrypt_Init
- wolfSSL_EVP_CIPHER_CTX_free
Return:
- SSL_SUCCESS 正常に設定された場合。
- SSL_FAILURE 成功しなかった場合。
Example
WOLFSSL_EVP_CIPHER_CTX* ctx = NULL;
wolfCrypt_Init();
ctx = wolfSSL_EVP_CIPHER_CTX_new();
if (ctx == NULL) {
printf("error setting ctx\n");
return -1;
}
printf("cipher ctx init ret = %d\n", wolfSSL_EVP_EncryptInit_ex(ctx,
wolfSSL_EVP_aes_128_cbc(), e, key, iv));
//リソースを解放
function wolfSSL_EVP_DecryptInit_ex
int wolfSSL_EVP_DecryptInit_ex(
WOLFSSL_EVP_CIPHER_CTX * ctx,
const WOLFSSL_EVP_CIPHER * type,
WOLFSSL_ENGINE * impl,
const unsigned char * key,
const unsigned char * iv
)
WOLFSSL_EVP_CIPHER_CTXを初期化する関数。この関数は、wolfSSLがWOLFSSL_ENGINEを使用しないため、wolfSSL_EVP_CipherInit()のラッパーです。暗号化フラグを復号に設定します。
Parameters:
- ctx 初期化する構造体。
- type 実行する暗号化/復号のタイプ、例えばAES。
- impl 使用するエンジン。wolfSSLでは該当なし、NULLでも可。
- key 設定する鍵。
- iv アルゴリズムが必要とする場合のiv。
- enc 暗号化(1)または復号(0)フラグ。
See:
- wolfSSL_EVP_CIPHER_CTX_new
- wolfCrypt_Init
- wolfSSL_EVP_CIPHER_CTX_free
Return:
- SSL_SUCCESS 正常に設定された場合。
- SSL_FAILURE 成功しなかった場合。
Example
WOLFSSL_EVP_CIPHER_CTX* ctx = NULL;
WOLFSSL_ENGINE* e = NULL;
unsigned char key[16];
unsigned char iv[12];
wolfCrypt_Init();
ctx = wolfSSL_EVP_CIPHER_CTX_new();
if (ctx == NULL) {
printf("issue creating ctx\n");
return -1;
}
printf("cipher init ex error ret = %d\n", wolfSSL_EVP_DecryptInit_ex(NULL,
EVP_aes_128_ cbc(), e, key, iv, 1));
printf("cipher init ex success ret = %d\n", wolfSSL_EVP_DecryptInit_ex(ctx,
EVP_aes_128_c bc(), e, key, iv, 1));
// リソースを解放
function wolfSSL_EVP_CipherUpdate
int wolfSSL_EVP_CipherUpdate(
WOLFSSL_EVP_CIPHER_CTX * ctx,
unsigned char * out,
int * outl,
const unsigned char * in,
int inl
)
データを暗号化/復号する関数。inバッファが暗号化または復号される対象として追加され、outバッファが結果を保持します。outlは暗号化/復号された情報の長さになります。
Parameters:
- ctx 暗号タイプを取得する構造体。
- out 出力を保持するバッファ。
- outl 出力のサイズに調整されます。
- in 操作を実行するバッファ。
- inl 入力バッファの長さ。
See:
- wolfSSL_EVP_CIPHER_CTX_new
- wolfCrypt_Init
- wolfSSL_EVP_CIPHER_CTX_free
Return:
- SSL_SUCCESS 成功した場合。
- SSL_FAILURE 成功しなかった場合。
Example
WOLFSSL_EVP_CIPHER_CTX* ctx = NULL;
unsigned char out[100];
int outl;
unsigned char in[100];
int inl = 100;
ctx = wolfSSL_EVP_CIPHER_CTX_new();
// ctxをセットアップ
ret = wolfSSL_EVP_CipherUpdate(ctx, out, outl, in, inl);
// ret値をチェック
// バッファoutはoutlバイトのデータを保持
// リソースを解放
function wolfSSL_EVP_CipherFinal
int wolfSSL_EVP_CipherFinal(
WOLFSSL_EVP_CIPHER_CTX * ctx,
unsigned char * out,
int * outl
)
この関数は、パディングを追加する最終暗号操作を実行します。WOLFSSL_EVP_CIPHER_CTX構造体にWOLFSSL_EVP_CIPH_NO_PADDINGフラグが設定されている場合、1が返され、暗号化/復号は実行されません。パディングフラグが設定されている場合、ctxが暗号化に設定されているときにパディングが追加され暗号化され、復号に設定されているときにパディング値がチェックされます。
Parameters:
- ctx 復号/暗号化に使用する構造体。
- out 最終復号/暗号化用のバッファ。
- out1 関数によってデータが追加されたときのoutバッファのサイズ。
See: wolfSSL_EVP_CIPHER_CTX_new
Return:
- 1 成功時に返されます。
- 0 失敗が発生した場合。
Example
WOLFSSL_EVP_CIPHER_CTX* ctx;
int out1;
unsigned char out[64];
// ctxを作成
wolfSSL_EVP_CipherFinal(ctx, out, &out1);
function wolfSSL_EVP_CIPHER_CTX_set_key_length
int wolfSSL_EVP_CIPHER_CTX_set_key_length(
WOLFSSL_EVP_CIPHER_CTX * ctx,
int keylen
)
WOLFSSL_EVP_CIPHER_CTX構造体の鍵長のセッター関数。
Parameters:
- ctx 鍵長を設定する構造体。
- keylen 鍵の長さ。
See: wolfSSL_EVP_CIPHER_flags
Return:
- SSL_SUCCESS 正常に設定された場合。
- SSL_FAILURE 鍵長の設定に失敗した場合。
Example
WOLFSSL_EVP_CIPHER_CTX* ctx;
int keylen;
// ctxを作成
wolfSSL_EVP_CIPHER_CTX_set_key_length(ctx, keylen);
function wolfSSL_EVP_CIPHER_CTX_block_size
int wolfSSL_EVP_CIPHER_CTX_block_size(
const WOLFSSL_EVP_CIPHER_CTX * ctx
)
これはctxブロックサイズのゲッター関数です。
Parameters:
- ctx ブロックサイズを取得する暗号ctx。
See: wolfSSL_EVP_CIPHER_block_size
Return: size ctx->block_sizeを返します。
Example
const WOLFSSL_CVP_CIPHER_CTX* ctx;
//ctxをセットアップ
printf("block size = %d\n", wolfSSL_EVP_CIPHER_CTX_block_size(ctx));
function wolfSSL_EVP_CIPHER_block_size
int wolfSSL_EVP_CIPHER_block_size(
const WOLFSSL_EVP_CIPHER * cipher
)
これは暗号のブロックサイズのゲッター関数です。
Parameters:
- cipher ブロックサイズを取得する暗号。
See: wolfSSL_EVP_aes_256_ctr
Return: size ブロックサイズを返します。
Example
printf("block size = %d\n",
wolfSSL_EVP_CIPHER_block_size(wolfSSL_EVP_aes_256_ecb()));
function wolfSSL_EVP_CIPHER_CTX_set_flags
void wolfSSL_EVP_CIPHER_CTX_set_flags(
WOLFSSL_EVP_CIPHER_CTX * ctx,
int flags
)
WOLFSSL_EVP_CIPHER_CTX構造体のセッター関数。
Parameters:
- ctx フラグを設定する構造体。
- flag 構造体に設定するフラグ。
See:
- wolfSSL_EVP_CIPHER_flags
- wolfSSL_EVP_CIPHER_CTX_flags
Return: none 戻り値なし。
Example
WOLFSSL_EVP_CIPHER_CTX* ctx;
int flag;
// ctxを作成
wolfSSL_EVP_CIPHER_CTX_set_flags(ctx, flag);
function wolfSSL_EVP_CIPHER_CTX_clear_flags
void wolfSSL_EVP_CIPHER_CTX_clear_flags(
WOLFSSL_EVP_CIPHER_CTX * ctx,
int flags
)
WOLFSSL_EVP_CIPHER_CTX構造体のクリア関数。
Parameters:
- ctx フラグをクリアする構造体。
- flag 構造体でクリアするフラグ値。
See:
- wolfSSL_EVP_CIPHER_flags
- wolfSSL_EVP_CIPHER_CTX_flags
Return: none 戻り値なし。
Example
WOLFSSL_EVP_CIPHER_CTX* ctx;
int flag;
// ctxを作成
wolfSSL_EVP_CIPHER_CTX_clear_flags(ctx, flag);
function wolfSSL_EVP_CIPHER_CTX_set_padding
int wolfSSL_EVP_CIPHER_CTX_set_padding(
WOLFSSL_EVP_CIPHER_CTX * c,
int pad
)
パディングを使用するためのWOLFSSL_EVP_CIPHER_CTX構造体のセッター関数。
Parameters:
- ctx パディングフラグを設定する構造体。
- padding パディングを設定しない場合は0、パディングを設定する場合は1。
See: wolfSSL_EVP_CIPHER_CTX_new
Return:
- SSL_SUCCESS 正常に設定された場合。
- BAD_FUNC_ARG null引数が渡された場合。
Example
WOLFSSL_EVP_CIPHER_CTX* ctx;
// ctxを作成
wolfSSL_EVP_CIPHER_CTX_set_padding(ctx, 1);
function wolfSSL_EVP_CIPHER_CTX_flags
unsigned long wolfSSL_EVP_CIPHER_CTX_flags(
const WOLFSSL_EVP_CIPHER_CTX * ctx
)
WOLFSSL_EVP_CIPHER_CTX構造体のゲッター関数。v1.1.0で非推奨
Parameters:
- ctx フラグを取得する構造体。
See:
- wolfSSL_EVP_CIPHER_CTX_new
- wolfSSL_EVP_CIPHER_flags
Return: unsigned long フラグ/モードのunsigned long。
Example
WOLFSSL_EVP_CIPHER_CTX* ctx;
unsigned long flags;
ctx = wolfSSL_EVP_CIPHER_CTX_new()
flags = wolfSSL_EVP_CIPHER_CTX_flags(ctx);
Source code
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_des_ede3_ecb(void);
const WOLFSSL_EVP_CIPHER* wolfSSL_EVP_des_cbc(void);
int wolfSSL_EVP_DigestInit_ex(WOLFSSL_EVP_MD_CTX* ctx,
const WOLFSSL_EVP_MD* type,
WOLFSSL_ENGINE *impl);
int wolfSSL_EVP_CipherInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx,
const WOLFSSL_EVP_CIPHER* type,
WOLFSSL_ENGINE *impl,
const unsigned char* key,
const unsigned char* iv,
int enc);
int wolfSSL_EVP_EncryptInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx,
const WOLFSSL_EVP_CIPHER* type,
WOLFSSL_ENGINE *impl,
const unsigned char* key,
const unsigned char* iv);
int wolfSSL_EVP_DecryptInit_ex(WOLFSSL_EVP_CIPHER_CTX* ctx,
const WOLFSSL_EVP_CIPHER* type,
WOLFSSL_ENGINE *impl,
const unsigned char* key,
const unsigned char* iv);
int wolfSSL_EVP_CipherUpdate(WOLFSSL_EVP_CIPHER_CTX *ctx,
unsigned char *out, int *outl,
const unsigned char *in, int inl);
int wolfSSL_EVP_CipherFinal(WOLFSSL_EVP_CIPHER_CTX *ctx,
unsigned char *out, int *outl);
int wolfSSL_EVP_CIPHER_CTX_set_key_length(WOLFSSL_EVP_CIPHER_CTX* ctx,
int keylen);
int wolfSSL_EVP_CIPHER_CTX_block_size(const WOLFSSL_EVP_CIPHER_CTX *ctx);
int wolfSSL_EVP_CIPHER_block_size(const WOLFSSL_EVP_CIPHER *cipher);
void wolfSSL_EVP_CIPHER_CTX_set_flags(WOLFSSL_EVP_CIPHER_CTX *ctx, int flags);
void wolfSSL_EVP_CIPHER_CTX_clear_flags(WOLFSSL_EVP_CIPHER_CTX *ctx, int flags);
int wolfSSL_EVP_CIPHER_CTX_set_padding(WOLFSSL_EVP_CIPHER_CTX *c, int pad);
unsigned long wolfSSL_EVP_CIPHER_CTX_flags(const WOLFSSL_EVP_CIPHER_CTX *ctx);
Updated on 2025-12-12 at 03:08:17 +0000