checkpoint: integrate authenticated transports
This commit is contained in:
1 parent
313ab00765
commit
586ff8f223
42 files changed
+6277
-771
No files matched your search
+32
-7
@@ -1,12 +1,10 @@
|
||||
#[path = "../src/transport/http3.rs"]
|
||||
mod http3;
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
use http3::{
|
||||
decode_capsule, decode_http_datagram, encode_auth_challenge, encode_auth_response,
|
||||
encode_capsule, encode_http_datagram, validate_connect_udp_request, AuthChallenge,
|
||||
ConnectUdpRequest, Http3Error, CONNECT_UDP_CONTEXT_ID,
|
||||
use wgcloak::transport::http3;
|
||||
use wgcloak::transport::http3::{
|
||||
decode_auth_challenge, decode_capsule, decode_http_datagram, encode_auth_challenge,
|
||||
encode_auth_response, encode_capsule, encode_http_datagram, validate_connect_udp_request,
|
||||
AuthChallenge, ConnectUdpRequest, Http3Error, CONNECT_UDP_CONTEXT_ID,
|
||||
};
|
||||
|
||||
#[test]
|
||||
@@ -78,6 +76,10 @@ fn authentication_is_completed_before_session_activation() {
|
||||
let nonce = [5u8; 16];
|
||||
let secret = [7u8; 32];
|
||||
let challenge_capsule = encode_auth_challenge(&challenge).unwrap();
|
||||
assert_eq!(
|
||||
decode_auth_challenge(&challenge_capsule).unwrap(),
|
||||
challenge
|
||||
);
|
||||
assert_eq!(
|
||||
decode_capsule(&challenge_capsule).unwrap().0,
|
||||
http3::AUTH_CHALLENGE_CAPSULE
|
||||
@@ -94,3 +96,26 @@ fn authentication_is_completed_before_session_activation() {
|
||||
assert!(http3::is_auth_accept(&http3::encode_auth_accept().unwrap()).unwrap());
|
||||
assert!(!http3::is_auth_accept(&http3::encode_auth_reject().unwrap()).unwrap());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn datagram_limit_includes_http_context_and_request_stream_overhead() {
|
||||
use h3::quic::StreamId;
|
||||
|
||||
let limit = http3::maximum_application_datagram(
|
||||
1200,
|
||||
StreamId::try_from(0).unwrap(),
|
||||
CONNECT_UDP_CONTEXT_ID,
|
||||
1200,
|
||||
)
|
||||
.unwrap();
|
||||
assert_eq!(limit, 1198);
|
||||
assert!(matches!(
|
||||
http3::maximum_application_datagram(
|
||||
2,
|
||||
StreamId::try_from(0).unwrap(),
|
||||
CONNECT_UDP_CONTEXT_ID,
|
||||
1200
|
||||
),
|
||||
Ok(0)
|
||||
));
|
||||
}
|
||||
Reference in new issue
Block a user