gcm.h (867B)
1#ifndef _CRYPTO_GCM_H 2#define _CRYPTO_GCM_H 3 4#include <linux/errno.h> 5 6#define GCM_AES_IV_SIZE 12 7#define GCM_RFC4106_IV_SIZE 8 8#define GCM_RFC4543_IV_SIZE 8 9 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} 63#endif