Browse Source

TT#14008 fix AEAD kernel API for < 4.2

Untested whether it actually works

closes #1176

Change-Id: If6398632ac62525a673b844cfb4ce842a8aa0346
pull/1180/head
Richard Fuchs 5 years ago
committed by Damir Nedžibović
parent
commit
1bd3a8fc6d
1 changed files with 10 additions and 0 deletions
  1. +10
    -0
      kernel-module/xt_RTPENGINE.c

+ 10
- 0
kernel-module/xt_RTPENGINE.c View File

@ -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);


Loading…
Cancel
Save