crypto: testmgr - unify the AEAD encryption and decryption test vectors
Currently testmgr has separate encryption and decryption test vectors for AEADs. That's massively redundant, since usually the decryption tests are identical to the encryption tests, just with the input/result swapped. And for some algorithms it was forgotten to add decryption test vectors, so for them currently only encryption is being tested. Therefore, eliminate the redundancy by removing the AEAD decryption test vectors and updating testmgr to test both AEAD encryption and decryption using what used to be the encryption test vectors. Naming is adjusted accordingly: each aead_testvec now has a 'ptext' (plaintext), 'plen' (plaintext length), 'ctext' (ciphertext), and 'clen' (ciphertext length) instead of an 'input', 'ilen', 'result', and 'rlen'. "Ciphertext" here refers to the full ciphertext, including the authentication tag. For now the scatterlist divisions are just given for the plaintext length, not also the ciphertext length. For decryption, the last scatterlist element is just extended by the authentication tag length. In total, this removes over 5000 lines from testmgr.h, with no reduction in test coverage since prior patches already copied the few unique decryption test vectors into the encryption test vectors. The testmgr.h portion of this patch was automatically generated using the following awk script, except that I also manually updated the definition of 'struct aead_testvec' and fixed the location of the comment describing the AEGIS-128 test vectors. BEGIN { OTHER = 0; ENCVEC = 1; DECVEC = 2; DECVEC_TAIL = 3; mode = OTHER } /^static const struct aead_testvec.*_enc_/ { sub("_enc", ""); mode = ENCVEC } /^static const struct aead_testvec.*_dec_/ { mode = DECVEC } mode == ENCVEC { sub(/\.input[[:space:]]*=/, ".ptext\t=") sub(/\.result[[:space:]]*=/, ".ctext\t=") sub(/\.ilen[[:space:]]*=/, ".plen\t=") sub(/\.rlen[[:space:]]*=/, ".clen\t=") print } mode == DECVEC_TAIL && /[^[:space:]]/ { mode = OTHER } mode == OTHER { print } mode == ENCVEC && /^};/ { mode = OTHER } mode == DECVEC && /^};/ { mode = DECVEC_TAIL } Note that git's default diff algorithm gets confused by the testmgr.h portion of this patch, and reports too many lines added and removed. It's better viewed with 'git diff --minimal' (or 'git show --minimal'), which reports "2 files changed, 1235 insertions(+), 6491 deletions(-)". Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Родитель
d7250b4153
Коммит
a0d608ee5e
252
crypto/testmgr.c
252
crypto/testmgr.c
|
@ -77,10 +77,8 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask)
|
||||||
#define DECRYPT 0
|
#define DECRYPT 0
|
||||||
|
|
||||||
struct aead_test_suite {
|
struct aead_test_suite {
|
||||||
struct {
|
|
||||||
const struct aead_testvec *vecs;
|
const struct aead_testvec *vecs;
|
||||||
unsigned int count;
|
unsigned int count;
|
||||||
} enc, dec;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct cipher_test_suite {
|
struct cipher_test_suite {
|
||||||
|
@ -616,9 +614,6 @@ static int __test_aead(struct crypto_aead *tfm, int enc,
|
||||||
const char *e, *d;
|
const char *e, *d;
|
||||||
struct crypto_wait wait;
|
struct crypto_wait wait;
|
||||||
unsigned int authsize, iv_len;
|
unsigned int authsize, iv_len;
|
||||||
void *input;
|
|
||||||
void *output;
|
|
||||||
void *assoc;
|
|
||||||
char *iv;
|
char *iv;
|
||||||
char *xbuf[XBUFSIZE];
|
char *xbuf[XBUFSIZE];
|
||||||
char *xoutbuf[XBUFSIZE];
|
char *xoutbuf[XBUFSIZE];
|
||||||
|
@ -669,27 +664,41 @@ static int __test_aead(struct crypto_aead *tfm, int enc,
|
||||||
iv_len = crypto_aead_ivsize(tfm);
|
iv_len = crypto_aead_ivsize(tfm);
|
||||||
|
|
||||||
for (i = 0, j = 0; i < tcount; i++) {
|
for (i = 0, j = 0; i < tcount; i++) {
|
||||||
|
const char *input, *expected_output;
|
||||||
|
unsigned int inlen, outlen;
|
||||||
|
char *inbuf, *outbuf, *assocbuf;
|
||||||
|
|
||||||
if (template[i].np)
|
if (template[i].np)
|
||||||
continue;
|
continue;
|
||||||
if (enc && template[i].novrfy)
|
if (enc) {
|
||||||
|
if (template[i].novrfy)
|
||||||
continue;
|
continue;
|
||||||
|
input = template[i].ptext;
|
||||||
|
inlen = template[i].plen;
|
||||||
|
expected_output = template[i].ctext;
|
||||||
|
outlen = template[i].clen;
|
||||||
|
} else {
|
||||||
|
input = template[i].ctext;
|
||||||
|
inlen = template[i].clen;
|
||||||
|
expected_output = template[i].ptext;
|
||||||
|
outlen = template[i].plen;
|
||||||
|
}
|
||||||
|
|
||||||
j++;
|
j++;
|
||||||
|
|
||||||
/* some templates have no input data but they will
|
/* some templates have no input data but they will
|
||||||
* touch input
|
* touch input
|
||||||
*/
|
*/
|
||||||
input = xbuf[0];
|
inbuf = xbuf[0] + align_offset;
|
||||||
input += align_offset;
|
assocbuf = axbuf[0];
|
||||||
assoc = axbuf[0];
|
|
||||||
|
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
if (WARN_ON(align_offset + template[i].ilen >
|
if (WARN_ON(align_offset + template[i].clen > PAGE_SIZE ||
|
||||||
PAGE_SIZE || template[i].alen > PAGE_SIZE))
|
template[i].alen > PAGE_SIZE))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
memcpy(input, template[i].input, template[i].ilen);
|
memcpy(inbuf, input, inlen);
|
||||||
memcpy(assoc, template[i].assoc, template[i].alen);
|
memcpy(assocbuf, template[i].assoc, template[i].alen);
|
||||||
if (template[i].iv)
|
if (template[i].iv)
|
||||||
memcpy(iv, template[i].iv, iv_len);
|
memcpy(iv, template[i].iv, iv_len);
|
||||||
else
|
else
|
||||||
|
@ -716,7 +725,7 @@ static int __test_aead(struct crypto_aead *tfm, int enc,
|
||||||
} else if (ret)
|
} else if (ret)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
authsize = abs(template[i].rlen - template[i].ilen);
|
authsize = template[i].clen - template[i].plen;
|
||||||
ret = crypto_aead_setauthsize(tfm, authsize);
|
ret = crypto_aead_setauthsize(tfm, authsize);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
pr_err("alg: aead%s: Failed to set authsize to %u on test %d for %s\n",
|
pr_err("alg: aead%s: Failed to set authsize to %u on test %d for %s\n",
|
||||||
|
@ -726,23 +735,20 @@ static int __test_aead(struct crypto_aead *tfm, int enc,
|
||||||
|
|
||||||
k = !!template[i].alen;
|
k = !!template[i].alen;
|
||||||
sg_init_table(sg, k + 1);
|
sg_init_table(sg, k + 1);
|
||||||
sg_set_buf(&sg[0], assoc, template[i].alen);
|
sg_set_buf(&sg[0], assocbuf, template[i].alen);
|
||||||
sg_set_buf(&sg[k], input,
|
sg_set_buf(&sg[k], inbuf, template[i].clen);
|
||||||
template[i].ilen + (enc ? authsize : 0));
|
outbuf = inbuf;
|
||||||
output = input;
|
|
||||||
|
|
||||||
if (diff_dst) {
|
if (diff_dst) {
|
||||||
sg_init_table(sgout, k + 1);
|
sg_init_table(sgout, k + 1);
|
||||||
sg_set_buf(&sgout[0], assoc, template[i].alen);
|
sg_set_buf(&sgout[0], assocbuf, template[i].alen);
|
||||||
|
|
||||||
output = xoutbuf[0];
|
outbuf = xoutbuf[0] + align_offset;
|
||||||
output += align_offset;
|
sg_set_buf(&sgout[k], outbuf, template[i].clen);
|
||||||
sg_set_buf(&sgout[k], output,
|
|
||||||
template[i].rlen + (enc ? 0 : authsize));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
aead_request_set_crypt(req, sg, (diff_dst) ? sgout : sg,
|
aead_request_set_crypt(req, sg, (diff_dst) ? sgout : sg, inlen,
|
||||||
template[i].ilen, iv);
|
iv);
|
||||||
|
|
||||||
aead_request_set_ad(req, template[i].alen);
|
aead_request_set_ad(req, template[i].alen);
|
||||||
|
|
||||||
|
@ -771,17 +777,19 @@ static int __test_aead(struct crypto_aead *tfm, int enc,
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
q = output;
|
if (memcmp(outbuf, expected_output, outlen)) {
|
||||||
if (memcmp(q, template[i].result, template[i].rlen)) {
|
|
||||||
pr_err("alg: aead%s: Test %d failed on %s for %s\n",
|
pr_err("alg: aead%s: Test %d failed on %s for %s\n",
|
||||||
d, j, e, algo);
|
d, j, e, algo);
|
||||||
hexdump(q, template[i].rlen);
|
hexdump(outbuf, outlen);
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0, j = 0; i < tcount; i++) {
|
for (i = 0, j = 0; i < tcount; i++) {
|
||||||
|
const char *input, *expected_output;
|
||||||
|
unsigned int inlen, outlen;
|
||||||
|
|
||||||
/* alignment tests are only done with continuous buffers */
|
/* alignment tests are only done with continuous buffers */
|
||||||
if (align_offset != 0)
|
if (align_offset != 0)
|
||||||
break;
|
break;
|
||||||
|
@ -789,8 +797,19 @@ static int __test_aead(struct crypto_aead *tfm, int enc,
|
||||||
if (!template[i].np)
|
if (!template[i].np)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (enc && template[i].novrfy)
|
if (enc) {
|
||||||
|
if (template[i].novrfy)
|
||||||
continue;
|
continue;
|
||||||
|
input = template[i].ptext;
|
||||||
|
inlen = template[i].plen;
|
||||||
|
expected_output = template[i].ctext;
|
||||||
|
outlen = template[i].clen;
|
||||||
|
} else {
|
||||||
|
input = template[i].ctext;
|
||||||
|
inlen = template[i].clen;
|
||||||
|
expected_output = template[i].ptext;
|
||||||
|
outlen = template[i].plen;
|
||||||
|
}
|
||||||
|
|
||||||
j++;
|
j++;
|
||||||
|
|
||||||
|
@ -818,7 +837,7 @@ static int __test_aead(struct crypto_aead *tfm, int enc,
|
||||||
} else if (ret)
|
} else if (ret)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
authsize = abs(template[i].rlen - template[i].ilen);
|
authsize = template[i].clen - template[i].plen;
|
||||||
|
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
sg_init_table(sg, template[i].anp + template[i].np);
|
sg_init_table(sg, template[i].anp + template[i].np);
|
||||||
|
@ -845,32 +864,32 @@ static int __test_aead(struct crypto_aead *tfm, int enc,
|
||||||
}
|
}
|
||||||
|
|
||||||
for (k = 0, temp = 0; k < template[i].np; k++) {
|
for (k = 0, temp = 0; k < template[i].np; k++) {
|
||||||
if (WARN_ON(offset_in_page(IDX[k]) +
|
n = template[i].tap[k];
|
||||||
template[i].tap[k] > PAGE_SIZE))
|
if (k == template[i].np - 1 && !enc)
|
||||||
|
n += authsize;
|
||||||
|
|
||||||
|
if (WARN_ON(offset_in_page(IDX[k]) + n > PAGE_SIZE))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
q = xbuf[IDX[k] >> PAGE_SHIFT] + offset_in_page(IDX[k]);
|
q = xbuf[IDX[k] >> PAGE_SHIFT] + offset_in_page(IDX[k]);
|
||||||
memcpy(q, template[i].input + temp, template[i].tap[k]);
|
memcpy(q, input + temp, n);
|
||||||
sg_set_buf(&sg[template[i].anp + k],
|
sg_set_buf(&sg[template[i].anp + k], q, n);
|
||||||
q, template[i].tap[k]);
|
|
||||||
|
|
||||||
if (diff_dst) {
|
if (diff_dst) {
|
||||||
q = xoutbuf[IDX[k] >> PAGE_SHIFT] +
|
q = xoutbuf[IDX[k] >> PAGE_SHIFT] +
|
||||||
offset_in_page(IDX[k]);
|
offset_in_page(IDX[k]);
|
||||||
|
|
||||||
memset(q, 0, template[i].tap[k]);
|
memset(q, 0, n);
|
||||||
|
|
||||||
sg_set_buf(&sgout[template[i].anp + k],
|
sg_set_buf(&sgout[template[i].anp + k], q, n);
|
||||||
q, template[i].tap[k]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
n = template[i].tap[k];
|
|
||||||
if (k == template[i].np - 1 && enc)
|
if (k == template[i].np - 1 && enc)
|
||||||
n += authsize;
|
n += authsize;
|
||||||
if (offset_in_page(q) + n < PAGE_SIZE)
|
if (offset_in_page(q) + n < PAGE_SIZE)
|
||||||
q[n] = 0;
|
q[n] = 0;
|
||||||
|
|
||||||
temp += template[i].tap[k];
|
temp += n;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = crypto_aead_setauthsize(tfm, authsize);
|
ret = crypto_aead_setauthsize(tfm, authsize);
|
||||||
|
@ -895,8 +914,7 @@ static int __test_aead(struct crypto_aead *tfm, int enc,
|
||||||
}
|
}
|
||||||
|
|
||||||
aead_request_set_crypt(req, sg, (diff_dst) ? sgout : sg,
|
aead_request_set_crypt(req, sg, (diff_dst) ? sgout : sg,
|
||||||
template[i].ilen,
|
inlen, iv);
|
||||||
iv);
|
|
||||||
|
|
||||||
aead_request_set_ad(req, template[i].alen);
|
aead_request_set_ad(req, template[i].alen);
|
||||||
|
|
||||||
|
@ -935,10 +953,10 @@ static int __test_aead(struct crypto_aead *tfm, int enc,
|
||||||
offset_in_page(IDX[k]);
|
offset_in_page(IDX[k]);
|
||||||
|
|
||||||
n = template[i].tap[k];
|
n = template[i].tap[k];
|
||||||
if (k == template[i].np - 1)
|
if (k == template[i].np - 1 && enc)
|
||||||
n += enc ? authsize : -authsize;
|
n += authsize;
|
||||||
|
|
||||||
if (memcmp(q, template[i].result + temp, n)) {
|
if (memcmp(q, expected_output + temp, n)) {
|
||||||
pr_err("alg: aead%s: Chunk test %d failed on %s at page %u for %s\n",
|
pr_err("alg: aead%s: Chunk test %d failed on %s at page %u for %s\n",
|
||||||
d, j, e, k, algo);
|
d, j, e, k, algo);
|
||||||
hexdump(q, n);
|
hexdump(q, n);
|
||||||
|
@ -947,9 +965,8 @@ static int __test_aead(struct crypto_aead *tfm, int enc,
|
||||||
|
|
||||||
q += n;
|
q += n;
|
||||||
if (k == template[i].np - 1 && !enc) {
|
if (k == template[i].np - 1 && !enc) {
|
||||||
if (!diff_dst &&
|
if (!diff_dst && memcmp(q, input + temp + n,
|
||||||
memcmp(q, template[i].input +
|
authsize))
|
||||||
temp + n, authsize))
|
|
||||||
n = authsize;
|
n = authsize;
|
||||||
else
|
else
|
||||||
n = 0;
|
n = 0;
|
||||||
|
@ -1721,8 +1738,9 @@ out:
|
||||||
static int alg_test_aead(const struct alg_test_desc *desc, const char *driver,
|
static int alg_test_aead(const struct alg_test_desc *desc, const char *driver,
|
||||||
u32 type, u32 mask)
|
u32 type, u32 mask)
|
||||||
{
|
{
|
||||||
|
const struct aead_test_suite *suite = &desc->suite.aead;
|
||||||
struct crypto_aead *tfm;
|
struct crypto_aead *tfm;
|
||||||
int err = 0;
|
int err;
|
||||||
|
|
||||||
tfm = crypto_alloc_aead(driver, type, mask);
|
tfm = crypto_alloc_aead(driver, type, mask);
|
||||||
if (IS_ERR(tfm)) {
|
if (IS_ERR(tfm)) {
|
||||||
|
@ -1731,18 +1749,10 @@ static int alg_test_aead(const struct alg_test_desc *desc, const char *driver,
|
||||||
return PTR_ERR(tfm);
|
return PTR_ERR(tfm);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (desc->suite.aead.enc.vecs) {
|
err = test_aead(tfm, ENCRYPT, suite->vecs, suite->count);
|
||||||
err = test_aead(tfm, ENCRYPT, desc->suite.aead.enc.vecs,
|
if (!err)
|
||||||
desc->suite.aead.enc.count);
|
err = test_aead(tfm, DECRYPT, suite->vecs, suite->count);
|
||||||
if (err)
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!err && desc->suite.aead.dec.vecs)
|
|
||||||
err = test_aead(tfm, DECRYPT, desc->suite.aead.dec.vecs,
|
|
||||||
desc->suite.aead.dec.count);
|
|
||||||
|
|
||||||
out:
|
|
||||||
crypto_free_aead(tfm);
|
crypto_free_aead(tfm);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
@ -2452,28 +2462,19 @@ static const struct alg_test_desc alg_test_descs[] = {
|
||||||
.alg = "aegis128",
|
.alg = "aegis128",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(aegis128_tv_template)
|
||||||
.enc = __VECS(aegis128_enc_tv_template),
|
|
||||||
.dec = __VECS(aegis128_dec_tv_template),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "aegis128l",
|
.alg = "aegis128l",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(aegis128l_tv_template)
|
||||||
.enc = __VECS(aegis128l_enc_tv_template),
|
|
||||||
.dec = __VECS(aegis128l_dec_tv_template),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "aegis256",
|
.alg = "aegis256",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(aegis256_tv_template)
|
||||||
.enc = __VECS(aegis256_enc_tv_template),
|
|
||||||
.dec = __VECS(aegis256_dec_tv_template),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "ansi_cprng",
|
.alg = "ansi_cprng",
|
||||||
|
@ -2485,36 +2486,27 @@ static const struct alg_test_desc alg_test_descs[] = {
|
||||||
.alg = "authenc(hmac(md5),ecb(cipher_null))",
|
.alg = "authenc(hmac(md5),ecb(cipher_null))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_md5_ecb_cipher_null_tv_template)
|
||||||
.enc = __VECS(hmac_md5_ecb_cipher_null_enc_tv_template),
|
|
||||||
.dec = __VECS(hmac_md5_ecb_cipher_null_dec_tv_template)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha1),cbc(aes))",
|
.alg = "authenc(hmac(sha1),cbc(aes))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.fips_allowed = 1,
|
.fips_allowed = 1,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_sha1_aes_cbc_tv_temp)
|
||||||
.enc = __VECS(hmac_sha1_aes_cbc_enc_tv_temp)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha1),cbc(des))",
|
.alg = "authenc(hmac(sha1),cbc(des))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_sha1_des_cbc_tv_temp)
|
||||||
.enc = __VECS(hmac_sha1_des_cbc_enc_tv_temp)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha1),cbc(des3_ede))",
|
.alg = "authenc(hmac(sha1),cbc(des3_ede))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.fips_allowed = 1,
|
.fips_allowed = 1,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_sha1_des3_ede_cbc_tv_temp)
|
||||||
.enc = __VECS(hmac_sha1_des3_ede_cbc_enc_tv_temp)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha1),ctr(aes))",
|
.alg = "authenc(hmac(sha1),ctr(aes))",
|
||||||
|
@ -2524,10 +2516,7 @@ static const struct alg_test_desc alg_test_descs[] = {
|
||||||
.alg = "authenc(hmac(sha1),ecb(cipher_null))",
|
.alg = "authenc(hmac(sha1),ecb(cipher_null))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_sha1_ecb_cipher_null_tv_temp)
|
||||||
.enc = __VECS(hmac_sha1_ecb_cipher_null_enc_tv_temp),
|
|
||||||
.dec = __VECS(hmac_sha1_ecb_cipher_null_dec_tv_temp)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha1),rfc3686(ctr(aes)))",
|
.alg = "authenc(hmac(sha1),rfc3686(ctr(aes)))",
|
||||||
|
@ -2537,44 +2526,34 @@ static const struct alg_test_desc alg_test_descs[] = {
|
||||||
.alg = "authenc(hmac(sha224),cbc(des))",
|
.alg = "authenc(hmac(sha224),cbc(des))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_sha224_des_cbc_tv_temp)
|
||||||
.enc = __VECS(hmac_sha224_des_cbc_enc_tv_temp)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha224),cbc(des3_ede))",
|
.alg = "authenc(hmac(sha224),cbc(des3_ede))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.fips_allowed = 1,
|
.fips_allowed = 1,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_sha224_des3_ede_cbc_tv_temp)
|
||||||
.enc = __VECS(hmac_sha224_des3_ede_cbc_enc_tv_temp)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha256),cbc(aes))",
|
.alg = "authenc(hmac(sha256),cbc(aes))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.fips_allowed = 1,
|
.fips_allowed = 1,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_sha256_aes_cbc_tv_temp)
|
||||||
.enc = __VECS(hmac_sha256_aes_cbc_enc_tv_temp)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha256),cbc(des))",
|
.alg = "authenc(hmac(sha256),cbc(des))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_sha256_des_cbc_tv_temp)
|
||||||
.enc = __VECS(hmac_sha256_des_cbc_enc_tv_temp)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha256),cbc(des3_ede))",
|
.alg = "authenc(hmac(sha256),cbc(des3_ede))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.fips_allowed = 1,
|
.fips_allowed = 1,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_sha256_des3_ede_cbc_tv_temp)
|
||||||
.enc = __VECS(hmac_sha256_des3_ede_cbc_enc_tv_temp)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha256),ctr(aes))",
|
.alg = "authenc(hmac(sha256),ctr(aes))",
|
||||||
|
@ -2588,18 +2567,14 @@ static const struct alg_test_desc alg_test_descs[] = {
|
||||||
.alg = "authenc(hmac(sha384),cbc(des))",
|
.alg = "authenc(hmac(sha384),cbc(des))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_sha384_des_cbc_tv_temp)
|
||||||
.enc = __VECS(hmac_sha384_des_cbc_enc_tv_temp)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha384),cbc(des3_ede))",
|
.alg = "authenc(hmac(sha384),cbc(des3_ede))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.fips_allowed = 1,
|
.fips_allowed = 1,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_sha384_des3_ede_cbc_tv_temp)
|
||||||
.enc = __VECS(hmac_sha384_des3_ede_cbc_enc_tv_temp)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha384),ctr(aes))",
|
.alg = "authenc(hmac(sha384),ctr(aes))",
|
||||||
|
@ -2614,26 +2589,20 @@ static const struct alg_test_desc alg_test_descs[] = {
|
||||||
.fips_allowed = 1,
|
.fips_allowed = 1,
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_sha512_aes_cbc_tv_temp)
|
||||||
.enc = __VECS(hmac_sha512_aes_cbc_enc_tv_temp)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha512),cbc(des))",
|
.alg = "authenc(hmac(sha512),cbc(des))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_sha512_des_cbc_tv_temp)
|
||||||
.enc = __VECS(hmac_sha512_des_cbc_enc_tv_temp)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha512),cbc(des3_ede))",
|
.alg = "authenc(hmac(sha512),cbc(des3_ede))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.fips_allowed = 1,
|
.fips_allowed = 1,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(hmac_sha512_des3_ede_cbc_tv_temp)
|
||||||
.enc = __VECS(hmac_sha512_des3_ede_cbc_enc_tv_temp)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "authenc(hmac(sha512),ctr(aes))",
|
.alg = "authenc(hmac(sha512),ctr(aes))",
|
||||||
|
@ -2730,10 +2699,7 @@ static const struct alg_test_desc alg_test_descs[] = {
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.fips_allowed = 1,
|
.fips_allowed = 1,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(aes_ccm_tv_template)
|
||||||
.enc = __VECS(aes_ccm_enc_tv_template),
|
|
||||||
.dec = __VECS(aes_ccm_dec_tv_template)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "cfb(aes)",
|
.alg = "cfb(aes)",
|
||||||
|
@ -3144,10 +3110,7 @@ static const struct alg_test_desc alg_test_descs[] = {
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.fips_allowed = 1,
|
.fips_allowed = 1,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(aes_gcm_tv_template)
|
||||||
.enc = __VECS(aes_gcm_enc_tv_template),
|
|
||||||
.dec = __VECS(aes_gcm_dec_tv_template)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "ghash",
|
.alg = "ghash",
|
||||||
|
@ -3342,19 +3305,13 @@ static const struct alg_test_desc alg_test_descs[] = {
|
||||||
.alg = "morus1280",
|
.alg = "morus1280",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(morus1280_tv_template)
|
||||||
.enc = __VECS(morus1280_enc_tv_template),
|
|
||||||
.dec = __VECS(morus1280_dec_tv_template),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "morus640",
|
.alg = "morus640",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(morus640_tv_template)
|
||||||
.enc = __VECS(morus640_enc_tv_template),
|
|
||||||
.dec = __VECS(morus640_dec_tv_template),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "nhpoly1305",
|
.alg = "nhpoly1305",
|
||||||
|
@ -3419,47 +3376,32 @@ static const struct alg_test_desc alg_test_descs[] = {
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.fips_allowed = 1,
|
.fips_allowed = 1,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(aes_gcm_rfc4106_tv_template)
|
||||||
.enc = __VECS(aes_gcm_rfc4106_enc_tv_template),
|
|
||||||
.dec = __VECS(aes_gcm_rfc4106_dec_tv_template)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "rfc4309(ccm(aes))",
|
.alg = "rfc4309(ccm(aes))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.fips_allowed = 1,
|
.fips_allowed = 1,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(aes_ccm_rfc4309_tv_template)
|
||||||
.enc = __VECS(aes_ccm_rfc4309_enc_tv_template),
|
|
||||||
.dec = __VECS(aes_ccm_rfc4309_dec_tv_template)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "rfc4543(gcm(aes))",
|
.alg = "rfc4543(gcm(aes))",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(aes_gcm_rfc4543_tv_template)
|
||||||
.enc = __VECS(aes_gcm_rfc4543_enc_tv_template),
|
|
||||||
.dec = __VECS(aes_gcm_rfc4543_dec_tv_template),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "rfc7539(chacha20,poly1305)",
|
.alg = "rfc7539(chacha20,poly1305)",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(rfc7539_tv_template)
|
||||||
.enc = __VECS(rfc7539_enc_tv_template),
|
|
||||||
.dec = __VECS(rfc7539_dec_tv_template),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "rfc7539esp(chacha20,poly1305)",
|
.alg = "rfc7539esp(chacha20,poly1305)",
|
||||||
.test = alg_test_aead,
|
.test = alg_test_aead,
|
||||||
.suite = {
|
.suite = {
|
||||||
.aead = {
|
.aead = __VECS(rfc7539esp_tv_template)
|
||||||
.enc = __VECS(rfc7539esp_enc_tv_template),
|
|
||||||
.dec = __VECS(rfc7539esp_dec_tv_template),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
.alg = "rmd128",
|
.alg = "rmd128",
|
||||||
|
|
7522
crypto/testmgr.h
7522
crypto/testmgr.h
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Загрузка…
Ссылка в новой задаче