Invoke the crypto_aead_copy_ad function during the encryption code path to copy the AAD from the source to the destination buffer. Signed-off-by: Stephan Mueller <smueller@xxxxxxxxxx> --- crypto/ccm.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/crypto/ccm.c b/crypto/ccm.c index 26b924d..e2b6d3d 100644 --- a/crypto/ccm.c +++ b/crypto/ccm.c @@ -358,6 +358,10 @@ static int crypto_ccm_encrypt(struct aead_request *req) if (err) return err; + err = crypto_aead_copy_ad(req); + if (err) + return err; + err = crypto_ccm_auth(req, sg_next(pctx->src), cryptlen); if (err) return err; @@ -749,9 +753,15 @@ static struct aead_request *crypto_rfc4309_crypt(struct aead_request *req) static int crypto_rfc4309_encrypt(struct aead_request *req) { + int err; + if (req->assoclen != 16 && req->assoclen != 20) return -EINVAL; + err = crypto_aead_copy_ad(req); + if (err) + return err; + req = crypto_rfc4309_crypt(req); return crypto_aead_encrypt(req); -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html