#include <stdlib.h>
#include <stdio.h>
#include <include/ecctk-prototype.h>
#include <include/ecctk-cipher.h>
void encrypt_file()
{
s4byte ret = -1;
#ifndef ECCTK_EVALUATION
s2byte algo = ECCTK_CIPHER_ALGO_RIJNDAEL,
#else
s2byte algo = ECCTK_CIPHER_ALGO_BLOWFISH,
#endif
mode = ECCTK_CIPHER_MODE_CBC;
s1byte infile[] = "plain_file",
outfile[] = "protected_file";
u1byte key[] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff},
iv[] = {0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88,
0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x00};
switch (algo)
{
case ECCTK_CIPHER_ALGO_DES:
ret = DES_FileEncrypt(infile, outfile, key, sizeof(key)/4, iv, sizeof(iv)/2, 1, mode);
break;
case ECCTK_CIPHER_ALGO_3DES_EDE_2:
ret = DES_FileEncrypt(infile, outfile, key, sizeof(key)/2, iv, sizeof(iv)/2, 2, mode);
break;
case ECCTK_CIPHER_ALGO_3DES_EDE_3:
ret = DES_FileEncrypt(infile, outfile, key, sizeof(key), iv, sizeof(iv)/2, 3, mode);
break;
case ECCTK_CIPHER_ALGO_RC2:
ret = RC2_FileEncrypt(infile, outfile, key, sizeof(key)/2, iv, sizeof(iv)/2, mode);
break;
case ECCTK_CIPHER_ALGO_RC4:
ret = RC4_FileEncrypt(infile, outfile, key, sizeof(key));
break;
case ECCTK_CIPHER_ALGO_CAST128:
ret = CAST128_FileEncrypt(infile, outfile, key, sizeof(key)/2, iv, sizeof(iv)/2, mode);
break;
case ECCTK_CIPHER_ALGO_BLOWFISH:
ret = BLOWFISH_FileEncrypt(infile, outfile, key, sizeof(key), iv, sizeof(iv)/2, mode);
break;
#ifndef ECCTK_EVALUATION
case ECCTK_CIPHER_ALGO_MARS:
ret = MARS_FileEncrypt(infile, outfile, key, sizeof(key), iv, sizeof(iv), mode);
break;
case ECCTK_CIPHER_ALGO_SERPENT:
ret = SERPENT_FileEncrypt(infile, outfile, key, sizeof(key), iv, sizeof(iv), mode);
break;
case ECCTK_CIPHER_ALGO_TWOFISH:
ret = TWOFISH_FileEncrypt(infile, outfile, key, sizeof(key), iv, sizeof(iv), mode);
break;
case ECCTK_CIPHER_ALGO_RIJNDAEL:
ret = RIJNDAEL_FileEncrypt(infile, outfile, key, sizeof(key), iv, sizeof(iv), mode);
break;
#endif
default:
break;
}
if (ret != ECCTK_CIPHER_NO_ERROR)
printf("Encrypt %s failed (Error : %ld)\n", infile, ret);
else
printf("Encrypt %s success, %s generated\n", infile, outfile);
}