@@ -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;
@@ -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+
668674fn map_crl_error ( err : CertRevocationListError ) -> rustls_result {
669675 use rustls_result:: * ;
670676
0 commit comments