]>
Commit | Line | Data |
---|---|---|
ef780324 CL |
1 | #ifndef _CRYPTO_GCM_H |
2 | #define _CRYPTO_GCM_H | |
3 | ||
65526f63 IP |
4 | #include <linux/errno.h> |
5 | ||
ef780324 CL |
6 | #define GCM_AES_IV_SIZE 12 |
7 | #define GCM_RFC4106_IV_SIZE 8 | |
8 | #define GCM_RFC4543_IV_SIZE 8 | |
9 | ||
65526f63 IP |
10 | /* |
11 | * validate authentication tag for GCM | |
12 | */ | |
13 | static inline int crypto_gcm_check_authsize(unsigned int authsize) | |
14 | { | |
15 | switch (authsize) { | |
16 | case 4: | |
17 | case 8: | |
18 | case 12: | |
19 | case 13: | |
20 | case 14: | |
21 | case 15: | |
22 | case 16: | |
23 | break; | |
24 | default: | |
25 | return -EINVAL; | |
26 | } | |
27 | ||
28 | return 0; | |
29 | } | |
30 | ||
31 | /* | |
32 | * validate authentication tag for RFC4106 | |
33 | */ | |
34 | static inline int crypto_rfc4106_check_authsize(unsigned int authsize) | |
35 | { | |
36 | switch (authsize) { | |
37 | case 8: | |
38 | case 12: | |
39 | case 16: | |
40 | break; | |
41 | default: | |
42 | return -EINVAL; | |
43 | } | |
44 | ||
45 | return 0; | |
46 | } | |
47 | ||
48 | /* | |
49 | * validate assoclen for RFC4106/RFC4543 | |
50 | */ | |
51 | static inline int crypto_ipsec_check_assoclen(unsigned int assoclen) | |
52 | { | |
53 | switch (assoclen) { | |
54 | case 16: | |
55 | case 20: | |
56 | break; | |
57 | default: | |
58 | return -EINVAL; | |
59 | } | |
60 | ||
61 | return 0; | |
62 | } | |
ef780324 | 63 | #endif |