• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This header was generated from the Linux kernel headers by update_headers.py,
3  * to provide necessary information from kernel to userspace, such as constants,
4  * structures, and macros, and thus, contains no copyrightable information.
5  */
6 #ifndef _UAPI_LINUX_TLS_H
7 #define _UAPI_LINUX_TLS_H
8 #include <linux/types.h>
9 #define TLS_TX			1
10 #define TLS_RX			2
11 #define TLS_VERSION_MINOR(ver)	((ver) & 0xFF)
12 #define TLS_VERSION_MAJOR(ver)	(((ver) >> 8) & 0xFF)
13 #define TLS_VERSION_NUMBER(id)	((((id##_VERSION_MAJOR) & 0xFF) << 8) |	\
14 				 ((id##_VERSION_MINOR) & 0xFF))
15 #define TLS_1_2_VERSION_MAJOR	0x3
16 #define TLS_1_2_VERSION_MINOR	0x3
17 #define TLS_1_2_VERSION		TLS_VERSION_NUMBER(TLS_1_2)
18 #define TLS_CIPHER_AES_GCM_128				51
19 #define TLS_CIPHER_AES_GCM_128_IV_SIZE			8
20 #define TLS_CIPHER_AES_GCM_128_KEY_SIZE		16
21 #define TLS_CIPHER_AES_GCM_128_SALT_SIZE		4
22 #define TLS_CIPHER_AES_GCM_128_TAG_SIZE		16
23 #define TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE		8
24 #define TLS_SET_RECORD_TYPE	1
25 #define TLS_GET_RECORD_TYPE	2
26 struct tls_crypto_info {
27 	__u16 version;
28 	__u16 cipher_type;
29 };
30 struct tls12_crypto_info_aes_gcm_128 {
31 	struct tls_crypto_info info;
32 	unsigned char iv[TLS_CIPHER_AES_GCM_128_IV_SIZE];
33 	unsigned char key[TLS_CIPHER_AES_GCM_128_KEY_SIZE];
34 	unsigned char salt[TLS_CIPHER_AES_GCM_128_SALT_SIZE];
35 	unsigned char rec_seq[TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE];
36 };
37 #endif
38