On Mon, Oct 12, 2015 at 07:33:32PM -0500, Rodger Combs wrote: > --- > tools/crypto_bench.c | 138 > +++++++++++++++++++++++++++++++++++++++++++++++++-- > 1 file changed, 135 insertions(+), 3 deletions(-) > > diff --git a/tools/crypto_bench.c b/tools/crypto_bench.c > index ad20f95..0b1bfc8 100644 > --- a/tools/crypto_bench.c > +++ b/tools/crypto_bench.c > @@ -52,6 +52,7 @@ static const char *enabled_algos; > static unsigned specified_runs; > > static const uint8_t *hardcoded_key = "FFmpeg is the best program ever."; > +static const uint8_t hardcoded_iv[16] = {0}; > > static void fatal_error(const char *tag) > { > @@ -136,6 +137,39 @@ static void run_lavu_aes256(uint8_t *output, const > uint8_t *input, unsigned size > av_aes_crypt(aes, output, input, size >> 4, NULL, 0); > } > > +static void run_lavu_aes128cbc(uint8_t *output, const uint8_t *input, > unsigned size) > +{ > + static struct AVAES *aes; > + static uint8_t *iv; > + if ((!aes && !(aes = av_aes_alloc())) || (!iv && !(iv = av_malloc(16)))) > + fatal_error("out of memory"); > + memcpy(iv, hardcoded_iv, 16); > + av_aes_init(aes, hardcoded_key, 128, 0); > + av_aes_crypt(aes, output, input, size >> 4, iv, 0); > +} > + > +static void run_lavu_aes192cbc(uint8_t *output, const uint8_t *input, > unsigned size) > +{ > + static struct AVAES *aes; > + static uint8_t *iv; > + if ((!aes && !(aes = av_aes_alloc())) || (!iv && !(iv = av_malloc(16)))) > + fatal_error("out of memory"); > + memcpy(iv, hardcoded_iv, 16); > + av_aes_init(aes, hardcoded_key, 192, 0); > + av_aes_crypt(aes, output, input, size >> 4, iv, 0); > +} > + > +static void run_lavu_aes256cbc(uint8_t *output, const uint8_t *input, > unsigned size) > +{ > + static struct AVAES *aes; > + static uint8_t *iv; > + if ((!aes && !(aes = av_aes_alloc())) || (!iv && !(iv = av_malloc(16)))) > + fatal_error("out of memory"); > + memcpy(iv, hardcoded_iv, 16); > + av_aes_init(aes, hardcoded_key, 256, 0); > + av_aes_crypt(aes, output, input, size >> 4, iv, 0); > +} > + > static void run_lavu_blowfish(uint8_t *output, > const uint8_t *input, unsigned size) > { > @@ -258,6 +292,42 @@ static void run_crypto_aes256(uint8_t *output, const > uint8_t *input, unsigned si > AES_encrypt(input + i, output + i, &aes); > } > > +static void run_crypto_aes128cbc(uint8_t *output, const uint8_t *input, > unsigned size) > +{ > + AES_KEY aes; > + static uint8_t *iv; > + if ((!iv && !(iv = av_malloc(16)))) > + fatal_error("out of memory"); > + memcpy(iv, hardcoded_iv, 16); > + > + AES_set_encrypt_key(hardcoded_key, 128, &aes); > + AES_cbc_encrypt(input, output, size, &aes, iv, 1); > +} > + > +static void run_crypto_aes192cbc(uint8_t *output, const uint8_t *input, > unsigned size) > +{ > + AES_KEY aes; > + static uint8_t *iv; > + if ((!iv && !(iv = av_malloc(16)))) > + fatal_error("out of memory"); > + memcpy(iv, hardcoded_iv, 16); > + > + AES_set_encrypt_key(hardcoded_key, 192, &aes); > + AES_cbc_encrypt(input, output, size, &aes, iv, 1); > +} > + > +static void run_crypto_aes256cbc(uint8_t *output, const uint8_t *input, > unsigned size) > +{ > + AES_KEY aes; > + static uint8_t *iv; > + if ((!iv && !(iv = av_malloc(16)))) > + fatal_error("out of memory"); > + memcpy(iv, hardcoded_iv, 16); > + > + AES_set_encrypt_key(hardcoded_key, 256, &aes); > + AES_cbc_encrypt(input, output, size, &aes, iv, 1); > +} > + > static void run_crypto_blowfish(uint8_t *output, > const uint8_t *input, unsigned size) > { > @@ -355,6 +425,39 @@ static void run_gcrypt_aes256(uint8_t *output, const > uint8_t *input, unsigned si > gcry_cipher_encrypt(aes, output, size, input, size); > } > > +static void run_gcrypt_aes128cbc(uint8_t *output, > + const uint8_t *input, unsigned size) > +{ > + static gcry_cipher_hd_t aes; > + if (!aes) > + gcry_cipher_open(&aes, GCRY_CIPHER_AES128, GCRY_CIPHER_MODE_CBC, 0); > + gcry_cipher_setkey(aes, hardcoded_key, 16); > + gcry_cipher_setiv(aes, hardcoded_iv, 16); > + gcry_cipher_encrypt(aes, output, size, input, size); > +} > + > +static void run_gcrypt_aes192cbc(uint8_t *output, > + const uint8_t *input, unsigned size) > +{ > + static gcry_cipher_hd_t aes; > + if (!aes) > + gcry_cipher_open(&aes, GCRY_CIPHER_AES192, GCRY_CIPHER_MODE_CBC, 0); > + gcry_cipher_setkey(aes, hardcoded_key, 24); > + gcry_cipher_setiv(aes, hardcoded_iv, 16); > + gcry_cipher_encrypt(aes, output, size, input, size); > +} > + > +static void run_gcrypt_aes256cbc(uint8_t *output, > + const uint8_t *input, unsigned size) > +{ > + static gcry_cipher_hd_t aes; > + if (!aes) > + gcry_cipher_open(&aes, GCRY_CIPHER_AES256, GCRY_CIPHER_MODE_CBC, 0); > + gcry_cipher_setkey(aes, hardcoded_key, 32); > + gcry_cipher_setiv(aes, hardcoded_iv, 16); > + gcry_cipher_encrypt(aes, output, size, input, size); > +} > + > static void run_gcrypt_blowfish(uint8_t *output, > const uint8_t *input, unsigned size) > { > @@ -459,6 +562,30 @@ static void run_tomcrypt_aes256(uint8_t *output, const > uint8_t *input, unsigned > aes_ecb_encrypt(input + i, output + i, &aes); > } > > +static void run_tomcrypt_aes128cbc(uint8_t *output, const uint8_t *input, > unsigned size) > +{ > + symmetric_CBC aes; > + > + cbc_start(find_cipher("aes"), hardcoded_iv, hardcoded_key, 16, 0, &aes); > + cbc_encrypt(input, output, size, &aes); > +} > + > +static void run_tomcrypt_aes192cbc(uint8_t *output, const uint8_t *input, > unsigned size) > +{ > + symmetric_CBC aes; > + > + cbc_start(find_cipher("aes"), hardcoded_iv, hardcoded_key, 24, 0, &aes); > + cbc_encrypt(input, output, size, &aes); > +} > + > +static void run_tomcrypt_aes256cbc(uint8_t *output, const uint8_t *input, > unsigned size) > +{ > + symmetric_CBC aes; > + > + cbc_start(find_cipher("aes"), hardcoded_iv, hardcoded_key, 32, 0, &aes); > + cbc_encrypt(input, output, size, &aes); > +} > + > static void run_tomcrypt_blowfish(uint8_t *output, > const uint8_t *input, unsigned size) > { > @@ -600,9 +727,12 @@ struct hash_impl implementations[] = { > IMPL(lavu, "RIPEMD-128", ripemd128, > "9ab8bfba2ddccc5d99c9d4cdfb844a5f") > IMPL(tomcrypt, "RIPEMD-128", ripemd128, > "9ab8bfba2ddccc5d99c9d4cdfb844a5f") > IMPL_ALL("RIPEMD-160", ripemd160, > "62a5321e4fc8784903bb43ab7752c75f8b25af00") > - IMPL_ALL("AES-128", aes128, "crc:ff6bc888") > - IMPL_ALL("AES-192", aes192, "crc:1022815b") > - IMPL_ALL("AES-256", aes256, "crc:792e4e8a") > + IMPL_ALL("AES-128-ECB",aes128, "crc:ff6bc888") > + IMPL_ALL("AES-192-ECB",aes192, "crc:1022815b") > + IMPL_ALL("AES-256-ECB",aes256, "crc:792e4e8a") > + IMPL_ALL("AES-128-CBC",aes128cbc, "crc:0efebabe") > + IMPL_ALL("AES-192-CBC",aes192cbc, "crc:ee2e34e8") > + IMPL_ALL("AES-256-CBC",aes256cbc, "crc:0c9b875c") > IMPL_ALL("CAMELLIA", camellia, "crc:7abb59a7") > IMPL_ALL("CAST-128", cast128, "crc:456aa584") > IMPL_ALL("BLOWFISH", blowfish, "crc:33e8aa74")
> @@ -622,6 +752,8 @@ int main(int argc, char **argv) > unsigned i, impl, size; > int opt; > > + register_cipher(&aes_desc); make alltools -j12 CC tools/crypto_bench.o tools/crypto_bench.c: In function ‘main’: tools/crypto_bench.c:790:5: error: implicit declaration of function ‘register_cipher’ [-Werror=implicit-function-declaration] tools/crypto_bench.c:790:22: error: ‘aes_desc’ undeclared (first use in this function) tools/crypto_bench.c:790:22: note: each undeclared identifier is reported only once for each function it appears in cc1: some warnings being treated as errors [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB It is dangerous to be right in matters on which the established authorities are wrong. -- Voltaire
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel