Lines Matching full:vec

1123 			     const struct hash_testvec *vec,  in build_hash_sglist()  argument
1131 kv.iov_base = (void *)vec->plaintext; in build_hash_sglist()
1132 kv.iov_len = vec->psize; in build_hash_sglist()
1133 iov_iter_kvec(&input, WRITE, &kv, 1, vec->psize); in build_hash_sglist()
1134 return build_test_sglist(tsgl, cfg->src_divs, alignmask, vec->psize, in build_hash_sglist()
1140 const struct hash_testvec *vec, in check_hash_result() argument
1145 if (memcmp(result, vec->digest, digestsize) != 0) { in check_hash_result()
1175 const struct hash_testvec *vec, in test_shash_vec_cfg() argument
1192 if (vec->ksize) { in test_shash_vec_cfg()
1193 err = do_setkey(crypto_shash_setkey, tfm, vec->key, vec->ksize, in test_shash_vec_cfg()
1196 if (err == vec->setkey_error) in test_shash_vec_cfg()
1199 driver, vec_name, vec->setkey_error, err, in test_shash_vec_cfg()
1203 if (vec->setkey_error) { in test_shash_vec_cfg()
1205 driver, vec_name, vec->setkey_error); in test_shash_vec_cfg()
1211 err = build_hash_sglist(tsgl, vec, cfg, alignmask, divs); in test_shash_vec_cfg()
1224 vec->digest_error) { in test_shash_vec_cfg()
1235 if (err == vec->digest_error) in test_shash_vec_cfg()
1238 driver, vec_name, vec->digest_error, err, in test_shash_vec_cfg()
1242 if (vec->digest_error) { in test_shash_vec_cfg()
1244 driver, vec_name, vec->digest_error, cfg->name); in test_shash_vec_cfg()
1318 return check_hash_result("shash", result, digestsize, vec, vec_name, in test_shash_vec_cfg()
1359 const struct hash_testvec *vec, in test_ahash_vec_cfg() argument
1380 if (vec->ksize) { in test_ahash_vec_cfg()
1381 err = do_setkey(crypto_ahash_setkey, tfm, vec->key, vec->ksize, in test_ahash_vec_cfg()
1384 if (err == vec->setkey_error) in test_ahash_vec_cfg()
1387 driver, vec_name, vec->setkey_error, err, in test_ahash_vec_cfg()
1391 if (vec->setkey_error) { in test_ahash_vec_cfg()
1393 driver, vec_name, vec->setkey_error); in test_ahash_vec_cfg()
1399 err = build_hash_sglist(tsgl, vec, cfg, alignmask, divs); in test_ahash_vec_cfg()
1412 vec->digest_error) { in test_ahash_vec_cfg()
1416 ahash_request_set_crypt(req, tsgl->sgl, result, vec->psize); in test_ahash_vec_cfg()
1419 if (err == vec->digest_error) in test_ahash_vec_cfg()
1422 driver, vec_name, vec->digest_error, err, in test_ahash_vec_cfg()
1426 if (vec->digest_error) { in test_ahash_vec_cfg()
1428 driver, vec_name, vec->digest_error, cfg->name); in test_ahash_vec_cfg()
1520 return check_hash_result("ahash", result, digestsize, vec, vec_name, in test_ahash_vec_cfg()
1525 const struct hash_testvec *vec, in test_hash_vec_cfg() argument
1542 err = test_shash_vec_cfg(driver, vec, vec_name, cfg, desc, tsgl, in test_hash_vec_cfg()
1548 return test_ahash_vec_cfg(driver, vec, vec_name, cfg, req, tsgl, in test_hash_vec_cfg()
1552 static int test_hash_vec(const char *driver, const struct hash_testvec *vec, in test_hash_vec() argument
1564 err = test_hash_vec_cfg(driver, vec, vec_name, in test_hash_vec()
1579 err = test_hash_vec_cfg(driver, vec, vec_name, &cfg, in test_hash_vec()
1593 * Assumes the buffers in 'vec' were already allocated.
1596 struct hash_testvec *vec, in generate_random_hash_testvec() argument
1602 vec->psize = generate_random_length(maxdatasize); in generate_random_hash_testvec()
1603 generate_random_bytes((u8 *)vec->plaintext, vec->psize); in generate_random_hash_testvec()
1609 vec->setkey_error = 0; in generate_random_hash_testvec()
1610 vec->ksize = 0; in generate_random_hash_testvec()
1612 vec->ksize = maxkeysize; in generate_random_hash_testvec()
1614 vec->ksize = 1 + (prandom_u32() % maxkeysize); in generate_random_hash_testvec()
1615 generate_random_bytes((u8 *)vec->key, vec->ksize); in generate_random_hash_testvec()
1617 vec->setkey_error = crypto_shash_setkey(desc->tfm, vec->key, in generate_random_hash_testvec()
1618 vec->ksize); in generate_random_hash_testvec()
1620 if (vec->setkey_error) in generate_random_hash_testvec()
1625 vec->digest_error = crypto_shash_digest(desc, vec->plaintext, in generate_random_hash_testvec()
1626 vec->psize, (u8 *)vec->digest); in generate_random_hash_testvec()
1629 vec->psize, vec->ksize); in generate_random_hash_testvec()
1653 struct hash_testvec vec = { 0 }; in test_hash_vs_generic_impl() local
1721 vec.key = kmalloc(maxkeysize, GFP_KERNEL); in test_hash_vs_generic_impl()
1722 vec.plaintext = kmalloc(maxdatasize, GFP_KERNEL); in test_hash_vs_generic_impl()
1723 vec.digest = kmalloc(digestsize, GFP_KERNEL); in test_hash_vs_generic_impl()
1724 if (!vec.key || !vec.plaintext || !vec.digest) { in test_hash_vs_generic_impl()
1730 generate_random_hash_testvec(generic_desc, &vec, in test_hash_vs_generic_impl()
1735 err = test_hash_vec_cfg(driver, &vec, vec_name, cfg, in test_hash_vs_generic_impl()
1744 kfree(vec.key); in test_hash_vs_generic_impl()
1745 kfree(vec.plaintext); in test_hash_vs_generic_impl()
1746 kfree(vec.digest); in test_hash_vs_generic_impl()
1927 const struct aead_testvec *vec, in test_aead_vec_cfg() argument
1936 const unsigned int authsize = vec->clen - vec->plen; in test_aead_vec_cfg()
1948 if (vec->wk) in test_aead_vec_cfg()
1953 err = do_setkey(crypto_aead_setkey, tfm, vec->key, vec->klen, in test_aead_vec_cfg()
1955 if (err && err != vec->setkey_error) { in test_aead_vec_cfg()
1957 driver, vec_name, vec->setkey_error, err, in test_aead_vec_cfg()
1961 if (!err && vec->setkey_error) { in test_aead_vec_cfg()
1963 driver, vec_name, vec->setkey_error); in test_aead_vec_cfg()
1969 if (err && err != vec->setauthsize_error) { in test_aead_vec_cfg()
1971 driver, vec_name, vec->setauthsize_error, err); in test_aead_vec_cfg()
1974 if (!err && vec->setauthsize_error) { in test_aead_vec_cfg()
1976 driver, vec_name, vec->setauthsize_error); in test_aead_vec_cfg()
1980 if (vec->setkey_error || vec->setauthsize_error) in test_aead_vec_cfg()
1986 if (vec->iv) in test_aead_vec_cfg()
1987 memcpy(iv, vec->iv, ivsize); in test_aead_vec_cfg()
1992 input[0].iov_base = (void *)vec->assoc; in test_aead_vec_cfg()
1993 input[0].iov_len = vec->alen; in test_aead_vec_cfg()
1994 input[1].iov_base = enc ? (void *)vec->ptext : (void *)vec->ctext; in test_aead_vec_cfg()
1995 input[1].iov_len = enc ? vec->plen : vec->clen; in test_aead_vec_cfg()
1997 vec->alen + (enc ? vec->plen : in test_aead_vec_cfg()
1998 vec->clen), in test_aead_vec_cfg()
1999 vec->alen + (enc ? vec->clen : in test_aead_vec_cfg()
2000 vec->plen), in test_aead_vec_cfg()
2012 enc ? vec->plen : vec->clen, iv); in test_aead_vec_cfg()
2013 aead_request_set_ad(req, vec->alen); in test_aead_vec_cfg()
2022 if (req->cryptlen != (enc ? vec->plen : vec->clen) || in test_aead_vec_cfg()
2023 req->assoclen != vec->alen || in test_aead_vec_cfg()
2033 if (req->cryptlen != (enc ? vec->plen : vec->clen)) in test_aead_vec_cfg()
2035 if (req->assoclen != vec->alen) in test_aead_vec_cfg()
2066 if ((err == 0 && vec->novrfy) || in test_aead_vec_cfg()
2067 (err != vec->crypt_error && !(err == -EBADMSG && vec->novrfy))) { in test_aead_vec_cfg()
2070 if (vec->novrfy && in test_aead_vec_cfg()
2071 vec->crypt_error != 0 && vec->crypt_error != -EBADMSG) in test_aead_vec_cfg()
2073 vec->crypt_error); in test_aead_vec_cfg()
2074 else if (vec->novrfy) in test_aead_vec_cfg()
2077 sprintf(expected_error, "%d", vec->crypt_error); in test_aead_vec_cfg()
2092 err = verify_correct_output(&tsgls->dst, enc ? vec->ctext : vec->ptext, in test_aead_vec_cfg()
2093 enc ? vec->clen : vec->plen, in test_aead_vec_cfg()
2094 vec->alen, enc || !cfg->inplace); in test_aead_vec_cfg()
2110 const struct aead_testvec *vec, unsigned int vec_num, in test_aead_vec() argument
2118 if (enc && vec->novrfy) in test_aead_vec()
2124 err = test_aead_vec_cfg(driver, enc, vec, vec_name, in test_aead_vec()
2139 err = test_aead_vec_cfg(driver, enc, vec, vec_name, in test_aead_vec()
2161 struct aead_testvec vec; member
2172 static void mutate_aead_message(struct aead_testvec *vec, bool aad_iv, in mutate_aead_message() argument
2176 const unsigned int authsize = vec->clen - vec->plen; in mutate_aead_message()
2178 if (prandom_u32() % 2 == 0 && vec->alen > aad_tail_size) { in mutate_aead_message()
2180 flip_random_bit((u8 *)vec->assoc, vec->alen - aad_tail_size); in mutate_aead_message()
2186 flip_random_bit((u8 *)vec->ctext + vec->plen, authsize); in mutate_aead_message()
2189 flip_random_bit((u8 *)vec->ctext, vec->clen); in mutate_aead_message()
2202 struct aead_testvec *vec, in generate_aead_message() argument
2207 const unsigned int authsize = vec->clen - vec->plen; in generate_aead_message()
2212 generate_random_bytes((u8 *)vec->assoc, vec->alen); in generate_aead_message()
2213 if (suite->aad_iv && vec->alen >= ivsize) in generate_aead_message()
2215 memcpy((u8 *)vec->assoc + vec->alen - ivsize, vec->iv, ivsize); in generate_aead_message()
2219 generate_random_bytes((u8 *)vec->ctext, vec->clen); in generate_aead_message()
2228 if (vec->alen) in generate_aead_message()
2229 sg_set_buf(&src[i++], vec->assoc, vec->alen); in generate_aead_message()
2230 if (vec->plen) { in generate_aead_message()
2231 generate_random_bytes((u8 *)vec->ptext, vec->plen); in generate_aead_message()
2232 sg_set_buf(&src[i++], vec->ptext, vec->plen); in generate_aead_message()
2234 sg_init_one(&dst, vec->ctext, vec->alen + vec->clen); in generate_aead_message()
2235 memcpy(iv, vec->iv, ivsize); in generate_aead_message()
2237 aead_request_set_crypt(req, src, &dst, vec->plen, iv); in generate_aead_message()
2238 aead_request_set_ad(req, vec->alen); in generate_aead_message()
2239 vec->crypt_error = crypto_wait_req(crypto_aead_encrypt(req), in generate_aead_message()
2242 if (vec->crypt_error != 0) in generate_aead_message()
2244 memmove((u8 *)vec->ctext, vec->ctext + vec->alen, vec->clen); in generate_aead_message()
2251 mutate_aead_message(vec, suite->aad_iv, ivsize); in generate_aead_message()
2253 vec->novrfy = 1; in generate_aead_message()
2255 vec->crypt_error = -EINVAL; in generate_aead_message()
2259 * Generate an AEAD test vector 'vec' using the implementation specified by
2260 * 'req'. The buffers in 'vec' must already be allocated.
2263 * test vectors (i.e. vectors with 'vec->novrfy=1') more often.
2266 struct aead_testvec *vec, in generate_random_aead_testvec() argument
2280 vec->klen = maxkeysize; in generate_random_aead_testvec()
2282 vec->klen = prandom_u32() % (maxkeysize + 1); in generate_random_aead_testvec()
2283 generate_random_bytes((u8 *)vec->key, vec->klen); in generate_random_aead_testvec()
2284 vec->setkey_error = crypto_aead_setkey(tfm, vec->key, vec->klen); in generate_random_aead_testvec()
2287 generate_random_bytes((u8 *)vec->iv, ivsize); in generate_random_aead_testvec()
2298 vec->setauthsize_error = crypto_aead_setauthsize(tfm, authsize); in generate_random_aead_testvec()
2303 vec->alen = 0; in generate_random_aead_testvec()
2305 vec->alen = generate_random_length(total_len); in generate_random_aead_testvec()
2306 vec->plen = total_len - vec->alen; in generate_random_aead_testvec()
2307 vec->clen = vec->plen + authsize; in generate_random_aead_testvec()
2313 vec->novrfy = 0; in generate_random_aead_testvec()
2314 vec->crypt_error = 0; in generate_random_aead_testvec()
2315 if (vec->setkey_error == 0 && vec->setauthsize_error == 0) in generate_random_aead_testvec()
2316 generate_aead_message(req, suite, vec, prefer_inauthentic); in generate_random_aead_testvec()
2319 vec->alen, vec->plen, authsize, vec->klen, vec->novrfy); in generate_random_aead_testvec()
2328 generate_random_aead_testvec(ctx->req, &ctx->vec, in try_to_generate_inauthentic_testvec()
2333 if (ctx->vec.novrfy) in try_to_generate_inauthentic_testvec()
2351 * test vectors other than inauthentic ones (vec.novrfy=1) here. in test_aead_inauthentic_inputs()
2358 if (ctx->vec.novrfy) { in test_aead_inauthentic_inputs()
2361 err = test_aead_vec_cfg(ctx->driver, DECRYPT, &ctx->vec, in test_aead_inauthentic_inputs()
2449 generate_random_aead_testvec(generic_req, &ctx->vec, in test_aead_vs_generic_impl()
2456 if (!ctx->vec.novrfy) { in test_aead_vs_generic_impl()
2457 err = test_aead_vec_cfg(driver, ENCRYPT, &ctx->vec, in test_aead_vs_generic_impl()
2463 if (ctx->vec.crypt_error == 0 || ctx->vec.novrfy) { in test_aead_vs_generic_impl()
2464 err = test_aead_vec_cfg(driver, DECRYPT, &ctx->vec, in test_aead_vs_generic_impl()
2505 ctx->vec.key = kmalloc(ctx->maxkeysize, GFP_KERNEL); in test_aead_extra()
2506 ctx->vec.iv = kmalloc(crypto_aead_ivsize(ctx->tfm), GFP_KERNEL); in test_aead_extra()
2507 ctx->vec.assoc = kmalloc(ctx->maxdatasize, GFP_KERNEL); in test_aead_extra()
2508 ctx->vec.ptext = kmalloc(ctx->maxdatasize, GFP_KERNEL); in test_aead_extra()
2509 ctx->vec.ctext = kmalloc(ctx->maxdatasize, GFP_KERNEL); in test_aead_extra()
2510 if (!ctx->vec.key || !ctx->vec.iv || !ctx->vec.assoc || in test_aead_extra()
2511 !ctx->vec.ptext || !ctx->vec.ctext) { in test_aead_extra()
2522 kfree(ctx->vec.key); in test_aead_extra()
2523 kfree(ctx->vec.iv); in test_aead_extra()
2524 kfree(ctx->vec.assoc); in test_aead_extra()
2525 kfree(ctx->vec.ptext); in test_aead_extra()
2526 kfree(ctx->vec.ctext); in test_aead_extra()
2699 const struct cipher_testvec *vec, in test_skcipher_vec_cfg() argument
2719 if (vec->wk) in test_skcipher_vec_cfg()
2724 err = do_setkey(crypto_skcipher_setkey, tfm, vec->key, vec->klen, in test_skcipher_vec_cfg()
2727 if (err == vec->setkey_error) in test_skcipher_vec_cfg()
2730 driver, vec_name, vec->setkey_error, err, in test_skcipher_vec_cfg()
2734 if (vec->setkey_error) { in test_skcipher_vec_cfg()
2736 driver, vec_name, vec->setkey_error); in test_skcipher_vec_cfg()
2744 if (vec->generates_iv && !enc) in test_skcipher_vec_cfg()
2745 memcpy(iv, vec->iv_out, ivsize); in test_skcipher_vec_cfg()
2746 else if (vec->iv) in test_skcipher_vec_cfg()
2747 memcpy(iv, vec->iv, ivsize); in test_skcipher_vec_cfg()
2751 if (vec->generates_iv) { in test_skcipher_vec_cfg()
2760 input.iov_base = enc ? (void *)vec->ptext : (void *)vec->ctext; in test_skcipher_vec_cfg()
2761 input.iov_len = vec->len; in test_skcipher_vec_cfg()
2763 vec->len, vec->len, &input, 1); in test_skcipher_vec_cfg()
2774 vec->len, iv); in test_skcipher_vec_cfg()
2783 if (req->cryptlen != vec->len || in test_skcipher_vec_cfg()
2793 if (req->cryptlen != vec->len) in test_skcipher_vec_cfg()
2825 if (err == vec->crypt_error) in test_skcipher_vec_cfg()
2828 driver, op, vec_name, vec->crypt_error, err, cfg->name); in test_skcipher_vec_cfg()
2831 if (vec->crypt_error) { in test_skcipher_vec_cfg()
2833 driver, op, vec_name, vec->crypt_error, cfg->name); in test_skcipher_vec_cfg()
2838 err = verify_correct_output(&tsgls->dst, enc ? vec->ctext : vec->ptext, in test_skcipher_vec_cfg()
2839 vec->len, 0, true); in test_skcipher_vec_cfg()
2852 if (vec->iv_out && memcmp(iv, vec->iv_out, ivsize) != 0) { in test_skcipher_vec_cfg()
2863 const struct cipher_testvec *vec, in test_skcipher_vec() argument
2872 if (fips_enabled && vec->fips_skip) in test_skcipher_vec()
2878 err = test_skcipher_vec_cfg(driver, enc, vec, vec_name, in test_skcipher_vec()
2893 err = test_skcipher_vec_cfg(driver, enc, vec, vec_name, in test_skcipher_vec()
2907 * Assumes the buffers in 'vec' were already allocated.
2910 struct cipher_testvec *vec, in generate_random_cipher_testvec() argument
2922 vec->klen = maxkeysize; in generate_random_cipher_testvec()
2924 vec->klen = prandom_u32() % (maxkeysize + 1); in generate_random_cipher_testvec()
2925 generate_random_bytes((u8 *)vec->key, vec->klen); in generate_random_cipher_testvec()
2926 vec->setkey_error = crypto_skcipher_setkey(tfm, vec->key, vec->klen); in generate_random_cipher_testvec()
2929 generate_random_bytes((u8 *)vec->iv, ivsize); in generate_random_cipher_testvec()
2932 vec->len = generate_random_length(maxdatasize); in generate_random_cipher_testvec()
2933 generate_random_bytes((u8 *)vec->ptext, vec->len); in generate_random_cipher_testvec()
2936 if (vec->setkey_error) in generate_random_cipher_testvec()
2940 sg_init_one(&src, vec->ptext, vec->len); in generate_random_cipher_testvec()
2941 sg_init_one(&dst, vec->ctext, vec->len); in generate_random_cipher_testvec()
2942 memcpy(iv, vec->iv, ivsize); in generate_random_cipher_testvec()
2944 skcipher_request_set_crypt(req, &src, &dst, vec->len, iv); in generate_random_cipher_testvec()
2945 vec->crypt_error = crypto_wait_req(crypto_skcipher_encrypt(req), &wait); in generate_random_cipher_testvec()
2946 if (vec->crypt_error != 0) { in generate_random_cipher_testvec()
2953 memset((u8 *)vec->ctext, 0, vec->len); in generate_random_cipher_testvec()
2957 vec->len, vec->klen); in generate_random_cipher_testvec()
2979 struct cipher_testvec vec = { 0 }; in test_skcipher_vs_generic_impl() local
3066 vec.key = kmalloc(maxkeysize, GFP_KERNEL); in test_skcipher_vs_generic_impl()
3067 vec.iv = kmalloc(ivsize, GFP_KERNEL); in test_skcipher_vs_generic_impl()
3068 vec.ptext = kmalloc(maxdatasize, GFP_KERNEL); in test_skcipher_vs_generic_impl()
3069 vec.ctext = kmalloc(maxdatasize, GFP_KERNEL); in test_skcipher_vs_generic_impl()
3070 if (!vec.key || !vec.iv || !vec.ptext || !vec.ctext) { in test_skcipher_vs_generic_impl()
3076 generate_random_cipher_testvec(generic_req, &vec, maxdatasize, in test_skcipher_vs_generic_impl()
3080 err = test_skcipher_vec_cfg(driver, ENCRYPT, &vec, vec_name, in test_skcipher_vs_generic_impl()
3084 err = test_skcipher_vec_cfg(driver, DECRYPT, &vec, vec_name, in test_skcipher_vs_generic_impl()
3093 kfree(vec.key); in test_skcipher_vs_generic_impl()
3094 kfree(vec.iv); in test_skcipher_vs_generic_impl()
3095 kfree(vec.ptext); in test_skcipher_vs_generic_impl()
3096 kfree(vec.ctext); in test_skcipher_vs_generic_impl()
3746 static int do_test_kpp(struct crypto_kpp *tfm, const struct kpp_testvec *vec, in do_test_kpp() argument
3766 err = crypto_kpp_set_secret(tfm, vec->secret, vec->secret_size); in do_test_kpp()
3792 if (vec->genkey) { in do_test_kpp()
3801 if (memcmp(vec->expected_a_public, sg_virt(req->dst), in do_test_kpp()
3802 vec->expected_a_public_size)) { in do_test_kpp()
3811 input_buf = kmemdup(vec->b_public, vec->b_public_size, GFP_KERNEL); in do_test_kpp()
3817 sg_init_one(&src, input_buf, vec->b_public_size); in do_test_kpp()
3819 kpp_request_set_input(req, &src, vec->b_public_size); in do_test_kpp()
3830 if (vec->genkey) { in do_test_kpp()
3832 a_ss = kmemdup(sg_virt(req->dst), vec->expected_ss_size, GFP_KERNEL); in do_test_kpp()
3842 err = crypto_kpp_set_secret(tfm, vec->b_secret, in do_test_kpp()
3843 vec->b_secret_size); in do_test_kpp()
3847 sg_init_one(&src, a_public, vec->expected_a_public_size); in do_test_kpp()
3849 kpp_request_set_input(req, &src, vec->expected_a_public_size); in do_test_kpp()
3863 shared_secret = (void *)vec->expected_ss; in do_test_kpp()
3871 vec->expected_ss_size)) { in do_test_kpp()