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