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 <smuel...@chronox.de>
---
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to