diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2015-05-27 04:03:44 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2015-05-27 23:23:19 -0400 |
commit | 165ecc6373c7bfcd63da6dc489980c892fac2db9 (patch) | |
tree | bdba73d286cbbe24ec9d2a395da12dc833459100 | |
parent | 8a525fcd46751f8538c240baa4d37d55896c5a29 (diff) |
xfrm: Add IV generator information to xfrm_algo_desc
This patch adds IV generator information for each AEAD and block
cipher to xfrm_algo_desc. This will be used to access the new
AEAD interface.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r-- | include/net/xfrm.h | 2 | ||||
-rw-r--r-- | net/xfrm/xfrm_algo.c | 16 |
2 files changed, 18 insertions, 0 deletions
diff --git a/include/net/xfrm.h b/include/net/xfrm.h index 36ac102c97c7..30bca865c9dc 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
@@ -1314,6 +1314,7 @@ static inline int xfrm_id_proto_match(u8 proto, u8 userproto) | |||
1314 | * xfrm algorithm information | 1314 | * xfrm algorithm information |
1315 | */ | 1315 | */ |
1316 | struct xfrm_algo_aead_info { | 1316 | struct xfrm_algo_aead_info { |
1317 | char *geniv; | ||
1317 | u16 icv_truncbits; | 1318 | u16 icv_truncbits; |
1318 | }; | 1319 | }; |
1319 | 1320 | ||
@@ -1323,6 +1324,7 @@ struct xfrm_algo_auth_info { | |||
1323 | }; | 1324 | }; |
1324 | 1325 | ||
1325 | struct xfrm_algo_encr_info { | 1326 | struct xfrm_algo_encr_info { |
1327 | char *geniv; | ||
1326 | u16 blockbits; | 1328 | u16 blockbits; |
1327 | u16 defkeybits; | 1329 | u16 defkeybits; |
1328 | }; | 1330 | }; |
diff --git a/net/xfrm/xfrm_algo.c b/net/xfrm/xfrm_algo.c index 12e82a5e4ad5..67266b7501f1 100644 --- a/net/xfrm/xfrm_algo.c +++ b/net/xfrm/xfrm_algo.c | |||
@@ -31,6 +31,7 @@ static struct xfrm_algo_desc aead_list[] = { | |||
31 | 31 | ||
32 | .uinfo = { | 32 | .uinfo = { |
33 | .aead = { | 33 | .aead = { |
34 | .geniv = "seqniv", | ||
34 | .icv_truncbits = 64, | 35 | .icv_truncbits = 64, |
35 | } | 36 | } |
36 | }, | 37 | }, |
@@ -49,6 +50,7 @@ static struct xfrm_algo_desc aead_list[] = { | |||
49 | 50 | ||
50 | .uinfo = { | 51 | .uinfo = { |
51 | .aead = { | 52 | .aead = { |
53 | .geniv = "seqniv", | ||
52 | .icv_truncbits = 96, | 54 | .icv_truncbits = 96, |
53 | } | 55 | } |
54 | }, | 56 | }, |
@@ -67,6 +69,7 @@ static struct xfrm_algo_desc aead_list[] = { | |||
67 | 69 | ||
68 | .uinfo = { | 70 | .uinfo = { |
69 | .aead = { | 71 | .aead = { |
72 | .geniv = "seqniv", | ||
70 | .icv_truncbits = 128, | 73 | .icv_truncbits = 128, |
71 | } | 74 | } |
72 | }, | 75 | }, |
@@ -85,6 +88,7 @@ static struct xfrm_algo_desc aead_list[] = { | |||
85 | 88 | ||
86 | .uinfo = { | 89 | .uinfo = { |
87 | .aead = { | 90 | .aead = { |
91 | .geniv = "seqniv", | ||
88 | .icv_truncbits = 64, | 92 | .icv_truncbits = 64, |
89 | } | 93 | } |
90 | }, | 94 | }, |
@@ -103,6 +107,7 @@ static struct xfrm_algo_desc aead_list[] = { | |||
103 | 107 | ||
104 | .uinfo = { | 108 | .uinfo = { |
105 | .aead = { | 109 | .aead = { |
110 | .geniv = "seqniv", | ||
106 | .icv_truncbits = 96, | 111 | .icv_truncbits = 96, |
107 | } | 112 | } |
108 | }, | 113 | }, |
@@ -121,6 +126,7 @@ static struct xfrm_algo_desc aead_list[] = { | |||
121 | 126 | ||
122 | .uinfo = { | 127 | .uinfo = { |
123 | .aead = { | 128 | .aead = { |
129 | .geniv = "seqniv", | ||
124 | .icv_truncbits = 128, | 130 | .icv_truncbits = 128, |
125 | } | 131 | } |
126 | }, | 132 | }, |
@@ -139,6 +145,7 @@ static struct xfrm_algo_desc aead_list[] = { | |||
139 | 145 | ||
140 | .uinfo = { | 146 | .uinfo = { |
141 | .aead = { | 147 | .aead = { |
148 | .geniv = "seqiv", | ||
142 | .icv_truncbits = 128, | 149 | .icv_truncbits = 128, |
143 | } | 150 | } |
144 | }, | 151 | }, |
@@ -353,6 +360,7 @@ static struct xfrm_algo_desc ealg_list[] = { | |||
353 | 360 | ||
354 | .uinfo = { | 361 | .uinfo = { |
355 | .encr = { | 362 | .encr = { |
363 | .geniv = "echainiv", | ||
356 | .blockbits = 64, | 364 | .blockbits = 64, |
357 | .defkeybits = 64, | 365 | .defkeybits = 64, |
358 | } | 366 | } |
@@ -373,6 +381,7 @@ static struct xfrm_algo_desc ealg_list[] = { | |||
373 | 381 | ||
374 | .uinfo = { | 382 | .uinfo = { |
375 | .encr = { | 383 | .encr = { |
384 | .geniv = "echainiv", | ||
376 | .blockbits = 64, | 385 | .blockbits = 64, |
377 | .defkeybits = 192, | 386 | .defkeybits = 192, |
378 | } | 387 | } |
@@ -393,6 +402,7 @@ static struct xfrm_algo_desc ealg_list[] = { | |||
393 | 402 | ||
394 | .uinfo = { | 403 | .uinfo = { |
395 | .encr = { | 404 | .encr = { |
405 | .geniv = "echainiv", | ||
396 | .blockbits = 64, | 406 | .blockbits = 64, |
397 | .defkeybits = 128, | 407 | .defkeybits = 128, |
398 | } | 408 | } |
@@ -413,6 +423,7 @@ static struct xfrm_algo_desc ealg_list[] = { | |||
413 | 423 | ||
414 | .uinfo = { | 424 | .uinfo = { |
415 | .encr = { | 425 | .encr = { |
426 | .geniv = "echainiv", | ||
416 | .blockbits = 64, | 427 | .blockbits = 64, |
417 | .defkeybits = 128, | 428 | .defkeybits = 128, |
418 | } | 429 | } |
@@ -433,6 +444,7 @@ static struct xfrm_algo_desc ealg_list[] = { | |||
433 | 444 | ||
434 | .uinfo = { | 445 | .uinfo = { |
435 | .encr = { | 446 | .encr = { |
447 | .geniv = "echainiv", | ||
436 | .blockbits = 128, | 448 | .blockbits = 128, |
437 | .defkeybits = 128, | 449 | .defkeybits = 128, |
438 | } | 450 | } |
@@ -453,6 +465,7 @@ static struct xfrm_algo_desc ealg_list[] = { | |||
453 | 465 | ||
454 | .uinfo = { | 466 | .uinfo = { |
455 | .encr = { | 467 | .encr = { |
468 | .geniv = "echainiv", | ||
456 | .blockbits = 128, | 469 | .blockbits = 128, |
457 | .defkeybits = 128, | 470 | .defkeybits = 128, |
458 | } | 471 | } |
@@ -473,6 +486,7 @@ static struct xfrm_algo_desc ealg_list[] = { | |||
473 | 486 | ||
474 | .uinfo = { | 487 | .uinfo = { |
475 | .encr = { | 488 | .encr = { |
489 | .geniv = "echainiv", | ||
476 | .blockbits = 128, | 490 | .blockbits = 128, |
477 | .defkeybits = 128, | 491 | .defkeybits = 128, |
478 | } | 492 | } |
@@ -493,6 +507,7 @@ static struct xfrm_algo_desc ealg_list[] = { | |||
493 | 507 | ||
494 | .uinfo = { | 508 | .uinfo = { |
495 | .encr = { | 509 | .encr = { |
510 | .geniv = "echainiv", | ||
496 | .blockbits = 128, | 511 | .blockbits = 128, |
497 | .defkeybits = 128, | 512 | .defkeybits = 128, |
498 | } | 513 | } |
@@ -512,6 +527,7 @@ static struct xfrm_algo_desc ealg_list[] = { | |||
512 | 527 | ||
513 | .uinfo = { | 528 | .uinfo = { |
514 | .encr = { | 529 | .encr = { |
530 | .geniv = "seqiv", | ||
515 | .blockbits = 128, | 531 | .blockbits = 128, |
516 | .defkeybits = 160, /* 128-bit key + 32-bit nonce */ | 532 | .defkeybits = 160, /* 128-bit key + 32-bit nonce */ |
517 | } | 533 | } |