跳到主要内容

PeerMisbehaved

枚举 PeerMisbehaved 

Source
#[non_exhaustive]
pub enum PeerMisbehaved {
Show 75 variants AttemptedDowngradeToTls12WhenTls13IsSupported, BadCertChainExtensions, DisallowedEncryptedExtension, DuplicateClientHelloExtensions, DuplicateEncryptedExtensions, DuplicateHelloRetryRequestExtensions, DuplicateNewSessionTicketExtensions, DuplicateServerHelloExtensions, DuplicateServerNameTypes, EarlyDataAttemptedInSecondClientHello, EarlyDataExtensionWithoutResumption, EarlyDataOfferedWithVariedCipherSuite, HandshakeHashVariedAfterRetry, IllegalHelloRetryRequestWithEmptyCookie, IllegalHelloRetryRequestWithNoChanges, IllegalHelloRetryRequestWithOfferedGroup, IllegalHelloRetryRequestWithUnofferedCipherSuite, IllegalHelloRetryRequestWithUnofferedNamedGroup, IllegalHelloRetryRequestWithUnsupportedVersion, IllegalHelloRetryRequestWithWrongSessionId, IllegalHelloRetryRequestWithInvalidEch, IllegalMiddleboxChangeCipherSpec, IllegalTlsInnerPlaintext, IncorrectBinder, InvalidCertCompression, InvalidMaxEarlyDataSize, InvalidKeyShare, KeyEpochWithPendingFragment, KeyUpdateReceivedInQuicConnection, MessageInterleavedWithHandshakeMessage, MissingBinderInPskExtension, MissingKeyShare, MissingPskModesExtension, MissingQuicTransportParameters, OfferedDuplicateCertificateCompressions, OfferedDuplicateKeyShares, OfferedEarlyDataWithOldProtocolVersion, OfferedEmptyApplicationProtocol, OfferedIncorrectCompressions, PskExtensionMustBeLast, PskExtensionWithMismatchedIdsAndBinders, RefusedToFollowHelloRetryRequest, RejectedEarlyDataInterleavedWithHandshakeMessage, ResumptionAttemptedWithVariedEms, ResumptionOfferedWithVariedCipherSuite, ResumptionOfferedWithVariedEms, ResumptionOfferedWithIncompatibleCipherSuite, SelectedDifferentCipherSuiteAfterRetry, SelectedInvalidPsk, SelectedTls12UsingTls13VersionExtension, SelectedUnofferedApplicationProtocol, SelectedUnofferedCertCompression, SelectedUnofferedCipherSuite, SelectedUnofferedCompression, SelectedUnofferedKxGroup, SelectedUnofferedPsk, SelectedUnusableCipherSuiteForVersion, ServerEchoedCompatibilitySessionId, ServerHelloMustOfferUncompressedEcPoints, ServerNameDifferedOnRetry, ServerNameMustContainOneHostName, SignedKxWithWrongAlgorithm, SignedHandshakeWithUnadvertisedSigScheme, TooManyEmptyFragments, TooManyKeyUpdateRequests, TooManyRenegotiationRequests, TooManyWarningAlertsReceived, TooMuchEarlyDataReceived, UnexpectedCleartextExtension, UnsolicitedCertExtension, UnsolicitedEncryptedExtension, UnsolicitedSctList, UnsolicitedServerHelloExtension, WrongGroupForKeyShare, UnsolicitedEchExtension,
}
展开描述

此 set of cases where we failed 到 make 一个 connection because we thought the peer was misbehaving.

This is non_exhaustive: we might add 或 stop using items here in minor versions. We also don’t document what they mean. Generally 一个 user of rustls shouldn’t vary its behaviour on these error codes, 并 there is nothing it can do 到 improve matters.

Please file 一个 bug against rustls if you see Error::PeerMisbehaved in the wild.

变体 (Non-exhaustive)§

This enum is marked as non-exhaustive
非穷尽枚举未来可能添加新的变体。因此,在对非穷尽枚举的变体进行模式匹配时,必须额外增加一个通配符分支以涵盖未来的新变体。
§

AttemptedDowngradeToTls12WhenTls13IsSupported

§

BadCertChainExtensions

§

DisallowedEncryptedExtension

§

DuplicateClientHelloExtensions

§

DuplicateEncryptedExtensions

§

DuplicateHelloRetryRequestExtensions

§

DuplicateNewSessionTicketExtensions

§

DuplicateServerHelloExtensions

§

DuplicateServerNameTypes

§

EarlyDataAttemptedInSecondClientHello

§

EarlyDataExtensionWithoutResumption

