From 1bd3a8fc6dd2a0549208df0e9329c6a3ec322c5b Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 29 Jan 2021 10:20:02 -0500 Subject: [PATCH] TT#14008 fix AEAD kernel API for < 4.2 Untested whether it actually works closes #1176 Change-Id: If6398632ac62525a673b844cfb4ce842a8aa0346 --- kernel-module/xt_RTPENGINE.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/kernel-module/xt_RTPENGINE.c b/kernel-module/xt_RTPENGINE.c index 75d26b46e..7e0621fa8 100644 --- a/kernel-module/xt_RTPENGINE.c +++ b/kernel-module/xt_RTPENGINE.c @@ -3950,8 +3950,13 @@ static int srtp_encrypt_aes_gcm(struct re_crypto_context *c, sg_set_buf(&sg[1], r->payload, r->payload_len + 16); // guaranteed to have space after skb_copy_expand aead_request_set_callback(req, 0, NULL, NULL); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0) aead_request_set_ad(req, r->header_len); aead_request_set_crypt(req, sg, sg, r->payload_len, iv); +#else + aead_request_set_assoc(req, &sg[0], r->header_len); + aead_request_set_crypt(req, &sg[1], &sg[1], r->payload_len, iv); +#endif ret = crypto_aead_encrypt(req); aead_request_free(req); @@ -3996,8 +4001,13 @@ static int srtp_decrypt_aes_gcm(struct re_crypto_context *c, sg_set_buf(&sg[1], r->payload, r->payload_len); aead_request_set_callback(req, 0, NULL, NULL); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0) aead_request_set_ad(req, r->header_len); aead_request_set_crypt(req, sg, sg, r->payload_len, iv); +#else + aead_request_set_assoc(req, &sg[0], r->header_len); + aead_request_set_crypt(req, &sg[1], &sg[1], r->payload_len, iv); +#endif ret = crypto_aead_decrypt(req); aead_request_free(req);