xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/tls.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_TLS_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_LINUX_TLS_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
10*8d67ca89SAndroid Build Coastguard Worker #define TLS_TX 1
11*8d67ca89SAndroid Build Coastguard Worker #define TLS_RX 2
12*8d67ca89SAndroid Build Coastguard Worker #define TLS_TX_ZEROCOPY_RO 3
13*8d67ca89SAndroid Build Coastguard Worker #define TLS_RX_EXPECT_NO_PAD 4
14*8d67ca89SAndroid Build Coastguard Worker #define TLS_VERSION_MINOR(ver) ((ver) & 0xFF)
15*8d67ca89SAndroid Build Coastguard Worker #define TLS_VERSION_MAJOR(ver) (((ver) >> 8) & 0xFF)
16*8d67ca89SAndroid Build Coastguard Worker #define TLS_VERSION_NUMBER(id) ((((id ##_VERSION_MAJOR) & 0xFF) << 8) | ((id ##_VERSION_MINOR) & 0xFF))
17*8d67ca89SAndroid Build Coastguard Worker #define TLS_1_2_VERSION_MAJOR 0x3
18*8d67ca89SAndroid Build Coastguard Worker #define TLS_1_2_VERSION_MINOR 0x3
19*8d67ca89SAndroid Build Coastguard Worker #define TLS_1_2_VERSION TLS_VERSION_NUMBER(TLS_1_2)
20*8d67ca89SAndroid Build Coastguard Worker #define TLS_1_3_VERSION_MAJOR 0x3
21*8d67ca89SAndroid Build Coastguard Worker #define TLS_1_3_VERSION_MINOR 0x4
22*8d67ca89SAndroid Build Coastguard Worker #define TLS_1_3_VERSION TLS_VERSION_NUMBER(TLS_1_3)
23*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_GCM_128 51
24*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_GCM_128_IV_SIZE 8
25*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_GCM_128_KEY_SIZE 16
26*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_GCM_128_SALT_SIZE 4
27*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_GCM_128_TAG_SIZE 16
28*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE 8
29*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_GCM_256 52
30*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_GCM_256_IV_SIZE 8
31*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_GCM_256_KEY_SIZE 32
32*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_GCM_256_SALT_SIZE 4
33*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_GCM_256_TAG_SIZE 16
34*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE 8
35*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_CCM_128 53
36*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_CCM_128_IV_SIZE 8
37*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_CCM_128_KEY_SIZE 16
38*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_CCM_128_SALT_SIZE 4
39*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_CCM_128_TAG_SIZE 16
40*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE 8
41*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_CHACHA20_POLY1305 54
42*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE 12
43*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE 32
44*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE 0
45*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE 16
46*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE 8
47*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_SM4_GCM 55
48*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_SM4_GCM_IV_SIZE 8
49*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_SM4_GCM_KEY_SIZE 16
50*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_SM4_GCM_SALT_SIZE 4
51*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_SM4_GCM_TAG_SIZE 16
52*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE 8
53*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_SM4_CCM 56
54*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_SM4_CCM_IV_SIZE 8
55*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_SM4_CCM_KEY_SIZE 16
56*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_SM4_CCM_SALT_SIZE 4
57*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_SM4_CCM_TAG_SIZE 16
58*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE 8
59*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_ARIA_GCM_128 57
60*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_ARIA_GCM_128_IV_SIZE 8
61*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_ARIA_GCM_128_KEY_SIZE 16
62*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_ARIA_GCM_128_SALT_SIZE 4
63*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_ARIA_GCM_128_TAG_SIZE 16
64*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE 8
65*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_ARIA_GCM_256 58
66*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_ARIA_GCM_256_IV_SIZE 8
67*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_ARIA_GCM_256_KEY_SIZE 32
68*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_ARIA_GCM_256_SALT_SIZE 4
69*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_ARIA_GCM_256_TAG_SIZE 16
70*8d67ca89SAndroid Build Coastguard Worker #define TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE 8
71*8d67ca89SAndroid Build Coastguard Worker #define TLS_SET_RECORD_TYPE 1
72*8d67ca89SAndroid Build Coastguard Worker #define TLS_GET_RECORD_TYPE 2
73*8d67ca89SAndroid Build Coastguard Worker struct tls_crypto_info {
74*8d67ca89SAndroid Build Coastguard Worker   __u16 version;
75*8d67ca89SAndroid Build Coastguard Worker   __u16 cipher_type;
76*8d67ca89SAndroid Build Coastguard Worker };
77*8d67ca89SAndroid Build Coastguard Worker struct tls12_crypto_info_aes_gcm_128 {
78*8d67ca89SAndroid Build Coastguard Worker   struct tls_crypto_info info;
79*8d67ca89SAndroid Build Coastguard Worker   unsigned char iv[TLS_CIPHER_AES_GCM_128_IV_SIZE];
80*8d67ca89SAndroid Build Coastguard Worker   unsigned char key[TLS_CIPHER_AES_GCM_128_KEY_SIZE];
81*8d67ca89SAndroid Build Coastguard Worker   unsigned char salt[TLS_CIPHER_AES_GCM_128_SALT_SIZE];
82*8d67ca89SAndroid Build Coastguard Worker   unsigned char rec_seq[TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE];
83*8d67ca89SAndroid Build Coastguard Worker };
84*8d67ca89SAndroid Build Coastguard Worker struct tls12_crypto_info_aes_gcm_256 {
85*8d67ca89SAndroid Build Coastguard Worker   struct tls_crypto_info info;
86*8d67ca89SAndroid Build Coastguard Worker   unsigned char iv[TLS_CIPHER_AES_GCM_256_IV_SIZE];
87*8d67ca89SAndroid Build Coastguard Worker   unsigned char key[TLS_CIPHER_AES_GCM_256_KEY_SIZE];
88*8d67ca89SAndroid Build Coastguard Worker   unsigned char salt[TLS_CIPHER_AES_GCM_256_SALT_SIZE];
89*8d67ca89SAndroid Build Coastguard Worker   unsigned char rec_seq[TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE];
90*8d67ca89SAndroid Build Coastguard Worker };
91*8d67ca89SAndroid Build Coastguard Worker struct tls12_crypto_info_aes_ccm_128 {
92*8d67ca89SAndroid Build Coastguard Worker   struct tls_crypto_info info;
93*8d67ca89SAndroid Build Coastguard Worker   unsigned char iv[TLS_CIPHER_AES_CCM_128_IV_SIZE];
94*8d67ca89SAndroid Build Coastguard Worker   unsigned char key[TLS_CIPHER_AES_CCM_128_KEY_SIZE];
95*8d67ca89SAndroid Build Coastguard Worker   unsigned char salt[TLS_CIPHER_AES_CCM_128_SALT_SIZE];
96*8d67ca89SAndroid Build Coastguard Worker   unsigned char rec_seq[TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE];
97*8d67ca89SAndroid Build Coastguard Worker };
98*8d67ca89SAndroid Build Coastguard Worker struct tls12_crypto_info_chacha20_poly1305 {
99*8d67ca89SAndroid Build Coastguard Worker   struct tls_crypto_info info;
100*8d67ca89SAndroid Build Coastguard Worker   unsigned char iv[TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE];
101*8d67ca89SAndroid Build Coastguard Worker   unsigned char key[TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE];
102*8d67ca89SAndroid Build Coastguard Worker   unsigned char salt[TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE];
103*8d67ca89SAndroid Build Coastguard Worker   unsigned char rec_seq[TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE];
104*8d67ca89SAndroid Build Coastguard Worker };
105*8d67ca89SAndroid Build Coastguard Worker struct tls12_crypto_info_sm4_gcm {
106*8d67ca89SAndroid Build Coastguard Worker   struct tls_crypto_info info;
107*8d67ca89SAndroid Build Coastguard Worker   unsigned char iv[TLS_CIPHER_SM4_GCM_IV_SIZE];
108*8d67ca89SAndroid Build Coastguard Worker   unsigned char key[TLS_CIPHER_SM4_GCM_KEY_SIZE];
109*8d67ca89SAndroid Build Coastguard Worker   unsigned char salt[TLS_CIPHER_SM4_GCM_SALT_SIZE];
110*8d67ca89SAndroid Build Coastguard Worker   unsigned char rec_seq[TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE];
111*8d67ca89SAndroid Build Coastguard Worker };
112*8d67ca89SAndroid Build Coastguard Worker struct tls12_crypto_info_sm4_ccm {
113*8d67ca89SAndroid Build Coastguard Worker   struct tls_crypto_info info;
114*8d67ca89SAndroid Build Coastguard Worker   unsigned char iv[TLS_CIPHER_SM4_CCM_IV_SIZE];
115*8d67ca89SAndroid Build Coastguard Worker   unsigned char key[TLS_CIPHER_SM4_CCM_KEY_SIZE];
116*8d67ca89SAndroid Build Coastguard Worker   unsigned char salt[TLS_CIPHER_SM4_CCM_SALT_SIZE];
117*8d67ca89SAndroid Build Coastguard Worker   unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE];
118*8d67ca89SAndroid Build Coastguard Worker };
119*8d67ca89SAndroid Build Coastguard Worker struct tls12_crypto_info_aria_gcm_128 {
120*8d67ca89SAndroid Build Coastguard Worker   struct tls_crypto_info info;
121*8d67ca89SAndroid Build Coastguard Worker   unsigned char iv[TLS_CIPHER_ARIA_GCM_128_IV_SIZE];
122*8d67ca89SAndroid Build Coastguard Worker   unsigned char key[TLS_CIPHER_ARIA_GCM_128_KEY_SIZE];
123*8d67ca89SAndroid Build Coastguard Worker   unsigned char salt[TLS_CIPHER_ARIA_GCM_128_SALT_SIZE];
124*8d67ca89SAndroid Build Coastguard Worker   unsigned char rec_seq[TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE];
125*8d67ca89SAndroid Build Coastguard Worker };
126*8d67ca89SAndroid Build Coastguard Worker struct tls12_crypto_info_aria_gcm_256 {
127*8d67ca89SAndroid Build Coastguard Worker   struct tls_crypto_info info;
128*8d67ca89SAndroid Build Coastguard Worker   unsigned char iv[TLS_CIPHER_ARIA_GCM_256_IV_SIZE];
129*8d67ca89SAndroid Build Coastguard Worker   unsigned char key[TLS_CIPHER_ARIA_GCM_256_KEY_SIZE];
130*8d67ca89SAndroid Build Coastguard Worker   unsigned char salt[TLS_CIPHER_ARIA_GCM_256_SALT_SIZE];
131*8d67ca89SAndroid Build Coastguard Worker   unsigned char rec_seq[TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE];
132*8d67ca89SAndroid Build Coastguard Worker };
133*8d67ca89SAndroid Build Coastguard Worker enum {
134*8d67ca89SAndroid Build Coastguard Worker   TLS_INFO_UNSPEC,
135*8d67ca89SAndroid Build Coastguard Worker   TLS_INFO_VERSION,
136*8d67ca89SAndroid Build Coastguard Worker   TLS_INFO_CIPHER,
137*8d67ca89SAndroid Build Coastguard Worker   TLS_INFO_TXCONF,
138*8d67ca89SAndroid Build Coastguard Worker   TLS_INFO_RXCONF,
139*8d67ca89SAndroid Build Coastguard Worker   TLS_INFO_ZC_RO_TX,
140*8d67ca89SAndroid Build Coastguard Worker   TLS_INFO_RX_NO_PAD,
141*8d67ca89SAndroid Build Coastguard Worker   __TLS_INFO_MAX,
142*8d67ca89SAndroid Build Coastguard Worker };
143*8d67ca89SAndroid Build Coastguard Worker #define TLS_INFO_MAX (__TLS_INFO_MAX - 1)
144*8d67ca89SAndroid Build Coastguard Worker #define TLS_CONF_BASE 1
145*8d67ca89SAndroid Build Coastguard Worker #define TLS_CONF_SW 2
146*8d67ca89SAndroid Build Coastguard Worker #define TLS_CONF_HW 3
147*8d67ca89SAndroid Build Coastguard Worker #define TLS_CONF_HW_RECORD 4
148*8d67ca89SAndroid Build Coastguard Worker #endif
149