hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/include/crypto/gcm.h
....@@ -1,8 +1,63 @@
11 #ifndef _CRYPTO_GCM_H
22 #define _CRYPTO_GCM_H
33
4
+#include <linux/errno.h>
5
+
46 #define GCM_AES_IV_SIZE 12
57 #define GCM_RFC4106_IV_SIZE 8
68 #define GCM_RFC4543_IV_SIZE 8
79
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
+}
863 #endif