Skip to content

Commit aa9eab3

Browse files
mbyxtgross35
authored andcommitted
linux: add missing tls bindings
sort semver/linux.txt properly (backport <#4296>) (cherry picked from commit bdcb3eb)
1 parent 8e5fa76 commit aa9eab3

File tree

2 files changed

+135
-0
lines changed

2 files changed

+135
-0
lines changed

libc-test/semver/linux.txt

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3366,6 +3366,12 @@ TLS_1_2_VERSION_MINOR
33663366
TLS_1_3_VERSION
33673367
TLS_1_3_VERSION_MAJOR
33683368
TLS_1_3_VERSION_MINOR
3369+
TLS_CIPHER_AES_CCM_128
3370+
TLS_CIPHER_AES_CCM_128_IV_SIZE
3371+
TLS_CIPHER_AES_CCM_128_KEY_SIZE
3372+
TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE
3373+
TLS_CIPHER_AES_CCM_128_SALT_SIZE
3374+
TLS_CIPHER_AES_CCM_128_TAG_SIZE
33693375
TLS_CIPHER_AES_GCM_128
33703376
TLS_CIPHER_AES_GCM_128_IV_SIZE
33713377
TLS_CIPHER_AES_GCM_128_KEY_SIZE
@@ -3378,16 +3384,53 @@ TLS_CIPHER_AES_GCM_256_KEY_SIZE
33783384
TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE
33793385
TLS_CIPHER_AES_GCM_256_SALT_SIZE
33803386
TLS_CIPHER_AES_GCM_256_TAG_SIZE
3387+
TLS_CIPHER_ARIA_GCM_128
3388+
TLS_CIPHER_ARIA_GCM_128_IV_SIZE
3389+
TLS_CIPHER_ARIA_GCM_128_KEY_SIZE
3390+
TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE
3391+
TLS_CIPHER_ARIA_GCM_128_SALT_SIZE
3392+
TLS_CIPHER_ARIA_GCM_128_TAG_SIZE
3393+
TLS_CIPHER_ARIA_GCM_256
3394+
TLS_CIPHER_ARIA_GCM_256_IV_SIZE
3395+
TLS_CIPHER_ARIA_GCM_256_KEY_SIZE
3396+
TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE
3397+
TLS_CIPHER_ARIA_GCM_256_SALT_SIZE
3398+
TLS_CIPHER_ARIA_GCM_256_TAG_SIZE
33813399
TLS_CIPHER_CHACHA20_POLY1305
33823400
TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE
33833401
TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE
33843402
TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE
33853403
TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE
33863404
TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE
3405+
TLS_CIPHER_SM4_CCM
3406+
TLS_CIPHER_SM4_CCM_IV_SIZE
3407+
TLS_CIPHER_SM4_CCM_KEY_SIZE
3408+
TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE
3409+
TLS_CIPHER_SM4_CCM_SALT_SIZE
3410+
TLS_CIPHER_SM4_CCM_TAG_SIZE
3411+
TLS_CIPHER_SM4_GCM
3412+
TLS_CIPHER_SM4_GCM_IV_SIZE
3413+
TLS_CIPHER_SM4_GCM_KEY_SIZE
3414+
TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE
3415+
TLS_CIPHER_SM4_GCM_SALT_SIZE
3416+
TLS_CIPHER_SM4_GCM_TAG_SIZE
3417+
TLS_CONF_BASE
3418+
TLS_CONF_HW
3419+
TLS_CONF_HW_RECORD
3420+
TLS_CONF_SW
33873421
TLS_GET_RECORD_TYPE
3422+
TLS_INFO_CIPHER
3423+
TLS_INFO_RXCONF
3424+
TLS_INFO_RX_NO_PAD
3425+
TLS_INFO_TXCONF
3426+
TLS_INFO_UNSPEC
3427+
TLS_INFO_VERSION
3428+
TLS_INFO_ZC_RO_TX
33883429
TLS_RX
3430+
TLS_RX_EXPECT_NO_PAD
33893431
TLS_SET_RECORD_TYPE
33903432
TLS_TX
3433+
TLS_TX_ZEROCOPY_RO
33913434
TP_FT_REQ_FILL_RXHASH
33923435
TP_STATUS_AVAILABLE
33933436
TP_STATUS_BLK_TMO

src/unix/linux_like/linux/mod.rs

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -966,6 +966,14 @@ s! {
966966
pub rec_seq: [c_uchar; TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE],
967967
}
968968

969+
pub struct tls12_crypto_info_aes_ccm_128 {
970+
pub info: tls_crypto_info,
971+
pub iv: [c_uchar; TLS_CIPHER_AES_CCM_128_IV_SIZE],
972+
pub key: [c_uchar; TLS_CIPHER_AES_CCM_128_KEY_SIZE],
973+
pub salt: [c_uchar; TLS_CIPHER_AES_CCM_128_SALT_SIZE],
974+
pub rec_seq: [c_uchar; TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE],
975+
}
976+
969977
pub struct tls12_crypto_info_chacha20_poly1305 {
970978
pub info: tls_crypto_info,
971979
pub iv: [c_uchar; TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE],
@@ -974,6 +982,38 @@ s! {
974982
pub rec_seq: [c_uchar; TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE],
975983
}
976984

985+
pub struct tls12_crypto_info_sm4_gcm {
986+
pub info: tls_crypto_info,
987+
pub iv: [c_uchar; TLS_CIPHER_SM4_GCM_IV_SIZE],
988+
pub key: [c_uchar; TLS_CIPHER_SM4_GCM_KEY_SIZE],
989+
pub salt: [c_uchar; TLS_CIPHER_SM4_GCM_SALT_SIZE],
990+
pub rec_seq: [c_uchar; TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE],
991+
}
992+
993+
pub struct tls12_crypto_info_sm4_ccm {
994+
pub info: tls_crypto_info,
995+
pub iv: [c_uchar; TLS_CIPHER_SM4_CCM_IV_SIZE],
996+
pub key: [c_uchar; TLS_CIPHER_SM4_CCM_KEY_SIZE],
997+
pub salt: [c_uchar; TLS_CIPHER_SM4_CCM_SALT_SIZE],
998+
pub rec_seq: [c_uchar; TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE],
999+
}
1000+
1001+
pub struct tls12_crypto_info_aria_gcm_128 {
1002+
pub info: tls_crypto_info,
1003+
pub iv: [c_uchar; TLS_CIPHER_ARIA_GCM_128_IV_SIZE],
1004+
pub key: [c_uchar; TLS_CIPHER_ARIA_GCM_128_KEY_SIZE],
1005+
pub salt: [c_uchar; TLS_CIPHER_ARIA_GCM_128_SALT_SIZE],
1006+
pub rec_seq: [c_uchar; TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE],
1007+
}
1008+
1009+
pub struct tls12_crypto_info_aria_gcm_256 {
1010+
pub info: tls_crypto_info,
1011+
pub iv: [c_uchar; TLS_CIPHER_ARIA_GCM_256_IV_SIZE],
1012+
pub key: [c_uchar; TLS_CIPHER_ARIA_GCM_256_KEY_SIZE],
1013+
pub salt: [c_uchar; TLS_CIPHER_ARIA_GCM_256_SALT_SIZE],
1014+
pub rec_seq: [c_uchar; TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE],
1015+
}
1016+
9771017
// linux/wireless.h
9781018

9791019
pub struct iw_param {
@@ -4721,6 +4761,9 @@ pub const PTP_PF_PHYSYNC: c_uint = 3;
47214761
pub const TLS_TX: c_int = 1;
47224762
pub const TLS_RX: c_int = 2;
47234763

4764+
pub const TLS_TX_ZEROCOPY_RO: c_int = 3;
4765+
pub const TLS_RX_EXPECT_NO_PAD: c_int = 4;
4766+
47244767
pub const TLS_1_2_VERSION_MAJOR: __u8 = 0x3;
47254768
pub const TLS_1_2_VERSION_MINOR: __u8 = 0x3;
47264769
pub const TLS_1_2_VERSION: __u16 =
@@ -4745,18 +4788,67 @@ pub const TLS_CIPHER_AES_GCM_256_SALT_SIZE: usize = 4;
47454788
pub const TLS_CIPHER_AES_GCM_256_TAG_SIZE: usize = 16;
47464789
pub const TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE: usize = 8;
47474790

4791+
pub const TLS_CIPHER_AES_CCM_128: __u16 = 53;
4792+
pub const TLS_CIPHER_AES_CCM_128_IV_SIZE: usize = 8;
4793+
pub const TLS_CIPHER_AES_CCM_128_KEY_SIZE: usize = 16;
4794+
pub const TLS_CIPHER_AES_CCM_128_SALT_SIZE: usize = 4;
4795+
pub const TLS_CIPHER_AES_CCM_128_TAG_SIZE: usize = 16;
4796+
pub const TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE: usize = 8;
4797+
47484798
pub const TLS_CIPHER_CHACHA20_POLY1305: __u16 = 54;
47494799
pub const TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE: usize = 12;
47504800
pub const TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE: usize = 32;
47514801
pub const TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE: usize = 0;
47524802
pub const TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE: usize = 16;
47534803
pub const TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE: usize = 8;
47544804

4805+
pub const TLS_CIPHER_SM4_GCM: __u16 = 55;
4806+
pub const TLS_CIPHER_SM4_GCM_IV_SIZE: usize = 8;
4807+
pub const TLS_CIPHER_SM4_GCM_KEY_SIZE: usize = 16;
4808+
pub const TLS_CIPHER_SM4_GCM_SALT_SIZE: usize = 4;
4809+
pub const TLS_CIPHER_SM4_GCM_TAG_SIZE: usize = 16;
4810+
pub const TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE: usize = 8;
4811+
4812+
pub const TLS_CIPHER_SM4_CCM: __u16 = 56;
4813+
pub const TLS_CIPHER_SM4_CCM_IV_SIZE: usize = 8;
4814+
pub const TLS_CIPHER_SM4_CCM_KEY_SIZE: usize = 16;
4815+
pub const TLS_CIPHER_SM4_CCM_SALT_SIZE: usize = 4;
4816+
pub const TLS_CIPHER_SM4_CCM_TAG_SIZE: usize = 16;
4817+
pub const TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE: usize = 8;
4818+
4819+
pub const TLS_CIPHER_ARIA_GCM_128: __u16 = 57;
4820+
pub const TLS_CIPHER_ARIA_GCM_128_IV_SIZE: usize = 8;
4821+
pub const TLS_CIPHER_ARIA_GCM_128_KEY_SIZE: usize = 16;
4822+
pub const TLS_CIPHER_ARIA_GCM_128_SALT_SIZE: usize = 4;
4823+
pub const TLS_CIPHER_ARIA_GCM_128_TAG_SIZE: usize = 16;
4824+
pub const TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE: usize = 8;
4825+
4826+
pub const TLS_CIPHER_ARIA_GCM_256: __u16 = 58;
4827+
pub const TLS_CIPHER_ARIA_GCM_256_IV_SIZE: usize = 8;
4828+
pub const TLS_CIPHER_ARIA_GCM_256_KEY_SIZE: usize = 32;
4829+
pub const TLS_CIPHER_ARIA_GCM_256_SALT_SIZE: usize = 4;
4830+
pub const TLS_CIPHER_ARIA_GCM_256_TAG_SIZE: usize = 16;
4831+
pub const TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE: usize = 8;
4832+
47554833
pub const TLS_SET_RECORD_TYPE: c_int = 1;
47564834
pub const TLS_GET_RECORD_TYPE: c_int = 2;
47574835

47584836
pub const SOL_TLS: c_int = 282;
47594837

4838+
// enum
4839+
pub const TLS_INFO_UNSPEC: c_int = 0x00;
4840+
pub const TLS_INFO_VERSION: c_int = 0x01;
4841+
pub const TLS_INFO_CIPHER: c_int = 0x02;
4842+
pub const TLS_INFO_TXCONF: c_int = 0x03;
4843+
pub const TLS_INFO_RXCONF: c_int = 0x04;
4844+
pub const TLS_INFO_ZC_RO_TX: c_int = 0x05;
4845+
pub const TLS_INFO_RX_NO_PAD: c_int = 0x06;
4846+
4847+
pub const TLS_CONF_BASE: c_int = 1;
4848+
pub const TLS_CONF_SW: c_int = 2;
4849+
pub const TLS_CONF_HW: c_int = 3;
4850+
pub const TLS_CONF_HW_RECORD: c_int = 4;
4851+
47604852
// linux/if_alg.h
47614853
pub const ALG_SET_KEY: c_int = 1;
47624854
pub const ALG_SET_IV: c_int = 2;

0 commit comments

Comments
 (0)