AES_set_encrypt_key()
AES_set_decrypt_key()
AES_ecb_encrypt()
AES_cbc_encrypt()
AES_cfb128_encrypt()
AES_ofb128_encrypt()
これらの関数の引数には、
int enc
があり、1ならencode、0ならdecodeを行う。ECB,CBCの場合のdecodeは、
AES_set_decrypt_key()
AES_ecb/cbc_encrypt(..., 0);
とすればdecodeできるのだが、CFBとOFBの場合は以下のようにdecodeの場合でもAES_set_encrypt_key()を使わなくてはらなない。
AES_set_encrypt_key()
AES_cfb128/ofb128_encrypt(..., 0);
なぜかと言うと、
- AES_xxx_encrypt()は、内部でAES_encrypt()やAES_decrypt()を呼んでいる
- AES_set_encrypt/decrypt_key()は、AES_encrypt/decrypt()を呼ぶためのキーをセットする関数である
- ECBとCBCは、encode時にはAES_encrypt()、decode時にはAES_decrypt()を呼んでいる
- OFBとCFBは、encode時もdecode時もAES_encrypt()を呼んいる
0 件のコメント:
コメントを投稿