libc/new/linux_uapi/linux/
tls.rs1use crate::prelude::*;
4use crate::{
5 __u16,
6 __u8,
7};
8
9pub const TLS_TX: c_int = 1;
10pub const TLS_RX: c_int = 2;
11pub const TLS_TX_ZEROCOPY_RO: c_int = 3;
12pub const TLS_RX_EXPECT_NO_PAD: c_int = 4;
13
14pub const TLS_1_2_VERSION_MAJOR: __u8 = 0x3;
15pub const TLS_1_2_VERSION_MINOR: __u8 = 0x3;
16pub const TLS_1_2_VERSION: __u16 =
17 ((TLS_1_2_VERSION_MAJOR as __u16) << 8) | (TLS_1_2_VERSION_MINOR as __u16);
18
19pub const TLS_1_3_VERSION_MAJOR: __u8 = 0x3;
20pub const TLS_1_3_VERSION_MINOR: __u8 = 0x4;
21pub const TLS_1_3_VERSION: __u16 =
22 ((TLS_1_3_VERSION_MAJOR as __u16) << 8) | (TLS_1_3_VERSION_MINOR as __u16);
23
24pub const TLS_CIPHER_AES_GCM_128: __u16 = 51;
25pub const TLS_CIPHER_AES_GCM_128_IV_SIZE: usize = 8;
26pub const TLS_CIPHER_AES_GCM_128_KEY_SIZE: usize = 16;
27pub const TLS_CIPHER_AES_GCM_128_SALT_SIZE: usize = 4;
28pub const TLS_CIPHER_AES_GCM_128_TAG_SIZE: usize = 16;
29pub const TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE: usize = 8;
30
31pub const TLS_CIPHER_AES_GCM_256: __u16 = 52;
32pub const TLS_CIPHER_AES_GCM_256_IV_SIZE: usize = 8;
33pub const TLS_CIPHER_AES_GCM_256_KEY_SIZE: usize = 32;
34pub const TLS_CIPHER_AES_GCM_256_SALT_SIZE: usize = 4;
35pub const TLS_CIPHER_AES_GCM_256_TAG_SIZE: usize = 16;
36pub const TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE: usize = 8;
37
38pub const TLS_CIPHER_AES_CCM_128: __u16 = 53;
39pub const TLS_CIPHER_AES_CCM_128_IV_SIZE: usize = 8;
40pub const TLS_CIPHER_AES_CCM_128_KEY_SIZE: usize = 16;
41pub const TLS_CIPHER_AES_CCM_128_SALT_SIZE: usize = 4;
42pub const TLS_CIPHER_AES_CCM_128_TAG_SIZE: usize = 16;
43pub const TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE: usize = 8;
44
45pub const TLS_CIPHER_CHACHA20_POLY1305: __u16 = 54;
46pub const TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE: usize = 12;
47pub const TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE: usize = 32;
48pub const TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE: usize = 0;
49pub const TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE: usize = 16;
50pub const TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE: usize = 8;
51
52pub const TLS_CIPHER_SM4_GCM: __u16 = 55;
53pub const TLS_CIPHER_SM4_GCM_IV_SIZE: usize = 8;
54pub const TLS_CIPHER_SM4_GCM_KEY_SIZE: usize = 16;
55pub const TLS_CIPHER_SM4_GCM_SALT_SIZE: usize = 4;
56pub const TLS_CIPHER_SM4_GCM_TAG_SIZE: usize = 16;
57pub const TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE: usize = 8;
58
59pub const TLS_CIPHER_SM4_CCM: __u16 = 56;
60pub const TLS_CIPHER_SM4_CCM_IV_SIZE: usize = 8;
61pub const TLS_CIPHER_SM4_CCM_KEY_SIZE: usize = 16;
62pub const TLS_CIPHER_SM4_CCM_SALT_SIZE: usize = 4;
63pub const TLS_CIPHER_SM4_CCM_TAG_SIZE: usize = 16;
64pub const TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE: usize = 8;
65
66pub const TLS_CIPHER_ARIA_GCM_128: __u16 = 57;
67pub const TLS_CIPHER_ARIA_GCM_128_IV_SIZE: usize = 8;
68pub const TLS_CIPHER_ARIA_GCM_128_KEY_SIZE: usize = 16;
69pub const TLS_CIPHER_ARIA_GCM_128_SALT_SIZE: usize = 4;
70pub const TLS_CIPHER_ARIA_GCM_128_TAG_SIZE: usize = 16;
71pub const TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE: usize = 8;
72
73pub const TLS_CIPHER_ARIA_GCM_256: __u16 = 58;
74pub const TLS_CIPHER_ARIA_GCM_256_IV_SIZE: usize = 8;
75pub const TLS_CIPHER_ARIA_GCM_256_KEY_SIZE: usize = 32;
76pub const TLS_CIPHER_ARIA_GCM_256_SALT_SIZE: usize = 4;
77pub const TLS_CIPHER_ARIA_GCM_256_TAG_SIZE: usize = 16;
78pub const TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE: usize = 8;
79
80pub const TLS_SET_RECORD_TYPE: c_int = 1;
81pub const TLS_GET_RECORD_TYPE: c_int = 2;
82
83#[automatically_derived]
#[allow(deprecated)]
impl ::core::clone::Clone for tls12_crypto_info_aria_gcm_256 {
#[inline]
fn clone(&self) -> tls12_crypto_info_aria_gcm_256 {
let _: ::core::clone::AssertParamIsClone<tls_crypto_info>;
let _:
::core::clone::AssertParamIsClone<[c_uchar; TLS_CIPHER_ARIA_GCM_256_IV_SIZE]>;
let _:
::core::clone::AssertParamIsClone<[c_uchar; TLS_CIPHER_ARIA_GCM_256_KEY_SIZE]>;
let _:
::core::clone::AssertParamIsClone<[c_uchar; TLS_CIPHER_ARIA_GCM_256_SALT_SIZE]>;
let _:
::core::clone::AssertParamIsClone<[c_uchar; TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE]>;
*self
}
}
#[automatically_derived]
#[allow(deprecated)]
impl ::core::marker::Copy for tls12_crypto_info_aria_gcm_256 { }
#[automatically_derived]
#[allow(deprecated)]
impl ::core::fmt::Debug for tls12_crypto_info_aria_gcm_256 {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field5_finish(f,
"tls12_crypto_info_aria_gcm_256", "info", &self.info, "iv",
&self.iv, "key", &self.key, "salt", &self.salt, "rec_seq",
&&self.rec_seq)
}
}s! {
84 pub struct tls_crypto_info {
85 pub version: __u16,
86 pub cipher_type: __u16,
87 }
88
89 pub struct tls12_crypto_info_aes_gcm_128 {
90 pub info: tls_crypto_info,
91 pub iv: [c_uchar; TLS_CIPHER_AES_GCM_128_IV_SIZE],
92 pub key: [c_uchar; TLS_CIPHER_AES_GCM_128_KEY_SIZE],
93 pub salt: [c_uchar; TLS_CIPHER_AES_GCM_128_SALT_SIZE],
94 pub rec_seq: [c_uchar; TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE],
95 }
96
97 pub struct tls12_crypto_info_aes_gcm_256 {
98 pub info: tls_crypto_info,
99 pub iv: [c_uchar; TLS_CIPHER_AES_GCM_256_IV_SIZE],
100 pub key: [c_uchar; TLS_CIPHER_AES_GCM_256_KEY_SIZE],
101 pub salt: [c_uchar; TLS_CIPHER_AES_GCM_256_SALT_SIZE],
102 pub rec_seq: [c_uchar; TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE],
103 }
104
105 pub struct tls12_crypto_info_aes_ccm_128 {
106 pub info: tls_crypto_info,
107 pub iv: [c_uchar; TLS_CIPHER_AES_CCM_128_IV_SIZE],
108 pub key: [c_uchar; TLS_CIPHER_AES_CCM_128_KEY_SIZE],
109 pub salt: [c_uchar; TLS_CIPHER_AES_CCM_128_SALT_SIZE],
110 pub rec_seq: [c_uchar; TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE],
111 }
112
113 pub struct tls12_crypto_info_chacha20_poly1305 {
114 pub info: tls_crypto_info,
115 pub iv: [c_uchar; TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE],
116 pub key: [c_uchar; TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE],
117 pub salt: [c_uchar; TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE],
118 pub rec_seq: [c_uchar; TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE],
119 }
120
121 pub struct tls12_crypto_info_sm4_gcm {
122 pub info: tls_crypto_info,
123 pub iv: [c_uchar; TLS_CIPHER_SM4_GCM_IV_SIZE],
124 pub key: [c_uchar; TLS_CIPHER_SM4_GCM_KEY_SIZE],
125 pub salt: [c_uchar; TLS_CIPHER_SM4_GCM_SALT_SIZE],
126 pub rec_seq: [c_uchar; TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE],
127 }
128
129 pub struct tls12_crypto_info_sm4_ccm {
130 pub info: tls_crypto_info,
131 pub iv: [c_uchar; TLS_CIPHER_SM4_CCM_IV_SIZE],
132 pub key: [c_uchar; TLS_CIPHER_SM4_CCM_KEY_SIZE],
133 pub salt: [c_uchar; TLS_CIPHER_SM4_CCM_SALT_SIZE],
134 pub rec_seq: [c_uchar; TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE],
135 }
136
137 pub struct tls12_crypto_info_aria_gcm_128 {
138 pub info: tls_crypto_info,
139 pub iv: [c_uchar; TLS_CIPHER_ARIA_GCM_128_IV_SIZE],
140 pub key: [c_uchar; TLS_CIPHER_ARIA_GCM_128_KEY_SIZE],
141 pub salt: [c_uchar; TLS_CIPHER_ARIA_GCM_128_SALT_SIZE],
142 pub rec_seq: [c_uchar; TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE],
143 }
144
145 pub struct tls12_crypto_info_aria_gcm_256 {
146 pub info: tls_crypto_info,
147 pub iv: [c_uchar; TLS_CIPHER_ARIA_GCM_256_IV_SIZE],
148 pub key: [c_uchar; TLS_CIPHER_ARIA_GCM_256_KEY_SIZE],
149 pub salt: [c_uchar; TLS_CIPHER_ARIA_GCM_256_SALT_SIZE],
150 pub rec_seq: [c_uchar; TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE],
151 }
152}
153
154const __TLS_INFO_MAX: c_int =
{
#[allow(unused_variables)]
let r = TLS_INFO_TX_MAX_PAYLOAD_LEN + 1;
r
};c_enum! {
155 #[repr(c_int)]
157 pub enum #anon {
158 pub TLS_INFO_UNSPEC,
159 pub TLS_INFO_VERSION,
160 pub TLS_INFO_CIPHER,
161 pub TLS_INFO_TXCONF,
162 pub TLS_INFO_RXCONF,
163 pub TLS_INFO_ZC_RO_TX,
164 pub TLS_INFO_RX_NO_PAD,
165 pub TLS_INFO_TX_MAX_PAYLOAD_LEN,
166 __TLS_INFO_MAX,
167 }
168}
169
170pub const TLS_INFO_MAX: c_int = __TLS_INFO_MAX - 1;
173
174pub const TLS_CONF_BASE: c_int = 1;
175pub const TLS_CONF_SW: c_int = 2;
176pub const TLS_CONF_HW: c_int = 3;
177pub const TLS_CONF_HW_RECORD: c_int = 4;