Move internal enums to public API

These enums (AlertDescription, ContentType, and HandshakeType) were
previously only available as part of the private API.  Eight months ago
we added a public reexport of their names, but did not remove the
private version to avoid semver breakage.

Now that we have a semver-incompatible version coming up we can move
these fully to the public API.
This commit is contained in:
Jacob Hoffman-Andrews 2023-03-21 12:10:26 -07:00 committed by ctz
parent 1538c460b8
commit a44d1669fd
27 changed files with 148 additions and 144 deletions

View File

@ -1,7 +1,7 @@
use crate::enums::{ContentType, HandshakeType};
use crate::error::Error; use crate::error::Error;
#[cfg(feature = "logging")] #[cfg(feature = "logging")]
use crate::log::warn; use crate::log::warn;
use crate::msgs::enums::{ContentType, HandshakeType};
use crate::msgs::message::MessagePayload; use crate::msgs::message::MessagePayload;
/// For a Message $m, and a HandshakePayload enum member $payload_type, /// For a Message $m, and a HandshakePayload enum member $payload_type,
@ -17,7 +17,7 @@ macro_rules! require_handshake_msg(
}, .. } => Ok(hm), }, .. } => Ok(hm),
payload => Err($crate::check::inappropriate_handshake_message( payload => Err($crate::check::inappropriate_handshake_message(
payload, payload,
&[$crate::msgs::enums::ContentType::Handshake], &[$crate::ContentType::Handshake],
&[$handshake_type])) &[$handshake_type]))
} }
) )
@ -35,7 +35,7 @@ macro_rules! require_handshake_msg_move(
payload => payload =>
Err($crate::check::inappropriate_handshake_message( Err($crate::check::inappropriate_handshake_message(
&payload, &payload,
&[$crate::msgs::enums::ContentType::Handshake], &[$crate::ContentType::Handshake],
&[$handshake_type])) &[$handshake_type]))
} }
) )

View File

@ -7,7 +7,7 @@ use crate::kx::SupportedKxGroup;
use crate::log::trace; use crate::log::trace;
#[cfg(feature = "quic")] #[cfg(feature = "quic")]
use crate::msgs::enums::AlertDescription; use crate::enums::AlertDescription;
use crate::msgs::enums::NamedGroup; use crate::msgs::enums::NamedGroup;
use crate::msgs::handshake::ClientExtension; use crate::msgs::handshake::ClientExtension;
use crate::msgs::persist; use crate::msgs::persist;

View File

@ -2,6 +2,7 @@
use crate::bs_debug; use crate::bs_debug;
use crate::check::inappropriate_handshake_message; use crate::check::inappropriate_handshake_message;
use crate::conn::{CommonState, ConnectionRandoms, State}; use crate::conn::{CommonState, ConnectionRandoms, State};
use crate::enums::{AlertDescription, ContentType, HandshakeType};
use crate::enums::{CipherSuite, ProtocolVersion}; use crate::enums::{CipherSuite, ProtocolVersion};
use crate::error::{Error, PeerIncompatible, PeerMisbehaved}; use crate::error::{Error, PeerIncompatible, PeerMisbehaved};
use crate::hash_hs::HandshakeHashBuffer; use crate::hash_hs::HandshakeHashBuffer;
@ -9,9 +10,8 @@ use crate::kx;
#[cfg(feature = "logging")] #[cfg(feature = "logging")]
use crate::log::{debug, trace}; use crate::log::{debug, trace};
use crate::msgs::base::Payload; use crate::msgs::base::Payload;
use crate::msgs::enums::{AlertDescription, Compression, ContentType}; use crate::msgs::enums::{Compression, ExtensionType};
use crate::msgs::enums::{ECPointFormat, PSKKeyExchangeMode}; use crate::msgs::enums::{ECPointFormat, PSKKeyExchangeMode};
use crate::msgs::enums::{ExtensionType, HandshakeType};
use crate::msgs::handshake::{CertificateStatusRequest, ClientSessionTicket, SCTList}; use crate::msgs::handshake::{CertificateStatusRequest, ClientSessionTicket, SCTList};
use crate::msgs::handshake::{ClientExtension, HasServerExtensions}; use crate::msgs::handshake::{ClientExtension, HasServerExtensions};
use crate::msgs::handshake::{ClientHelloPayload, HandshakeMessagePayload, HandshakePayload}; use crate::msgs::handshake::{ClientHelloPayload, HandshakeMessagePayload, HandshakePayload};

View File

