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