Lines Matching refs:aead
44 static void *esp_alloc_tmp(struct crypto_aead *aead, int nfrags, int extralen) in esp_alloc_tmp() argument
50 len += crypto_aead_ivsize(aead); in esp_alloc_tmp()
53 len += crypto_aead_alignmask(aead) & in esp_alloc_tmp()
58 len += sizeof(struct aead_request) + crypto_aead_reqsize(aead); in esp_alloc_tmp()
71 static inline u8 *esp_tmp_iv(struct crypto_aead *aead, void *tmp, int extralen) in esp_tmp_iv() argument
73 return crypto_aead_ivsize(aead) ? in esp_tmp_iv()
75 crypto_aead_alignmask(aead) + 1) : tmp + extralen; in esp_tmp_iv()
78 static inline struct aead_request *esp_tmp_req(struct crypto_aead *aead, u8 *iv) in esp_tmp_req() argument
82 req = (void *)PTR_ALIGN(iv + crypto_aead_ivsize(aead), in esp_tmp_req()
84 aead_request_set_tfm(req, aead); in esp_tmp_req()
88 static inline struct scatterlist *esp_req_sg(struct crypto_aead *aead, in esp_req_sg() argument
92 crypto_aead_reqsize(aead), in esp_req_sg()
99 struct crypto_aead *aead = x->data; in esp_ssg_unref() local
109 iv = esp_tmp_iv(aead, tmp, extralen); in esp_ssg_unref()
110 req = esp_tmp_req(aead, iv); in esp_ssg_unref()
375 struct crypto_aead *aead; in esp_output_tail() local
389 aead = x->data; in esp_output_tail()
390 alen = crypto_aead_authsize(aead); in esp_output_tail()
391 ivlen = crypto_aead_ivsize(aead); in esp_output_tail()
393 tmp = esp_alloc_tmp(aead, esp->nfrags + 2, extralen); in esp_output_tail()
398 iv = esp_tmp_iv(aead, tmp, extralen); in esp_output_tail()
399 req = esp_tmp_req(aead, iv); in esp_output_tail()
400 sg = esp_req_sg(aead, req); in esp_output_tail()
489 struct crypto_aead *aead; in esp_output() local
499 aead = x->data; in esp_output()
500 alen = crypto_aead_authsize(aead); in esp_output()
511 blksize = ALIGN(crypto_aead_blocksize(aead), 4); in esp_output()
538 struct crypto_aead *aead = x->data; in esp_remove_trailer() local
545 alen = crypto_aead_authsize(aead); in esp_remove_trailer()
546 hlen = sizeof(struct ip_esp_hdr) + crypto_aead_ivsize(aead); in esp_remove_trailer()
584 struct crypto_aead *aead = x->data; in esp_input_done2() local
585 int hlen = sizeof(struct ip_esp_hdr) + crypto_aead_ivsize(aead); in esp_input_done2()
698 struct crypto_aead *aead = x->data; in esp_input() local
701 int ivlen = crypto_aead_ivsize(aead); in esp_input()
747 tmp = esp_alloc_tmp(aead, nfrags, seqhilen); in esp_input()
753 iv = esp_tmp_iv(aead, tmp, seqhilen); in esp_input()
754 req = esp_tmp_req(aead, iv); in esp_input()
755 sg = esp_req_sg(aead, req); in esp_input()
822 struct crypto_aead *aead = x->data; in esp_destroy() local
824 if (!aead) in esp_destroy()
827 crypto_free_aead(aead); in esp_destroy()
833 struct crypto_aead *aead; in esp_init_aead() local
838 x->geniv, x->aead->alg_name) >= CRYPTO_MAX_ALG_NAME) in esp_init_aead()
841 aead = crypto_alloc_aead(aead_name, 0, 0); in esp_init_aead()
842 err = PTR_ERR(aead); in esp_init_aead()
843 if (IS_ERR(aead)) in esp_init_aead()
846 x->data = aead; in esp_init_aead()
848 err = crypto_aead_setkey(aead, x->aead->alg_key, in esp_init_aead()
849 (x->aead->alg_key_len + 7) / 8); in esp_init_aead()
853 err = crypto_aead_setauthsize(aead, x->aead->alg_icv_len / 8); in esp_init_aead()
863 struct crypto_aead *aead; in esp_init_authenc() local
896 aead = crypto_alloc_aead(authenc_name, 0, 0); in esp_init_authenc()
897 err = PTR_ERR(aead); in esp_init_authenc()
898 if (IS_ERR(aead)) in esp_init_authenc()
901 x->data = aead; in esp_init_authenc()
928 crypto_aead_authsize(aead)) { in esp_init_authenc()
931 crypto_aead_authsize(aead), in esp_init_authenc()
937 aead, x->aalg->alg_trunc_len / 8); in esp_init_authenc()
945 err = crypto_aead_setkey(aead, key, keylen); in esp_init_authenc()
956 struct crypto_aead *aead; in esp_init_state() local
962 if (x->aead) in esp_init_state()
970 aead = x->data; in esp_init_state()
973 crypto_aead_ivsize(aead); in esp_init_state()
994 align = ALIGN(crypto_aead_blocksize(aead), 4); in esp_init_state()
995 x->props.trailer_len = align + 1 + crypto_aead_authsize(aead); in esp_init_state()