|  | /**************************************************************************** | 
|  | **************************************************************************** | 
|  | *** | 
|  | ***   This header was automatically generated from a Linux kernel header | 
|  | ***   of the same name, to make information necessary for userspace to | 
|  | ***   call into the kernel available to libc.  It contains only constants, | 
|  | ***   structures, and macros generated from the original header, and thus, | 
|  | ***   contains no copyrightable information. | 
|  | *** | 
|  | ***   To edit the content of this header, modify the corresponding | 
|  | ***   source file (e.g. under external/kernel-headers/original/) then | 
|  | ***   run bionic/libc/kernel/tools/update_all.py | 
|  | *** | 
|  | ***   Any manual change here will be lost the next time this script will | 
|  | ***   be run. You've been warned! | 
|  | *** | 
|  | **************************************************************************** | 
|  | ****************************************************************************/ | 
|  | #ifndef _UAPI_LINUX_TLS_H | 
|  | #define _UAPI_LINUX_TLS_H | 
|  | #include <linux/types.h> | 
|  | #define TLS_TX 1 | 
|  | #define TLS_RX 2 | 
|  | #define TLS_VERSION_MINOR(ver) ((ver) & 0xFF) | 
|  | #define TLS_VERSION_MAJOR(ver) (((ver) >> 8) & 0xFF) | 
|  | #define TLS_VERSION_NUMBER(id) ((((id ##_VERSION_MAJOR) & 0xFF) << 8) | ((id ##_VERSION_MINOR) & 0xFF)) | 
|  | #define TLS_1_2_VERSION_MAJOR 0x3 | 
|  | #define TLS_1_2_VERSION_MINOR 0x3 | 
|  | #define TLS_1_2_VERSION TLS_VERSION_NUMBER(TLS_1_2) | 
|  | #define TLS_CIPHER_AES_GCM_128 51 | 
|  | #define TLS_CIPHER_AES_GCM_128_IV_SIZE 8 | 
|  | #define TLS_CIPHER_AES_GCM_128_KEY_SIZE 16 | 
|  | #define TLS_CIPHER_AES_GCM_128_SALT_SIZE 4 | 
|  | #define TLS_CIPHER_AES_GCM_128_TAG_SIZE 16 | 
|  | #define TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE 8 | 
|  | #define TLS_SET_RECORD_TYPE 1 | 
|  | #define TLS_GET_RECORD_TYPE 2 | 
|  | struct tls_crypto_info { | 
|  | __u16 version; | 
|  | __u16 cipher_type; | 
|  | }; | 
|  | struct tls12_crypto_info_aes_gcm_128 { | 
|  | struct tls_crypto_info info; | 
|  | unsigned char iv[TLS_CIPHER_AES_GCM_128_IV_SIZE]; | 
|  | unsigned char key[TLS_CIPHER_AES_GCM_128_KEY_SIZE]; | 
|  | unsigned char salt[TLS_CIPHER_AES_GCM_128_SALT_SIZE]; | 
|  | unsigned char rec_seq[TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE]; | 
|  | }; | 
|  | #endif |