Skip to content

Commit 7626cac

Browse files
committed
fix: remove slicur
1 parent cecb88b commit 7626cac

File tree

3 files changed

+14
-21
lines changed

3 files changed

+14
-21
lines changed

Cargo.lock

Lines changed: 0 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ktls/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ tokio = { version = "1.40", optional = true }
2222
nix = { version = "0.30.1", features = ["socket", "uio", "net"] }
2323
bitflags = "2.9"
2424
pin-project = "1.1"
25-
slicur = { version = "0.2.0", default-features = false, features = ["feat-u24"] }
25+
2626

2727
[dev-dependencies]
2828
rand = "0.9.2"

ktls/src/stream/context.rs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ use std::os::fd::{AsFd, AsRawFd};
55
use std::{io, mem, ops};
66

77
use rustls::client::ClientConnectionData;
8+
use rustls::internal::msgs::codec::Reader;
89
use rustls::internal::msgs::enums::AlertLevel;
910
use rustls::kernel::KernelConnection;
1011
use rustls::server::ServerConnectionData;
1112
use rustls::{
1213
AlertDescription, ConnectionTrafficSecrets, ContentType, HandshakeType, InvalidMessage,
1314
PeerMisbehaved, ProtocolVersion, SupportedCipherSuite,
1415
};
15-
use slicur::Reader;
1616

1717
use crate::protocol::{KeyUpdateRequest, KEY_UPDATE_NOT_REQUESTED, KEY_UPDATE_REQUESTED};
1818
use crate::setup::{setup_tls_params_rx, setup_tls_params_tx};
@@ -411,21 +411,24 @@ impl Context {
411411
stream: &IO,
412412
payload: &[u8],
413413
) -> io::Result<()> {
414-
fn read_message<'a>(
415-
reader: &mut Reader<'a>,
416-
) -> Result<(HandshakeType, &'a [u8]), slicur::error::InsufficientData> {
417-
let handshake_type = HandshakeType::from(reader.read_u8()?);
418-
let length = reader.read_u24()?;
419-
let payload = reader.take(length.to_usize())?;
420-
421-
Ok((handshake_type, payload))
414+
fn read_message<'a>(reader: &mut Reader<'a>) -> Option<(HandshakeType, &'a [u8])> {
415+
let &[typ, a, b, c] = reader.take(4)? else {
416+
unreachable!()
417+
};
418+
419+
let handshake_type = HandshakeType::from(typ);
420+
let length = u32::from_be_bytes([0, a, b, c]) as usize;
421+
422+
let payload = reader.take(length)?;
423+
424+
Some((handshake_type, payload))
422425
}
423426

424427
let mut reader = Reader::init(payload);
425428
let mut sub_message_count = 0;
426429

427430
loop {
428-
let Ok((handshake_type, payload)) = read_message(&mut reader) else {
431+
let Some((handshake_type, payload)) = read_message(&mut reader) else {
429432
abort_and_return_error!(
430433
self,
431434
stream,

0 commit comments

Comments
 (0)