[xfrm] xfrm: Added the auth and enc update support in "state update"

From: trajaraman
Date: Fri Mar 03 2017 - 05:25:20 EST


From: Thiruvadi rajaraman <trajaraman@xxxxxxxxxx>

Updated the xfrm state update process to update the
Authendication and Encryption keys.

Signed-off-by: Thiruvadi rajaraman <trajaraman@xxxxxxxxxx>
---
net/xfrm/xfrm_state.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 419bf5d..6b15447 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -1388,6 +1388,12 @@ int xfrm_state_update(struct xfrm_state *x)
memcpy(&x1->lft, &x->lft, sizeof(x1->lft));
x1->km.dying = 0;

+ /* To update Authendication and Encryption keys */
+ x1->aalg = kmemdup(x->aalg, xfrm_alg_auth_len(x->aalg),
+ GFP_KERNEL);
+ x1->ealg = kmemdup(x->ealg, xfrm_alg_len(x->ealg),
+ GFP_KERNEL);
+
tasklet_hrtimer_start(&x1->mtimer, ktime_set(1, 0), HRTIMER_MODE_REL);
if (x1->curlft.use_time)
xfrm_state_check_expire(x1);
--
1.9.1