From a9f90cc270aa0f4ad521d81edb1690976f8c3021 Mon Sep 17 00:00:00 2001 From: Joe Birr-Pixton Date: Mon, 12 Aug 2024 17:31:05 +0100 Subject: [PATCH] Implement `SSL_set_max_early_data` --- rustls-libssl/MATRIX.md | 2 +- rustls-libssl/build.rs | 1 + rustls-libssl/src/entry.rs | 9 +++++++++ rustls-libssl/src/lib.rs | 4 ++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/rustls-libssl/MATRIX.md b/rustls-libssl/MATRIX.md index 902aa86..d63a586 100644 --- a/rustls-libssl/MATRIX.md +++ b/rustls-libssl/MATRIX.md @@ -441,7 +441,7 @@ | `SSL_set_generate_session_id` | | | | | `SSL_set_hostflags` | | | | | `SSL_set_info_callback` | | | | -| `SSL_set_max_early_data` | | :white_check_mark: | | +| `SSL_set_max_early_data` | | :white_check_mark: | :white_check_mark: | | `SSL_set_msg_callback` | | :white_check_mark: | :exclamation: [^stub] | | `SSL_set_not_resumable_session_callback` | | | | | `SSL_set_num_tickets` | | | :white_check_mark: | diff --git a/rustls-libssl/build.rs b/rustls-libssl/build.rs index 28e0b7b..54a44b5 100644 --- a/rustls-libssl/build.rs +++ b/rustls-libssl/build.rs @@ -195,6 +195,7 @@ const ENTRYPOINTS: &[&str] = &[ "SSL_set_connect_state", "SSL_set_ex_data", "SSL_set_fd", + "SSL_set_max_early_data", "SSL_set_msg_callback", "SSL_set_num_tickets", "SSL_set_options", diff --git a/rustls-libssl/src/entry.rs b/rustls-libssl/src/entry.rs index b11f54e..937e519 100644 --- a/rustls-libssl/src/entry.rs +++ b/rustls-libssl/src/entry.rs @@ -912,6 +912,15 @@ entry! { } } +entry! { + pub fn _SSL_set_max_early_data(ssl: *mut SSL, max_early_data: u32) -> c_int { + try_clone_arc!(ssl) + .get_mut() + .set_max_early_data(max_early_data); + C_INT_SUCCESS + } +} + entry! { pub fn _SSL_set_alpn_protos( ssl: *mut SSL, diff --git a/rustls-libssl/src/lib.rs b/rustls-libssl/src/lib.rs index 10a97da..ff28608 100644 --- a/rustls-libssl/src/lib.rs +++ b/rustls-libssl/src/lib.rs @@ -831,6 +831,10 @@ impl Ssl { self.num_tickets = num } + fn set_max_early_data(&mut self, max: u32) { + self.max_early_data = max; + } + fn clear_options(&mut self, clear: u64) -> u64 { self.raw_options &= !clear; self.raw_options