Skip to content

Commit 51ded53

Browse files
committed
error: lift out alert description error mapping
For consistency with other many-variant sub-error mappings.
1 parent 7920c31 commit 51ded53

File tree

1 file changed

+46
-40
lines changed

1 file changed

+46
-40
lines changed

librustls/src/error.rs

Lines changed: 46 additions & 40 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;
@@ -575,44 +575,7 @@ pub(crate) fn map_error(input: Error) -> rustls_result {
575575

576576
Error::General(_) => General,
577577

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-
},
578+
Error::AlertReceived(e) => map_alert_error(e),
616579

617580
Error::InvalidCertRevocationList(e) => map_crl_error(e),
618581

@@ -665,6 +628,49 @@ pub(crate) fn map_verifier_builder_error(err: VerifierBuilderError) -> rustls_re
665628
}
666629
}
667630

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

0 commit comments

Comments
 (0)