Skip to content

Commit 1c06f6c

Browse files
committed
Auto merge of #3422 - Arnavion:ktls, r=JohnTitor
Add more definitions from linux/tls.h
2 parents 240de1f + df3e305 commit 1c06f6c

File tree

2 files changed

+93
-0
lines changed

2 files changed

+93
-0
lines changed

libc-test/semver/linux.txt

+27
Original file line numberDiff line numberDiff line change
@@ -2907,7 +2907,34 @@ TIOCSCTTY
29072907
TIOCSPGRP
29082908
TIOCSSOFTCAR
29092909
TIOCSTI
2910+
TLS_1_2_VERSION
2911+
TLS_1_2_VERSION_MAJOR
2912+
TLS_1_2_VERSION_MINOR
2913+
TLS_1_3_VERSION
2914+
TLS_1_3_VERSION_MAJOR
2915+
TLS_1_3_VERSION_MINOR
2916+
TLS_CIPHER_AES_GCM_128
2917+
TLS_CIPHER_AES_GCM_128_IV_SIZE
2918+
TLS_CIPHER_AES_GCM_128_KEY_SIZE
2919+
TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE
2920+
TLS_CIPHER_AES_GCM_128_SALT_SIZE
2921+
TLS_CIPHER_AES_GCM_128_TAG_SIZE
2922+
TLS_CIPHER_AES_GCM_256
2923+
TLS_CIPHER_AES_GCM_256_IV_SIZE
2924+
TLS_CIPHER_AES_GCM_256_KEY_SIZE
2925+
TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE
2926+
TLS_CIPHER_AES_GCM_256_SALT_SIZE
2927+
TLS_CIPHER_AES_GCM_256_TAG_SIZE
2928+
TLS_CIPHER_CHACHA20_POLY1305
2929+
TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE
2930+
TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE
2931+
TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE
2932+
TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE
2933+
TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE
29102934
TLS_GET_RECORD_TYPE
2935+
TLS_RX
2936+
TLS_SET_RECORD_TYPE
2937+
TLS_TX
29112938
TUN_READQ_SIZE
29122939
TUN_TAP_DEV
29132940
TUN_TUN_DEV

src/unix/linux_like/linux/mod.rs

+66
Original file line numberDiff line numberDiff line change
@@ -686,6 +686,37 @@ s! {
686686
pub rlim_cur: rlim64_t,
687687
pub rlim_max: rlim64_t,
688688
}
689+
690+
// linux/tls.h
691+
692+
pub struct tls_crypto_info {
693+
pub version: ::__u16,
694+
pub cipher_type: ::__u16,
695+
}
696+
697+
pub struct tls12_crypto_info_aes_gcm_128 {
698+
pub info: tls_crypto_info,
699+
pub iv: [::c_uchar; TLS_CIPHER_AES_GCM_128_IV_SIZE],
700+
pub key: [::c_uchar; TLS_CIPHER_AES_GCM_128_KEY_SIZE],
701+
pub salt: [::c_uchar; TLS_CIPHER_AES_GCM_128_SALT_SIZE],
702+
pub rec_seq: [::c_uchar; TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE],
703+
}
704+
705+
pub struct tls12_crypto_info_aes_gcm_256 {
706+
pub info: tls_crypto_info,
707+
pub iv: [::c_uchar; TLS_CIPHER_AES_GCM_256_IV_SIZE],
708+
pub key: [::c_uchar; TLS_CIPHER_AES_GCM_256_KEY_SIZE],
709+
pub salt: [::c_uchar; TLS_CIPHER_AES_GCM_256_SALT_SIZE],
710+
pub rec_seq: [::c_uchar; TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE],
711+
}
712+
713+
pub struct tls12_crypto_info_chacha20_poly1305 {
714+
pub info: tls_crypto_info,
715+
pub iv: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE],
716+
pub key: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE],
717+
pub salt: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE],
718+
pub rec_seq: [::c_uchar; TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE],
719+
}
689720
}
690721

691722
s_no_extra_traits! {
@@ -3234,6 +3265,41 @@ pub const HWTSTAMP_FILTER_PTP_V2_DELAY_REQ: ::c_uint = 14;
32343265
pub const HWTSTAMP_FILTER_NTP_ALL: ::c_uint = 15;
32353266

32363267
// linux/tls.h
3268+
pub const TLS_TX: ::c_int = 1;
3269+
pub const TLS_RX: ::c_int = 2;
3270+
3271+
pub const TLS_1_2_VERSION_MAJOR: ::__u8 = 0x3;
3272+
pub const TLS_1_2_VERSION_MINOR: ::__u8 = 0x3;
3273+
pub const TLS_1_2_VERSION: ::__u16 =
3274+
((TLS_1_2_VERSION_MAJOR as ::__u16) << 8) | (TLS_1_2_VERSION_MINOR as ::__u16);
3275+
3276+
pub const TLS_1_3_VERSION_MAJOR: ::__u8 = 0x3;
3277+
pub const TLS_1_3_VERSION_MINOR: ::__u8 = 0x4;
3278+
pub const TLS_1_3_VERSION: ::__u16 =
3279+
((TLS_1_3_VERSION_MAJOR as ::__u16) << 8) | (TLS_1_3_VERSION_MINOR as ::__u16);
3280+
3281+
pub const TLS_CIPHER_AES_GCM_128: ::__u16 = 51;
3282+
pub const TLS_CIPHER_AES_GCM_128_IV_SIZE: usize = 8;
3283+
pub const TLS_CIPHER_AES_GCM_128_KEY_SIZE: usize = 16;
3284+
pub const TLS_CIPHER_AES_GCM_128_SALT_SIZE: usize = 4;
3285+
pub const TLS_CIPHER_AES_GCM_128_TAG_SIZE: usize = 16;
3286+
pub const TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE: usize = 8;
3287+
3288+
pub const TLS_CIPHER_AES_GCM_256: ::__u16 = 52;
3289+
pub const TLS_CIPHER_AES_GCM_256_IV_SIZE: usize = 8;
3290+
pub const TLS_CIPHER_AES_GCM_256_KEY_SIZE: usize = 32;
3291+
pub const TLS_CIPHER_AES_GCM_256_SALT_SIZE: usize = 4;
3292+
pub const TLS_CIPHER_AES_GCM_256_TAG_SIZE: usize = 16;
3293+
pub const TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE: usize = 8;
3294+
3295+
pub const TLS_CIPHER_CHACHA20_POLY1305: ::__u16 = 54;
3296+
pub const TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE: usize = 12;
3297+
pub const TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE: usize = 32;
3298+
pub const TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE: usize = 0;
3299+
pub const TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE: usize = 16;
3300+
pub const TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE: usize = 8;
3301+
3302+
pub const TLS_SET_RECORD_TYPE: ::c_int = 1;
32373303
pub const TLS_GET_RECORD_TYPE: ::c_int = 2;
32383304

32393305
pub const SOL_TLS: ::c_int = 282;

0 commit comments

Comments
 (0)