]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blame - include/crypto/gcm.h
Merge tag 'compiler-attributes-for-linus-v5.4' of git://github.com/ojeda/linux
[mirror_ubuntu-focal-kernel.git] / include / crypto / gcm.h
CommitLineData
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 */
13static 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 */
34static 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 */
51static 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