§

EarlyDataOfferedWithVariedCipherSuite

§

HandshakeHashVariedAfterRetry

§

IllegalHelloRetryRequestWithEmptyCookie

§

IllegalHelloRetryRequestWithNoChanges

§

IllegalHelloRetryRequestWithOfferedGroup

§

IllegalHelloRetryRequestWithUnofferedCipherSuite

§

IllegalHelloRetryRequestWithUnofferedNamedGroup

§

IllegalHelloRetryRequestWithUnsupportedVersion

§

IllegalHelloRetryRequestWithWrongSessionId

§

IllegalHelloRetryRequestWithInvalidEch

§

IllegalMiddleboxChangeCipherSpec

§

IllegalTlsInnerPlaintext

§

IncorrectBinder

§

InvalidCertCompression

§

InvalidMaxEarlyDataSize

§

InvalidKeyShare

§

KeyEpochWithPendingFragment

§

KeyUpdateReceivedInQuicConnection

§

MessageInterleavedWithHandshakeMessage

§

MissingBinderInPskExtension

§

MissingKeyShare

§

MissingPskModesExtension

§

MissingQuicTransportParameters

§

OfferedDuplicateCertificateCompressions

§

OfferedDuplicateKeyShares

§

OfferedEarlyDataWithOldProtocolVersion

§

OfferedEmptyApplicationProtocol

§

OfferedIncorrectCompressions

§

PskExtensionMustBeLast

§

PskExtensionWithMismatchedIdsAndBinders

§

RefusedToFollowHelloRetryRequest

§

RejectedEarlyDataInterleavedWithHandshakeMessage

§

ResumptionAttemptedWithVariedEms

§

ResumptionOfferedWithVariedCipherSuite

§

ResumptionOfferedWithVariedEms

§

ResumptionOfferedWithIncompatibleCipherSuite

§

SelectedDifferentCipherSuiteAfterRetry

§

SelectedInvalidPsk

§

SelectedTls12UsingTls13VersionExtension

§

SelectedUnofferedApplicationProtocol

§

SelectedUnofferedCertCompression

§

SelectedUnofferedCipherSuite

§

SelectedUnofferedCompression

§

SelectedUnofferedKxGroup

§

SelectedUnofferedPsk

§

SelectedUnusableCipherSuiteForVersion

§

ServerEchoedCompatibilitySessionId

§

ServerHelloMustOfferUncompressedEcPoints

§

ServerNameDifferedOnRetry

§

ServerNameMustContainOneHostName

§

SignedKxWithWrongAlgorithm

§

SignedHandshakeWithUnadvertisedSigScheme

§

TooManyEmptyFragments

§

TooManyKeyUpdateRequests

§

TooManyRenegotiationRequests

§

TooManyWarningAlertsReceived

§

TooMuchEarlyDataReceived

§

UnexpectedCleartextExtension

§

UnsolicitedCertExtension

§

UnsolicitedEncryptedExtension

§

UnsolicitedSctList

§

UnsolicitedServerHelloExtension

§

WrongGroupForKeyShare

§

UnsolicitedEchExtension

Trait 实现§

Source§

impl Clone for PeerMisbehaved

Source§

fn clone(&self) -> PeerMisbehaved

返回值的副本。 更多信息
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment 从 source. 更多信息
Source§

impl Debug for PeerMisbehaved

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

使用给定的格式化器格式化此值。 更多信息
Source§

impl From<PeerMisbehaved> for Error

Source§

fn from(e: PeerMisbehaved) -> Self

从输入类型转换为此类型。
Source§

impl PartialEq for PeerMisbehaved

Source§

fn eq(&self, other: &PeerMisbehaved) -> bool

测试 selfother 值是否相等,供 == 运算符使用。
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

测试 != 运算符。默认实现几乎总是够用,除非有非常充分的理由,否则不应被覆盖。
Source§

impl StructuralPartialEq for PeerMisbehaved

自动 Trait 实现§

Blanket 实现§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. 更多信息
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows 从 an owned value. 更多信息
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows 从 an owned value. 更多信息
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment 从 selfdest. 更多信息
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

原样返回传入的参数。

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::从(self)

That is, this conversion is whatever the implementation of From<T> 用于 U 的实现方式。

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

获得所有权后的类型。
Source§

fn to_owned(&self) -> T

Creates owned data 从 borrowed data, usually by cloning. 更多信息
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data 到 replace owned data, usually by cloning. 更多信息
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

转换出错时返回的类型。
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

执行转换。
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

转换出错时返回的类型。
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

执行转换。