}
static void test_cipher_speed(char *algo, int mode, int enc, unsigned int sec,
- struct cipher_speed *speed)
+ struct cipher_testvec *template,
+ unsigned int tcount, struct cipher_speed *speed)
{
- unsigned int ret, i, iv_len;
+ unsigned int ret, i, j, iv_len;
unsigned char *key, *p, iv[128];
struct crypto_tfm *tfm;
struct scatterlist sg[8];
/* set key, plain text and IV */
key = (unsigned char *)tvmem;
+ for (j = 0; j < tcount; j++) {
+ if (template[j].klen == speed[i].klen) {
+ key = template[j].key;
+ break;
+ }
+ }
p = (unsigned char *)tvmem + speed[i].klen;
ret = crypto_cipher_setkey(tfm, key, speed[i].klen);
#endif
case 200:
- test_cipher_speed("aes", MODE_ECB, ENCRYPT, sec, aes_speed_template);
- test_cipher_speed("aes", MODE_ECB, DECRYPT, sec, aes_speed_template);
- test_cipher_speed("aes", MODE_CBC, ENCRYPT, sec, aes_speed_template);
- test_cipher_speed("aes", MODE_CBC, DECRYPT, sec, aes_speed_template);
+ test_cipher_speed("aes", MODE_ECB, ENCRYPT, sec, NULL, 0,
+ aes_speed_template);
+ test_cipher_speed("aes", MODE_ECB, DECRYPT, sec, NULL, 0,
+ aes_speed_template);
+ test_cipher_speed("aes", MODE_CBC, ENCRYPT, sec, NULL, 0,
+ aes_speed_template);
+ test_cipher_speed("aes", MODE_CBC, DECRYPT, sec, NULL, 0,
+ aes_speed_template);
break;
case 201:
- test_cipher_speed("des3_ede", MODE_ECB, ENCRYPT, sec, des3_ede_speed_template);
- test_cipher_speed("des3_ede", MODE_ECB, DECRYPT, sec, des3_ede_speed_template);
- test_cipher_speed("des3_ede", MODE_CBC, ENCRYPT, sec, des3_ede_speed_template);
- test_cipher_speed("des3_ede", MODE_CBC, DECRYPT, sec, des3_ede_speed_template);
+ test_cipher_speed("des3_ede", MODE_ECB, ENCRYPT, sec,
+ des3_ede_enc_tv_template,
+ DES3_EDE_ENC_TEST_VECTORS,
+ des3_ede_speed_template);
+ test_cipher_speed("des3_ede", MODE_ECB, DECRYPT, sec,
+ des3_ede_dec_tv_template,
+ DES3_EDE_DEC_TEST_VECTORS,
+ des3_ede_speed_template);
+ test_cipher_speed("des3_ede", MODE_CBC, ENCRYPT, sec,
+ des3_ede_enc_tv_template,
+ DES3_EDE_ENC_TEST_VECTORS,
+ des3_ede_speed_template);
+ test_cipher_speed("des3_ede", MODE_CBC, DECRYPT, sec,
+ des3_ede_dec_tv_template,
+ DES3_EDE_DEC_TEST_VECTORS,
+ des3_ede_speed_template);
break;
case 202:
- test_cipher_speed("twofish", MODE_ECB, ENCRYPT, sec, twofish_speed_template);
- test_cipher_speed("twofish", MODE_ECB, DECRYPT, sec, twofish_speed_template);
- test_cipher_speed("twofish", MODE_CBC, ENCRYPT, sec, twofish_speed_template);
- test_cipher_speed("twofish", MODE_CBC, DECRYPT, sec, twofish_speed_template);
+ test_cipher_speed("twofish", MODE_ECB, ENCRYPT, sec, NULL, 0,
+ twofish_speed_template);
+ test_cipher_speed("twofish", MODE_ECB, DECRYPT, sec, NULL, 0,
+ twofish_speed_template);
+ test_cipher_speed("twofish", MODE_CBC, ENCRYPT, sec, NULL, 0,
+ twofish_speed_template);
+ test_cipher_speed("twofish", MODE_CBC, DECRYPT, sec, NULL, 0,
+ twofish_speed_template);
break;
case 203:
- test_cipher_speed("blowfish", MODE_ECB, ENCRYPT, sec, blowfish_speed_template);
- test_cipher_speed("blowfish", MODE_ECB, DECRYPT, sec, blowfish_speed_template);
- test_cipher_speed("blowfish", MODE_CBC, ENCRYPT, sec, blowfish_speed_template);
- test_cipher_speed("blowfish", MODE_CBC, DECRYPT, sec, blowfish_speed_template);
+ test_cipher_speed("blowfish", MODE_ECB, ENCRYPT, sec, NULL, 0,
+ blowfish_speed_template);
+ test_cipher_speed("blowfish", MODE_ECB, DECRYPT, sec, NULL, 0,
+ blowfish_speed_template);
+ test_cipher_speed("blowfish", MODE_CBC, ENCRYPT, sec, NULL, 0,
+ blowfish_speed_template);
+ test_cipher_speed("blowfish", MODE_CBC, DECRYPT, sec, NULL, 0,
+ blowfish_speed_template);
break;
case 204:
- test_cipher_speed("des", MODE_ECB, ENCRYPT, sec, des_speed_template);
- test_cipher_speed("des", MODE_ECB, DECRYPT, sec, des_speed_template);
- test_cipher_speed("des", MODE_CBC, ENCRYPT, sec, des_speed_template);
- test_cipher_speed("des", MODE_CBC, DECRYPT, sec, des_speed_template);
+ test_cipher_speed("des", MODE_ECB, ENCRYPT, sec, NULL, 0,
+ des_speed_template);
+ test_cipher_speed("des", MODE_ECB, DECRYPT, sec, NULL, 0,
+ des_speed_template);
+ test_cipher_speed("des", MODE_CBC, ENCRYPT, sec, NULL, 0,
+ des_speed_template);
+ test_cipher_speed("des", MODE_CBC, DECRYPT, sec, NULL, 0,
+ des_speed_template);
break;
case 1000: