mirror of https://github.com/ctz/rustls
quic: move Quic state into quic module
This commit is contained in:
parent
c92bbfc28d
commit
747810a41f
|
@ -1,5 +1,3 @@
|
|||
#[cfg(feature = "quic")]
|
||||
use crate::conn::Quic;
|
||||
use crate::conn::{Connection, ConnectionCommon, IoState, PlaintextSink, Reader, Writer};
|
||||
use crate::error::Error;
|
||||
use crate::key;
|
||||
|
@ -16,7 +14,7 @@ use crate::msgs::handshake::CertificatePayload;
|
|||
#[cfg(feature = "quic")]
|
||||
use crate::msgs::handshake::ClientExtension;
|
||||
#[cfg(feature = "quic")]
|
||||
use crate::quic;
|
||||
use crate::quic::{self, Quic};
|
||||
use crate::sign;
|
||||
use crate::suites::SupportedCipherSuite;
|
||||
use crate::verify;
|
||||
|
|
|
@ -14,6 +14,8 @@ use crate::msgs::hsjoiner::HandshakeJoiner;
|
|||
use crate::msgs::message::{BorrowedOpaqueMessage, Message, MessagePayload, OpaqueMessage};
|
||||
use crate::prf;
|
||||
use crate::quic;
|
||||
#[cfg(feature = "quic")]
|
||||
use crate::quic::Quic;
|
||||
use crate::rand;
|
||||
use crate::record_layer;
|
||||
use crate::suites::{SupportedCipherSuite, Tls12CipherSuite};
|
||||
|
@ -1077,31 +1079,3 @@ pub enum MessageType {
|
|||
Handshake,
|
||||
Data(Message),
|
||||
}
|
||||
|
||||
#[cfg(feature = "quic")]
|
||||
pub(crate) struct Quic {
|
||||
/// QUIC transport parameters received from the peer during the handshake
|
||||
pub params: Option<Vec<u8>>,
|
||||
pub alert: Option<AlertDescription>,
|
||||
pub hs_queue: VecDeque<(bool, Vec<u8>)>,
|
||||
pub early_secret: Option<ring::hkdf::Prk>,
|
||||
pub hs_secrets: Option<quic::Secrets>,
|
||||
pub traffic_secrets: Option<quic::Secrets>,
|
||||
/// Whether keys derived from traffic_secrets have been passed to the QUIC implementation
|
||||
pub returned_traffic_keys: bool,
|
||||
}
|
||||
|
||||
#[cfg(feature = "quic")]
|
||||
impl Quic {
|
||||
pub fn new() -> Self {
|
||||
Self {
|
||||
params: None,
|
||||
alert: None,
|
||||
hs_queue: VecDeque::new(),
|
||||
early_secret: None,
|
||||
hs_secrets: None,
|
||||
traffic_secrets: None,
|
||||
returned_traffic_keys: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
/// This module contains optional APIs for implementing QUIC TLS.
|
||||
pub use crate::client::ClientQuicExt;
|
||||
use crate::conn::Quic;
|
||||
use crate::error::Error;
|
||||
use crate::key_schedule::hkdf_expand;
|
||||
use crate::msgs::base::Payload;
|
||||
|
@ -12,6 +11,8 @@ use crate::suites::{BulkAlgorithm, SupportedCipherSuite, TLS13_AES_128_GCM_SHA25
|
|||
|
||||
use ring::{aead, hkdf};
|
||||
|
||||
use std::collections::VecDeque;
|
||||
|
||||
/// Secrets used to encrypt/decrypt traffic
|
||||
#[derive(Clone, Debug)]
|
||||
pub(crate) struct Secrets {
|
||||
|
@ -185,6 +186,34 @@ impl Keys {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "quic")]
|
||||
pub(crate) struct Quic {
|
||||
/// QUIC transport parameters received from the peer during the handshake
|
||||
pub params: Option<Vec<u8>>,
|
||||
pub alert: Option<AlertDescription>,
|
||||
pub hs_queue: VecDeque<(bool, Vec<u8>)>,
|
||||
pub early_secret: Option<ring::hkdf::Prk>,
|
||||
pub hs_secrets: Option<Secrets>,
|
||||
pub traffic_secrets: Option<Secrets>,
|
||||
/// Whether keys derived from traffic_secrets have been passed to the QUIC implementation
|
||||
pub returned_traffic_keys: bool,
|
||||
}
|
||||
|
||||
#[cfg(feature = "quic")]
|
||||
impl Quic {
|
||||
pub(crate) fn new() -> Self {
|
||||
Self {
|
||||
params: None,
|
||||
alert: None,
|
||||
hs_queue: VecDeque::new(),
|
||||
early_secret: None,
|
||||
hs_secrets: None,
|
||||
traffic_secrets: None,
|
||||
returned_traffic_keys: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn read_hs(
|
||||
plaintext: &[u8],
|
||||
joiner: &mut HandshakeJoiner,
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
#[cfg(feature = "quic")]
|
||||
use crate::conn::Quic;
|
||||
use crate::conn::{Connection, ConnectionCommon, IoState, PlaintextSink, Reader, Writer};
|
||||
use crate::error::Error;
|
||||
use crate::key;
|
||||
|
@ -11,7 +9,7 @@ use crate::msgs::enums::ProtocolVersion;
|
|||
use crate::msgs::enums::SignatureScheme;
|
||||
use crate::msgs::handshake::ServerExtension;
|
||||
#[cfg(feature = "quic")]
|
||||
use crate::quic;
|
||||
use crate::quic::{self, Quic};
|
||||
use crate::sign;
|
||||
use crate::suites::SupportedCipherSuite;
|
||||
use crate::verify;
|
||||
|
|
Loading…
Reference in New Issue