Skip to content

Commit f82c3d9

Browse files
committed
error: lift out alert description error mapping
For consistency with other many-variant sub-error mappings.
1 parent ea0ea75 commit f82c3d9

1 file changed

Lines changed: 46 additions & 41 deletions

File tree

librustls/src/error.rs

Lines changed: 46 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use std::sync::Arc;
55
use libc::{c_char, c_uint, size_t};
66
use rustls::server::VerifierBuilderError;
77
use rustls::{
8-
CertRevocationListError, CertificateError, EncryptedClientHelloError, Error, InconsistentKeys,
9-
InvalidMessage,
8+
AlertDescription, CertRevocationListError, CertificateError, EncryptedClientHelloError, Error,
9+
InconsistentKeys, InvalidMessage,
1010
};
1111

1212
use crate::panic::ffi_panic_boundary;
@@ -548,7 +548,6 @@ impl Display for rustls_result {
548548
}
549549

550550
pub(crate) fn map_error(input: Error) -> rustls_result {
551-
use rustls::AlertDescription as alert;
552551
use rustls_result::*;
553552

554553
match input {
@@ -575,44 +574,7 @@ pub(crate) fn map_error(input: Error) -> rustls_result {
575574

576575
Error::General(_) => General,
577576

578-
Error::AlertReceived(e) => match e {
579-
alert::CloseNotify => AlertCloseNotify,
580-
alert::UnexpectedMessage => AlertUnexpectedMessage,
581-
alert::BadRecordMac => AlertBadRecordMac,
582-
alert::DecryptionFailed => AlertDecryptionFailed,
583-
alert::RecordOverflow => AlertRecordOverflow,
584-
alert::DecompressionFailure => AlertDecompressionFailure,
585-
alert::HandshakeFailure => AlertHandshakeFailure,
586-
alert::NoCertificate => AlertNoCertificate,
587-
alert::BadCertificate => AlertBadCertificate,
588-
alert::UnsupportedCertificate => AlertUnsupportedCertificate,
589-
alert::CertificateRevoked => AlertCertificateRevoked,
590-
alert::CertificateExpired => AlertCertificateExpired,
591-
alert::CertificateUnknown => AlertCertificateUnknown,
592-
alert::IllegalParameter => AlertIllegalParameter,
593-
alert::UnknownCA => AlertUnknownCA,
594-
alert::AccessDenied => AlertAccessDenied,
595-
alert::DecodeError => AlertDecodeError,
596-
alert::DecryptError => AlertDecryptError,
597-
alert::ExportRestriction => AlertExportRestriction,
598-
alert::ProtocolVersion => AlertProtocolVersion,
599-
alert::InsufficientSecurity => AlertInsufficientSecurity,
600-
alert::InternalError => AlertInternalError,
601-
alert::InappropriateFallback => AlertInappropriateFallback,
602-
alert::UserCanceled => AlertUserCanceled,
603-
alert::NoRenegotiation => AlertNoRenegotiation,
604-
alert::MissingExtension => AlertMissingExtension,
605-
alert::UnsupportedExtension => AlertUnsupportedExtension,
606-
alert::CertificateUnobtainable => AlertCertificateUnobtainable,
607-
alert::UnrecognisedName => AlertUnrecognisedName,
608-
alert::BadCertificateStatusResponse => AlertBadCertificateStatusResponse,
609-
alert::BadCertificateHashValue => AlertBadCertificateHashValue,
610-
alert::UnknownPSKIdentity => AlertUnknownPSKIdentity,
611-
alert::CertificateRequired => AlertCertificateRequired,
612-
alert::NoApplicationProtocol => AlertNoApplicationProtocol,
613-
alert::Unknown(_) => AlertUnknown,
614-
_ => AlertUnknown,
615-
},
577+
Error::AlertReceived(e) => map_alert_error(e),
616578

617579
Error::InvalidCertRevocationList(e) => map_crl_error(e),
618580

@@ -665,6 +627,49 @@ pub(crate) fn map_verifier_builder_error(err: VerifierBuilderError) -> rustls_re
665627
}
666628
}
667629

630+
fn map_alert_error(alert: AlertDescription) -> rustls_result {
631+
use rustls_result::*;
632+
633+
match alert {
634+
AlertDescription::CloseNotify => AlertCloseNotify,
635+
AlertDescription::UnexpectedMessage => AlertUnexpectedMessage,
636+
AlertDescription::BadRecordMac => AlertBadRecordMac,
637+
AlertDescription::DecryptionFailed => AlertDecryptionFailed,
638+
AlertDescription::RecordOverflow => AlertRecordOverflow,
639+
AlertDescription::DecompressionFailure => AlertDecompressionFailure,
640+
AlertDescription::HandshakeFailure => AlertHandshakeFailure,
641+
AlertDescription::NoCertificate => AlertNoCertificate,
642+
AlertDescription::BadCertificate => AlertBadCertificate,
643+
AlertDescription::UnsupportedCertificate => AlertUnsupportedCertificate,
644+
AlertDescription::CertificateRevoked => AlertCertificateRevoked,
645+
AlertDescription::CertificateExpired => AlertCertificateExpired,
646+
AlertDescription::CertificateUnknown => AlertCertificateUnknown,
647+
AlertDescription::IllegalParameter => AlertIllegalParameter,
648+
AlertDescription::UnknownCA => AlertUnknownCA,
649+
AlertDescription::AccessDenied => AlertAccessDenied,
650+
AlertDescription::DecodeError => AlertDecodeError,
651+
AlertDescription::DecryptError => AlertDecryptError,
652+
AlertDescription::ExportRestriction => AlertExportRestriction,
653+
AlertDescription::ProtocolVersion => AlertProtocolVersion,
654+
AlertDescription::InsufficientSecurity => AlertInsufficientSecurity,
655+
AlertDescription::InternalError => AlertInternalError,
656+
AlertDescription::InappropriateFallback => AlertInappropriateFallback,
657+
AlertDescription::UserCanceled => AlertUserCanceled,
658+
AlertDescription::NoRenegotiation => AlertNoRenegotiation,
659+
AlertDescription::MissingExtension => AlertMissingExtension,
660+
AlertDescription::UnsupportedExtension => AlertUnsupportedExtension,
661+
AlertDescription::CertificateUnobtainable => AlertCertificateUnobtainable,
662+
AlertDescription::UnrecognisedName => AlertUnrecognisedName,
663+
AlertDescription::BadCertificateStatusResponse => AlertBadCertificateStatusResponse,
664+
AlertDescription::BadCertificateHashValue => AlertBadCertificateHashValue,
665+
AlertDescription::UnknownPSKIdentity => AlertUnknownPSKIdentity,
666+
AlertDescription::CertificateRequired => AlertCertificateRequired,
667+
AlertDescription::NoApplicationProtocol => AlertNoApplicationProtocol,
668+
AlertDescription::Unknown(_) => AlertUnknown,
669+
_ => AlertUnknown,
670+
}
671+
}
672+
668673
fn map_crl_error(err: CertRevocationListError) -> rustls_result {
669674
use rustls_result::*;
670675

0 commit comments

Comments
 (0)