Lines Matching refs:req
59 static int ccm_init_mac(struct aead_request *req, u8 maciv[], u32 msglen)
61 struct crypto_aead *aead = crypto_aead_reqtfm(req);
63 u32 l = req->iv[0] + 1;
80 memcpy(maciv, req->iv, AES_BLOCK_SIZE - l);
90 if (req->assoclen)
93 memset(&req->iv[AES_BLOCK_SIZE - l], 0, l);
97 static void ccm_calculate_auth_mac(struct aead_request *req, u8 mac[])
99 struct crypto_aead *aead = crypto_aead_reqtfm(req);
103 u32 len = req->assoclen;
118 scatterwalk_start(&walk, req->src);
146 static int ccm_encrypt(struct aead_request *req)
148 struct crypto_aead *aead = crypto_aead_reqtfm(req);
153 u32 len = req->cryptlen;
156 err = ccm_init_mac(req, mac, len);
161 memcpy(buf, req->iv, AES_BLOCK_SIZE);
163 err = skcipher_walk_aead_encrypt(&walk, req, false);
167 if (req->assoclen)
168 ccm_calculate_auth_mac(req, mac);
193 scatterwalk_map_and_copy(mac, req->dst, req->assoclen + req->cryptlen,
199 static int ccm_decrypt(struct aead_request *req)
201 struct crypto_aead *aead = crypto_aead_reqtfm(req);
207 u32 len = req->cryptlen - authsize;
210 err = ccm_init_mac(req, mac, len);
215 memcpy(buf, req->iv, AES_BLOCK_SIZE);
217 err = skcipher_walk_aead_decrypt(&walk, req, false);
221 if (req->assoclen)
222 ccm_calculate_auth_mac(req, mac);
250 scatterwalk_map_and_copy(buf, req->src,
251 req->assoclen + req->cryptlen - authsize,