@@ -5,8 +5,8 @@ use std::sync::Arc;
55use libc:: { c_char, c_uint, size_t} ;
66use rustls:: server:: VerifierBuilderError ;
77use rustls:: {
8- CertRevocationListError , CertificateError , EncryptedClientHelloError , Error , InconsistentKeys ,
9- InvalidMessage ,
8+ AlertDescription , CertRevocationListError , CertificateError , EncryptedClientHelloError , Error ,
9+ InconsistentKeys , InvalidMessage ,
1010} ;
1111
1212use crate :: panic:: ffi_panic_boundary;
@@ -548,7 +548,6 @@ impl Display for rustls_result {
548548}
549549
550550pub ( 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+
668673fn map_crl_error ( err : CertRevocationListError ) -> rustls_result {
669674 use rustls_result:: * ;
670675
0 commit comments