@ -1,6 +1,7 @@
use crate::check::{inappropriate_handshake_message, inappropriate_message}; use crate::check::{inappropriate_handshake_message, inappropriate_message};
use crate::conn::{self, CommonState, ConnectionRandoms, Side, State}; use crate::conn::{self, CommonState, ConnectionRandoms, Side, State};
use crate::enums::ProtocolVersion; use crate::enums::ProtocolVersion;
use crate::enums::{AlertDescription, ContentType, HandshakeType};
use crate::error::{Error, InvalidMessage, PeerMisbehaved}; use crate::error::{Error, InvalidMessage, PeerMisbehaved};
use crate::hash_hs::HandshakeHash; use crate::hash_hs::HandshakeHash;
#[cfg(feature = "logging")] #[cfg(feature = "logging")]
@ -8,8 +9,6 @@ use crate::log::{debug, trace, warn};
use crate::msgs::base::{Payload, PayloadU8}; use crate::msgs::base::{Payload, PayloadU8};
use crate::msgs::ccs::ChangeCipherSpecPayload; use crate::msgs::ccs::ChangeCipherSpecPayload;
use crate::msgs::codec::Codec; use crate::msgs::codec::Codec;
use crate::msgs::enums::AlertDescription;
use crate::msgs::enums::{ContentType, HandshakeType};
use crate::msgs::handshake::{ use crate::msgs::handshake::{
CertificatePayload, DecomposedSignatureScheme, DigitallySignedStruct, HandshakeMessagePayload, CertificatePayload, DecomposedSignatureScheme, DigitallySignedStruct, HandshakeMessagePayload,
HandshakePayload, NewSessionTicketPayload, SCTList, ServerECDHParams, SessionID, HandshakePayload, NewSessionTicketPayload, SCTList, ServerECDHParams, SessionID,

View File

@ -4,6 +4,7 @@ use crate::conn::Protocol;
#[cfg(feature = "secret_extraction")] #[cfg(feature = "secret_extraction")]
use crate::conn::Side; use crate::conn::Side;
use crate::conn::{self, CommonState, ConnectionRandoms, State}; use crate::conn::{self, CommonState, ConnectionRandoms, State};
use crate::enums::{AlertDescription, ContentType, HandshakeType};
use crate::enums::{ProtocolVersion, SignatureScheme}; use crate::enums::{ProtocolVersion, SignatureScheme};
use crate::error::{Error, InvalidMessage, PeerIncompatible, PeerMisbehaved}; use crate::error::{Error, InvalidMessage, PeerIncompatible, PeerMisbehaved};
use crate::hash_hs::{HandshakeHash, HandshakeHashBuffer}; use crate::hash_hs::{HandshakeHash, HandshakeHashBuffer};
@ -12,9 +13,8 @@ use crate::kx;
use crate::log::{debug, trace, warn}; use crate::log::{debug, trace, warn};
use crate::msgs::base::{Payload, PayloadU8}; use crate::msgs::base::{Payload, PayloadU8};
use crate::msgs::ccs::ChangeCipherSpecPayload; use crate::msgs::ccs::ChangeCipherSpecPayload;
use crate::msgs::enums::AlertDescription; use crate::msgs::enums::ExtensionType;
use crate::msgs::enums::KeyUpdateRequest; use crate::msgs::enums::KeyUpdateRequest;
use crate::msgs::enums::{ContentType, ExtensionType, HandshakeType};
use crate::msgs::handshake::ClientExtension; use crate::msgs::handshake::ClientExtension;
use crate::msgs::handshake::DigitallySignedStruct; use crate::msgs::handshake::DigitallySignedStruct;
use crate::msgs::handshake::EncryptedExtensions; use crate::msgs::handshake::EncryptedExtensions;

View File

@ -1,4 +1,5 @@
use crate::enums::ProtocolVersion; use crate::enums::ProtocolVersion;
use crate::enums::{AlertDescription, ContentType, HandshakeType};
use crate::error::{Error, InvalidMessage, PeerMisbehaved}; use crate::error::{Error, InvalidMessage, PeerMisbehaved};
use crate::key; use crate::key;
#[cfg(feature = "logging")] #[cfg(feature = "logging")]
@ -6,8 +7,7 @@ use crate::log::{debug, error, trace, warn};
use crate::msgs::alert::AlertMessagePayload; use crate::msgs::alert::AlertMessagePayload;
use crate::msgs::base::Payload; use crate::msgs::base::Payload;
use crate::msgs::deframer::{Deframed, MessageDeframer}; use crate::msgs::deframer::{Deframed, MessageDeframer};
use crate::msgs::enums::{AlertDescription, AlertLevel, ContentType}; use crate::msgs::enums::{AlertLevel, KeyUpdateRequest};
use crate::msgs::enums::{HandshakeType, KeyUpdateRequest};
use crate::msgs::fragmenter::MessageFragmenter; use crate::msgs::fragmenter::MessageFragmenter;
use crate::msgs::handshake::Random; use crate::msgs::handshake::Random;
use crate::msgs::message::{ use crate::msgs::message::{

View File

@ -2,6 +2,94 @@
#![allow(missing_docs)] #![allow(missing_docs)]
use crate::msgs::codec::{Codec, Reader}; use crate::msgs::codec::{Codec, Reader};
enum_builder! {
/// The `AlertDescription` TLS protocol enum. Values in this enum are taken
/// from the various RFCs covering TLS, and are listed by IANA.
/// The `Unknown` item is used when processing unrecognised ordinals.
@U8
EnumName: AlertDescription;
EnumVal{
CloseNotify => 0x00,
UnexpectedMessage => 0x0a,
BadRecordMac => 0x14,
DecryptionFailed => 0x15,
RecordOverflow => 0x16,
DecompressionFailure => 0x1e,
HandshakeFailure => 0x28,
NoCertificate => 0x29,
BadCertificate => 0x2a,
UnsupportedCertificate => 0x2b,
CertificateRevoked => 0x2c,
CertificateExpired => 0x2d,
CertificateUnknown => 0x2e,
IllegalParameter => 0x2f,
UnknownCA => 0x30,
AccessDenied => 0x31,
DecodeError => 0x32,
DecryptError => 0x33,
ExportRestriction => 0x3c,
ProtocolVersion => 0x46,
InsufficientSecurity => 0x47,
InternalError => 0x50,
InappropriateFallback => 0x56,
UserCanceled => 0x5a,
NoRenegotiation => 0x64,
MissingExtension => 0x6d,
UnsupportedExtension => 0x6e,
CertificateUnobtainable => 0x6f,
UnrecognisedName => 0x70,
BadCertificateStatusResponse => 0x71,
BadCertificateHashValue => 0x72,
UnknownPSKIdentity => 0x73,
CertificateRequired => 0x74,
NoApplicationProtocol => 0x78
}
}
enum_builder! {
/// The `HandshakeType` TLS protocol enum. Values in this enum are taken
/// from the various RFCs covering TLS, and are listed by IANA.
/// The `Unknown` item is used when processing unrecognised ordinals.
@U8
EnumName: HandshakeType;
EnumVal{
HelloRequest => 0x00,
ClientHello => 0x01,
ServerHello => 0x02,
HelloVerifyRequest => 0x03,
NewSessionTicket => 0x04,
EndOfEarlyData => 0x05,
HelloRetryRequest => 0x06,
EncryptedExtensions => 0x08,
Certificate => 0x0b,
ServerKeyExchange => 0x0c,
CertificateRequest => 0x0d,
ServerHelloDone => 0x0e,
CertificateVerify => 0x0f,
ClientKeyExchange => 0x10,
Finished => 0x14,
CertificateURL => 0x15,
CertificateStatus => 0x16,
KeyUpdate => 0x18,
MessageHash => 0xfe
}
}
enum_builder! {
/// The `ContentType` TLS protocol enum. Values in this enum are taken
/// from the various RFCs covering TLS, and are listed by IANA.
/// The `Unknown` item is used when processing unrecognised ordinals.
@U8
EnumName: ContentType;
EnumVal{
ChangeCipherSpec => 0x14,
Alert => 0x15,
Handshake => 0x16,
ApplicationData => 0x17,
Heartbeat => 0x18
}
}
enum_builder! { enum_builder! {
/// The `ProtocolVersion` TLS protocol enum. Values in this enum are taken /// The `ProtocolVersion` TLS protocol enum. Values in this enum are taken
/// from the various RFCs covering TLS, and are listed by IANA. /// from the various RFCs covering TLS, and are listed by IANA.

View File

@ -1,7 +1,5 @@
use crate::msgs::enums::{ use crate::enums::{AlertDescription, ContentType, HandshakeType};
AlertDescription, CertificateStatusType, ContentType, ECCurveType, HandshakeType, use crate::msgs::enums::{CertificateStatusType, ECCurveType, KeyUpdateRequest};
KeyUpdateRequest,
};
use crate::msgs::handshake::KeyExchangeAlgorithm; use crate::msgs::handshake::KeyExchangeAlgorithm;
use crate::rand; use crate::rand;
@ -437,7 +435,7 @@ mod tests {
#[test] #[test]
fn smoke() { fn smoke() {
use crate::msgs::enums::{AlertDescription, ContentType, HandshakeType}; use crate::enums::{AlertDescription, ContentType, HandshakeType};
use sct; use sct;
let all = vec![ let all = vec![

View File

@ -370,15 +370,15 @@ pub use crate::builder::{
pub use crate::conn::{ pub use crate::conn::{
CommonState, Connection, ConnectionCommon, IoState, Reader, Side, SideData, Writer, CommonState, Connection, ConnectionCommon, IoState, Reader, Side, SideData, Writer,
}; };
pub use crate::enums::{CipherSuite, ProtocolVersion, SignatureScheme}; pub use crate::enums::{
AlertDescription, CipherSuite, ContentType, HandshakeType, ProtocolVersion, SignatureScheme,
};
pub use crate::error::{CertificateError, Error, InvalidMessage, PeerIncompatible, PeerMisbehaved}; pub use crate::error::{CertificateError, Error, InvalidMessage, PeerIncompatible, PeerMisbehaved};
pub use crate::key::{Certificate, PrivateKey}; pub use crate::key::{Certificate, PrivateKey};
pub use crate::key_log::{KeyLog, NoKeyLog}; pub use crate::key_log::{KeyLog, NoKeyLog};
pub use crate::key_log_file::KeyLogFile; pub use crate::key_log_file::KeyLogFile;
pub use crate::kx::{SupportedKxGroup, ALL_KX_GROUPS}; pub use crate::kx::{SupportedKxGroup, ALL_KX_GROUPS};
pub use crate::msgs::enums::{ pub use crate::msgs::enums::{NamedGroup, SignatureAlgorithm};
AlertDescription, ContentType, HandshakeType, NamedGroup, SignatureAlgorithm,
};
pub use crate::msgs::handshake::{DigitallySignedStruct, DistinguishedNames}; pub use crate::msgs::handshake::{DigitallySignedStruct, DistinguishedNames};
pub use crate::stream::{Stream, StreamOwned}; pub use crate::stream::{Stream, StreamOwned};
pub use crate::suites::{ pub use crate::suites::{

View File

@ -1,6 +1,7 @@
use crate::enums::AlertDescription;
use crate::error::InvalidMessage; use crate::error::InvalidMessage;
use crate::msgs::codec::{Codec, Reader}; use crate::msgs::codec::{Codec, Reader};
use crate::msgs::enums::{AlertDescription, AlertLevel}; use crate::msgs::enums::AlertLevel;
#[derive(Debug)] #[derive(Debug)]
pub struct AlertMessagePayload { pub struct AlertMessagePayload {

View File

@ -3,9 +3,8 @@ use std::ops::Range;
use super::base::Payload; use super::base::Payload;
use super::codec::Codec; use super::codec::Codec;
use super::enums::ContentType;
use super::message::PlainMessage; use super::message::PlainMessage;
use crate::enums::ProtocolVersion; use crate::enums::{ContentType, ProtocolVersion};
use crate::error::{Error, InvalidMessage, PeerMisbehaved}; use crate::error::{Error, InvalidMessage, PeerMisbehaved};
use crate::msgs::codec; use crate::msgs::codec;
use crate::msgs::message::{MessageError, OpaqueMessage}; use crate::msgs::message::{MessageError, OpaqueMessage};

View File

@ -69,50 +69,6 @@ enum_builder! {
} }
} }
enum_builder! {
/// The `ContentType` TLS protocol enum. Values in this enum are taken
/// from the various RFCs covering TLS, and are listed by IANA.
/// The `Unknown` item is used when processing unrecognised ordinals.
@U8
EnumName: ContentType;
EnumVal{
ChangeCipherSpec => 0x14,
Alert => 0x15,
Handshake => 0x16,
ApplicationData => 0x17,
Heartbeat => 0x18
}
}
enum_builder! {
/// The `HandshakeType` TLS protocol enum. Values in this enum are taken
/// from the various RFCs covering TLS, and are listed by IANA.
/// The `Unknown` item is used when processing unrecognised ordinals.
@U8
EnumName: HandshakeType;
EnumVal{
HelloRequest => 0x00,
ClientHello => 0x01,
ServerHello => 0x02,
HelloVerifyRequest => 0x03,
NewSessionTicket => 0x04,
EndOfEarlyData => 0x05,
HelloRetryRequest => 0x06,
EncryptedExtensions => 0x08,
Certificate => 0x0b,
ServerKeyExchange => 0x0c,
CertificateRequest => 0x0d,
ServerHelloDone => 0x0e,
CertificateVerify => 0x0f,
ClientKeyExchange => 0x10,
Finished => 0x14,
CertificateURL => 0x15,
CertificateStatus => 0x16,
KeyUpdate => 0x18,
MessageHash => 0xfe
}
}
enum_builder! { enum_builder! {
/// The `AlertLevel` TLS protocol enum. Values in this enum are taken /// The `AlertLevel` TLS protocol enum. Values in this enum are taken
/// from the various RFCs covering TLS, and are listed by IANA. /// from the various RFCs covering TLS, and are listed by IANA.
@ -125,50 +81,6 @@ enum_builder! {
} }
} }
enum_builder! {
/// The `AlertDescription` TLS protocol enum. Values in this enum are taken
/// from the various RFCs covering TLS, and are listed by IANA.
/// The `Unknown` item is used when processing unrecognised ordinals.
@U8
EnumName: AlertDescription;
EnumVal{
CloseNotify => 0x00,
UnexpectedMessage => 0x0a,
BadRecordMac => 0x14,
DecryptionFailed => 0x15,
RecordOverflow => 0x16,
DecompressionFailure => 0x1e,
HandshakeFailure => 0x28,
NoCertificate => 0x29,
BadCertificate => 0x2a,
UnsupportedCertificate => 0x2b,
CertificateRevoked => 0x2c,
CertificateExpired => 0x2d,
CertificateUnknown => 0x2e,
IllegalParameter => 0x2f,
UnknownCA => 0x30,
AccessDenied => 0x31,
DecodeError => 0x32,
DecryptError => 0x33,
ExportRestriction => 0x3c,
ProtocolVersion => 0x46,
InsufficientSecurity => 0x47,
InternalError => 0x50,
InappropriateFallback => 0x56,
UserCanceled => 0x5a,
NoRenegotiation => 0x64,
MissingExtension => 0x6d,
UnsupportedExtension => 0x6e,
CertificateUnobtainable => 0x6f,
UnrecognisedName => 0x70,
BadCertificateStatusResponse => 0x71,
BadCertificateHashValue => 0x72,
UnknownPSKIdentity => 0x73,
CertificateRequired => 0x74,
NoApplicationProtocol => 0x78
}
}
enum_builder! { enum_builder! {
/// The `HeartbeatMessageType` TLS protocol enum. Values in this enum are taken /// The `HeartbeatMessageType` TLS protocol enum. Values in this enum are taken
/// from the various RFCs covering TLS, and are listed by IANA. /// from the various RFCs covering TLS, and are listed by IANA.

View File

@ -52,12 +52,18 @@ fn test_enums() {
ClientCertificateType::ECDSAFixedECDH, ClientCertificateType::ECDSAFixedECDH,
); );
test_enum8::<Compression>(Compression::Null, Compression::LSZ); test_enum8::<Compression>(Compression::Null, Compression::LSZ);
test_enum8::<ContentType>(ContentType::ChangeCipherSpec, ContentType::Heartbeat); test_enum8::<crate::ContentType>(
test_enum8::<HandshakeType>(HandshakeType::HelloRequest, HandshakeType::MessageHash); crate::ContentType::ChangeCipherSpec,
crate::ContentType::Heartbeat,
);
test_enum8::<crate::HandshakeType>(
crate::HandshakeType::HelloRequest,
crate::HandshakeType::MessageHash,
);
test_enum8::<AlertLevel>(AlertLevel::Warning, AlertLevel::Fatal); test_enum8::<AlertLevel>(AlertLevel::Warning, AlertLevel::Fatal);
test_enum8::<AlertDescription>( test_enum8::<crate::AlertDescription>(
AlertDescription::CloseNotify, crate::AlertDescription::CloseNotify,
AlertDescription::NoApplicationProtocol, crate::AlertDescription::NoApplicationProtocol,
); );
test_enum8::<HeartbeatMessageType>( test_enum8::<HeartbeatMessageType>(
HeartbeatMessageType::Request, HeartbeatMessageType::Request,

View File

@ -1,5 +1,5 @@
use crate::enums::ContentType;
use crate::enums::ProtocolVersion; use crate::enums::ProtocolVersion;
use crate::msgs::enums::ContentType;
use crate::msgs::message::{BorrowedPlainMessage, PlainMessage}; use crate::msgs::message::{BorrowedPlainMessage, PlainMessage};
use crate::Error; use crate::Error;
pub const MAX_FRAGMENT_LEN: usize = 16384; pub const MAX_FRAGMENT_LEN: usize = 16384;
@ -68,9 +68,9 @@ impl MessageFragmenter {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::{MessageFragmenter, PACKET_OVERHEAD}; use super::{MessageFragmenter, PACKET_OVERHEAD};
use crate::enums::ContentType;
use crate::enums::ProtocolVersion; use crate::enums::ProtocolVersion;
use crate::msgs::base::Payload; use crate::msgs::base::Payload;
use crate::msgs::enums::ContentType;
use crate::msgs::message::{BorrowedPlainMessage, PlainMessage}; use crate::msgs::message::{BorrowedPlainMessage, PlainMessage};
fn msg_eq( fn msg_eq(

View File

@ -1,5 +1,5 @@
#![allow(non_camel_case_types)] #![allow(non_camel_case_types)]
use crate::enums::{CipherSuite, ProtocolVersion, SignatureScheme}; use crate::enums::{CipherSuite, HandshakeType, ProtocolVersion, SignatureScheme};
use crate::error::InvalidMessage; use crate::error::InvalidMessage;
use crate::key; use crate::key;
use crate::msgs::base::{Payload, PayloadU16, PayloadU24, PayloadU8}; use crate::msgs::base::{Payload, PayloadU16, PayloadU24, PayloadU8};
@ -7,8 +7,8 @@ use crate::msgs::codec;
use crate::msgs::codec::{Codec, Reader}; use crate::msgs::codec::{Codec, Reader};
use crate::msgs::enums::{ use crate::msgs::enums::{
CertificateStatusType, ClientCertificateType, Compression, ECCurveType, ECPointFormat, CertificateStatusType, ClientCertificateType, Compression, ECCurveType, ECPointFormat,
ExtensionType, HandshakeType, HashAlgorithm, KeyUpdateRequest, NamedGroup, PSKKeyExchangeMode, ExtensionType, HashAlgorithm, KeyUpdateRequest, NamedGroup, PSKKeyExchangeMode, ServerNameType,
ServerNameType, SignatureAlgorithm, SignatureAlgorithm,
}; };
use crate::rand; use crate::rand;

View File

@ -1,9 +1,9 @@
use crate::enums::{CipherSuite, ProtocolVersion, SignatureScheme}; use crate::enums::{CipherSuite, HandshakeType, ProtocolVersion, SignatureScheme};
use crate::key::Certificate; use crate::key::Certificate;
use crate::msgs::base::{Payload, PayloadU16, PayloadU24, PayloadU8}; use crate::msgs::base::{Payload, PayloadU16, PayloadU24, PayloadU8};
use crate::msgs::codec::{put_u16, Codec, Reader}; use crate::msgs::codec::{put_u16, Codec, Reader};
use crate::msgs::enums::{ use crate::msgs::enums::{
ClientCertificateType, Compression, ECCurveType, ExtensionType, HandshakeType, HashAlgorithm, ClientCertificateType, Compression, ECCurveType, ExtensionType, HashAlgorithm,
KeyUpdateRequest, NamedGroup, PSKKeyExchangeMode, ServerNameType, SignatureAlgorithm, KeyUpdateRequest, NamedGroup, PSKKeyExchangeMode, ServerNameType, SignatureAlgorithm,
}; };
use crate::msgs::handshake::{ use crate::msgs::handshake::{

View File

@ -1,10 +1,11 @@
use crate::enums::ProtocolVersion; use crate::enums::ProtocolVersion;
use crate::enums::{AlertDescription, ContentType, HandshakeType};
use crate::error::{Error, InvalidMessage}; use crate::error::{Error, InvalidMessage};
use crate::msgs::alert::AlertMessagePayload; use crate::msgs::alert::AlertMessagePayload;
use crate::msgs::base::Payload; use crate::msgs::base::Payload;
use crate::msgs::ccs::ChangeCipherSpecPayload; use crate::msgs::ccs::ChangeCipherSpecPayload;
use crate::msgs::codec::{Codec, Reader}; use crate::msgs::codec::{Codec, Reader};
use crate::msgs::enums::{AlertDescription, AlertLevel, ContentType, HandshakeType}; use crate::msgs::enums::AlertLevel;
use crate::msgs::handshake::HandshakeMessagePayload; use crate::msgs::handshake::HandshakeMessagePayload;
#[derive(Debug)] #[derive(Debug)]

View File

@ -1,8 +1,9 @@
use crate::enums::{AlertDescription, HandshakeType};
use crate::msgs::base::{PayloadU16, PayloadU24, PayloadU8}; use crate::msgs::base::{PayloadU16, PayloadU24, PayloadU8};
use super::base::Payload; use super::base::Payload;
use super::codec::Reader; use super::codec::Reader;
use super::enums::{AlertDescription, AlertLevel, HandshakeType}; use super::enums::AlertLevel;
use super::message::{Message, OpaqueMessage, PlainMessage}; use super::message::{Message, OpaqueMessage, PlainMessage};
use std::fs; use std::fs;

View File

@ -2,8 +2,8 @@
use crate::cipher::{Iv, IvLen}; use crate::cipher::{Iv, IvLen};
pub use crate::client::ClientQuicExt; pub use crate::client::ClientQuicExt;
use crate::conn::{CommonState, Side}; use crate::conn::{CommonState, Side};
use crate::enums::AlertDescription;
use crate::error::Error; use crate::error::Error;
use crate::msgs::enums::AlertDescription;
pub use crate::server::ServerQuicExt; pub use crate::server::ServerQuicExt;
use crate::suites::BulkAlgorithm; use crate::suites::BulkAlgorithm;
use crate::tls13::key_schedule::hkdf_expand; use crate::tls13::key_schedule::hkdf_expand;

View File

@ -1,13 +1,12 @@
use crate::conn::{CommonState, ConnectionRandoms, State}; use crate::conn::{CommonState, ConnectionRandoms, State};
#[cfg(feature = "tls12")] #[cfg(feature = "tls12")]
use crate::enums::CipherSuite; use crate::enums::CipherSuite;
use crate::enums::{ProtocolVersion, SignatureScheme}; use crate::enums::{AlertDescription, HandshakeType, ProtocolVersion, SignatureScheme};
use crate::error::{Error, PeerIncompatible, PeerMisbehaved}; use crate::error::{Error, PeerIncompatible, PeerMisbehaved};
use crate::hash_hs::{HandshakeHash, HandshakeHashBuffer}; use crate::hash_hs::{HandshakeHash, HandshakeHashBuffer};
#[cfg(feature = "logging")] #[cfg(feature = "logging")]
use crate::log::{debug, trace}; use crate::log::{debug, trace};
use crate::msgs::enums::HandshakeType; use crate::msgs::enums::{Compression, ExtensionType};
use crate::msgs::enums::{AlertDescription, Compression, ExtensionType};
#[cfg(feature = "tls12")] #[cfg(feature = "tls12")]
use crate::msgs::handshake::SessionID; use crate::msgs::handshake::SessionID;
use crate::msgs::handshake::{ClientHelloPayload, Random, ServerExtension}; use crate::msgs::handshake::{ClientHelloPayload, Random, ServerExtension};

View File

@ -1,13 +1,13 @@
use crate::builder::{ConfigBuilder, WantsCipherSuites}; use crate::builder::{ConfigBuilder, WantsCipherSuites};
use crate::conn::{CommonState, ConnectionCommon, Side, State}; use crate::conn::{CommonState, ConnectionCommon, Side, State};
#[cfg(feature = "quic")]
use crate::enums::AlertDescription;
use crate::enums::{CipherSuite, ProtocolVersion, SignatureScheme}; use crate::enums::{CipherSuite, ProtocolVersion, SignatureScheme};
use crate::error::Error; use crate::error::Error;
use crate::kx::SupportedKxGroup; use crate::kx::SupportedKxGroup;
#[cfg(feature = "logging")] #[cfg(feature = "logging")]
use crate::log::trace; use crate::log::trace;
use crate::msgs::base::{Payload, PayloadU8}; use crate::msgs::base::{Payload, PayloadU8};
#[cfg(feature = "quic")]
use crate::msgs::enums::AlertDescription;
use crate::msgs::handshake::{ClientHelloPayload, ServerExtension}; use crate::msgs::handshake::{ClientHelloPayload, ServerExtension};
use crate::msgs::message::Message; use crate::msgs::message::Message;
use crate::sign; use crate::sign;

View File

@ -1,6 +1,7 @@
use crate::check::inappropriate_message; use crate::check::inappropriate_message;
use crate::conn::{send_cert_verify_error_alert, CommonState, ConnectionRandoms, Side, State}; use crate::conn::{send_cert_verify_error_alert, CommonState, ConnectionRandoms, Side, State};
use crate::enums::ProtocolVersion; use crate::enums::ProtocolVersion;
use crate::enums::{AlertDescription, ContentType, HandshakeType};
use crate::error::{Error, PeerIncompatible, PeerMisbehaved}; use crate::error::{Error, PeerIncompatible, PeerMisbehaved};
use crate::hash_hs::HandshakeHash; use crate::hash_hs::HandshakeHash;
use crate::key::Certificate; use crate::key::Certificate;
@ -9,7 +10,6 @@ use crate::log::{debug, trace};
use crate::msgs::base::Payload; use crate::msgs::base::Payload;
use crate::msgs::ccs::ChangeCipherSpecPayload; use crate::msgs::ccs::ChangeCipherSpecPayload;
use crate::msgs::codec::Codec; use crate::msgs::codec::Codec;
use crate::msgs::enums::{AlertDescription, ContentType, HandshakeType};
use crate::msgs::handshake::{ClientECDHParams, HandshakeMessagePayload, HandshakePayload}; use crate::msgs::handshake::{ClientECDHParams, HandshakeMessagePayload, HandshakePayload};
use crate::msgs::handshake::{NewSessionTicketPayload, SessionID}; use crate::msgs::handshake::{NewSessionTicketPayload, SessionID};
use crate::msgs::message::{Message, MessagePayload}; use crate::msgs::message::{Message, MessagePayload};

View File

@ -3,14 +3,14 @@ use crate::check::inappropriate_handshake_message;
use crate::conn::Side; use crate::conn::Side;
use crate::conn::{send_cert_verify_error_alert, CommonState, ConnectionRandoms, State}; use crate::conn::{send_cert_verify_error_alert, CommonState, ConnectionRandoms, State};
use crate::enums::ProtocolVersion; use crate::enums::ProtocolVersion;
use crate::enums::{AlertDescription, ContentType, HandshakeType};
use crate::error::{Error, PeerIncompatible, PeerMisbehaved}; use crate::error::{Error, PeerIncompatible, PeerMisbehaved};
use crate::hash_hs::HandshakeHash; use crate::hash_hs::HandshakeHash;
use crate::key::Certificate; use crate::key::Certificate;
#[cfg(feature = "logging")] #[cfg(feature = "logging")]
use crate::log::{debug, trace, warn}; use crate::log::{debug, trace, warn};
use crate::msgs::codec::Codec; use crate::msgs::codec::Codec;
use crate::msgs::enums::{AlertDescription, KeyUpdateRequest}; use crate::msgs::enums::KeyUpdateRequest;
use crate::msgs::enums::{ContentType, HandshakeType};
use crate::msgs::handshake::HandshakeMessagePayload; use crate::msgs::handshake::HandshakeMessagePayload;
use crate::msgs::handshake::HandshakePayload; use crate::msgs::handshake::HandshakePayload;
use crate::msgs::handshake::{NewSessionTicketExtension, NewSessionTicketPayloadTLS13}; use crate::msgs::handshake::{NewSessionTicketExtension, NewSessionTicketPayloadTLS13};

View File

@ -1,9 +1,9 @@
use crate::cipher::{make_nonce, Iv, MessageDecrypter, MessageEncrypter}; use crate::cipher::{make_nonce, Iv, MessageDecrypter, MessageEncrypter};
use crate::enums::ContentType;
use crate::enums::ProtocolVersion; use crate::enums::ProtocolVersion;
use crate::error::Error; use crate::error::Error;
use crate::msgs::base::Payload; use crate::msgs::base::Payload;
use crate::msgs::codec; use crate::msgs::codec;
use crate::msgs::enums::ContentType;
use crate::msgs::fragmenter::MAX_FRAGMENT_LEN; use crate::msgs::fragmenter::MAX_FRAGMENT_LEN;
use crate::msgs::message::{BorrowedPlainMessage, OpaqueMessage, PlainMessage}; use crate::msgs::message::{BorrowedPlainMessage, OpaqueMessage, PlainMessage};

View File

@ -1,10 +1,10 @@
use crate::cipher::{MessageDecrypter, MessageEncrypter}; use crate::cipher::{MessageDecrypter, MessageEncrypter};
use crate::conn::{CommonState, ConnectionRandoms, Side}; use crate::conn::{CommonState, ConnectionRandoms, Side};
use crate::enums::AlertDescription;
use crate::enums::{CipherSuite, SignatureScheme}; use crate::enums::{CipherSuite, SignatureScheme};
use crate::error::{Error, InvalidMessage}; use crate::error::{Error, InvalidMessage};
use crate::kx; use crate::kx;
use crate::msgs::codec::{Codec, Reader}; use crate::msgs::codec::{Codec, Reader};
use crate::msgs::enums::AlertDescription;
use crate::msgs::handshake::KeyExchangeAlgorithm; use crate::msgs::handshake::KeyExchangeAlgorithm;
use crate::suites::{BulkAlgorithm, CipherSuiteCommon, SupportedCipherSuite}; use crate::suites::{BulkAlgorithm, CipherSuiteCommon, SupportedCipherSuite};
#[cfg(feature = "secret_extraction")] #[cfg(feature = "secret_extraction")]

View File

@ -1,9 +1,9 @@
use crate::cipher::{make_nonce, Iv, MessageDecrypter, MessageEncrypter}; use crate::cipher::{make_nonce, Iv, MessageDecrypter, MessageEncrypter};
use crate::enums::ContentType;
use crate::enums::{CipherSuite, ProtocolVersion}; use crate::enums::{CipherSuite, ProtocolVersion};
use crate::error::{Error, PeerMisbehaved}; use crate::error::{Error, PeerMisbehaved};
use crate::msgs::base::Payload; use crate::msgs::base::Payload;
use crate::msgs::codec::Codec; use crate::msgs::codec::Codec;
use crate::msgs::enums::ContentType;
use crate::msgs::fragmenter::MAX_FRAGMENT_LEN; use crate::msgs::fragmenter::MAX_FRAGMENT_LEN;
use crate::msgs::message::{BorrowedPlainMessage, OpaqueMessage, PlainMessage}; use crate::msgs::message::{BorrowedPlainMessage, OpaqueMessage, PlainMessage};
use crate::suites::{BulkAlgorithm, CipherSuiteCommon, SupportedCipherSuite}; use crate::suites::{BulkAlgorithm, CipherSuiteCommon, SupportedCipherSuite};

View File

@ -3354,12 +3354,12 @@ mod test_quic {
use ring::rand::SecureRandom; use ring::rand::SecureRandom;
use rustls::internal::msgs::base::PayloadU16; use rustls::internal::msgs::base::PayloadU16;
use rustls::internal::msgs::enums::{Compression, HandshakeType, NamedGroup}; use rustls::internal::msgs::enums::{Compression, NamedGroup};
use rustls::internal::msgs::handshake::{ use rustls::internal::msgs::handshake::{
ClientHelloPayload, HandshakeMessagePayload, KeyShareEntry, Random, SessionID, ClientHelloPayload, HandshakeMessagePayload, KeyShareEntry, Random, SessionID,
}; };
use rustls::internal::msgs::message::PlainMessage; use rustls::internal::msgs::message::PlainMessage;
use rustls::{CipherSuite, SignatureScheme}; use rustls::{CipherSuite, HandshakeType, SignatureScheme};
let rng = ring::rand::SystemRandom::new(); let rng = ring::rand::SystemRandom::new();
let mut random = [0; 32]; let mut random = [0; 32];
@ -3417,12 +3417,12 @@ mod test_quic {
use ring::rand::SecureRandom; use ring::rand::SecureRandom;
use rustls::internal::msgs::base::PayloadU16; use rustls::internal::msgs::base::PayloadU16;
use rustls::internal::msgs::enums::{Compression, HandshakeType, NamedGroup}; use rustls::internal::msgs::enums::{Compression, NamedGroup};
use rustls::internal::msgs::handshake::{ use rustls::internal::msgs::handshake::{
ClientHelloPayload, HandshakeMessagePayload, KeyShareEntry, Random, SessionID, ClientHelloPayload, HandshakeMessagePayload, KeyShareEntry, Random, SessionID,
}; };
use rustls::internal::msgs::message::PlainMessage; use rustls::internal::msgs::message::PlainMessage;
use rustls::{CipherSuite, SignatureScheme}; use rustls::{CipherSuite, HandshakeType, SignatureScheme};
let rng = ring::rand::SystemRandom::new(); let rng = ring::rand::SystemRandom::new();
let mut random = [0; 32]; let mut random = [0; 32];
@ -3674,9 +3674,9 @@ mod test_quic {
#[test] #[test]
fn test_client_does_not_offer_sha1() { fn test_client_does_not_offer_sha1() {
use rustls::internal::msgs::{ use rustls::internal::msgs::{
codec::Reader, enums::HandshakeType, handshake::HandshakePayload, message::MessagePayload, codec::Reader, handshake::HandshakePayload, message::MessagePayload, message::OpaqueMessage,
message::OpaqueMessage,
}; };
use rustls::HandshakeType;
for kt in ALL_KEY_TYPES.iter() { for kt in ALL_KEY_TYPES.iter() {
for version in rustls::ALL_VERSIONS { for version in rustls::ALL_VERSIONS {