/* 暗号化に使用するバッファサイズ(バイト長) * 128bits = 16bytes, 192bits = 24bytes, 256bits = 32bytes の公倍数にしてみる */ #define ENCDEC_BUFF_SIZE 1536 /* * ファイルを暗号化・復号する関数(FILE*版) * 返り値: * 0 失敗 * 1 成功 */ int kencdec_from_FP_to_FP( char *cipher_alg /* IN:暗号アルゴリズム。OpenSSL の指定に基づく。暗号名+"-"+鍵長+"-"+暗号モード */ , unsigned char *keyData /* IN:暗号鍵のオクテット列 */ , int keyLen /* IN:暗号鍵の長さ(オクテット長) */ , unsigned char *ivData /* IN:初期化ベクトルのオクテット列 */ , int ivLen /* IN:初期化ベクトルの長さ(オクテット長) */ , FILE *fpIn /* IN:入力ファイルポインタ */ , FILE *fpOut /* OUT:出力ファイルポインタ */ , int type /* IN:処理タイプ。1:暗号化、0:復号 */ ); /* * ファイルの暗号化(FILE*版) */ #define kencrypt_from_FP_to_FP(ca,kd,kl,ivd,ivl,fi,fo) \ kencdec_from_FP_to_FP((ca),(kd),(kl),(ivd),(ivl),(fi),(fo),(1)) /* * ファイルの復号(FILE*版) */ #define kdecrypt_from_FP_to_FP(ca,kd,kl,ivd,ivl,fi,fo) \ kencdec_from_FP_to_FP((ca),(kd),(kl),(ivd),(ivl),(fi),(fo),(0))