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