rust: bssl-tls: add TLS-specific error codes Bug: 479599893 Signed-off-by: Xiangfei Ding <xfding@google.com> Change-Id: I62014b4f1757a690c1f7b2a9794026416a6a6964 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/91447 Reviewed-by: Adam Langley <agl@google.com>
diff --git a/rust/bssl-tls/src/errors.rs b/rust/bssl-tls/src/errors.rs index 803b958..0d181a5 100644 --- a/rust/bssl-tls/src/errors.rs +++ b/rust/bssl-tls/src/errors.rs
@@ -37,6 +37,8 @@ Configuration(ConfigurationError), /// TLS retryable errors TlsRetry(TlsRetryReason), + /// Other TLS errors with reason + TlsReason(TlsErrorReason), /// PEM encoding failures PemReason(PemReason), /// Quic errors, @@ -77,6 +79,12 @@ }; let ret_unknown_reason = || Self::Library(packed_error, Some(lib), Some(reason)); match lib { + LibCode::Ssl => { + let Ok(reason) = TlsErrorReason::try_from(reason) else { + return ret_unknown_reason(); + }; + Self::TlsReason(reason) + } LibCode::Pem => { let Ok(reason) = PemReason::try_from(reason) else { return ret_unknown_reason(); @@ -148,6 +156,7 @@ } Error::Configuration(err) => Display::fmt(err, f), Error::TlsRetry(err) => Display::fmt(err, f), + Error::TlsReason(err) => Display::fmt(err, f), Error::PemReason(err) => Debug::fmt(err, f), Error::Quic(err) => Display::fmt(err, f), Error::Io(err) => Display::fmt(err, f), @@ -158,6 +167,545 @@ } bssl_enum! { + /// SSL reason codes. + #[derive(Debug, Copy, Clone, PartialEq, Eq)] + pub enum TlsErrorReason: i32 { + /// `SSL_R_APP_DATA_IN_HANDSHAKE` + AppDataInHandshake = bssl_sys::SSL_R_APP_DATA_IN_HANDSHAKE as i32, + /// `SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT` + AttemptToReuseSessionInDifferentContext = bssl_sys::SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT as i32, + /// `SSL_R_BAD_ALERT` + BadAlert = bssl_sys::SSL_R_BAD_ALERT as i32, + /// `SSL_R_BAD_CHANGE_CIPHER_SPEC` + BadChangeCipherSpec = bssl_sys::SSL_R_BAD_CHANGE_CIPHER_SPEC as i32, + /// `SSL_R_BAD_DATA_RETURNED_BY_CALLBACK` + BadDataReturnedByCallback = bssl_sys::SSL_R_BAD_DATA_RETURNED_BY_CALLBACK as i32, + /// `SSL_R_BAD_DH_P_LENGTH` + BadDhPLength = bssl_sys::SSL_R_BAD_DH_P_LENGTH as i32, + /// `SSL_R_BAD_DIGEST_LENGTH` + BadDigestLength = bssl_sys::SSL_R_BAD_DIGEST_LENGTH as i32, + /// `SSL_R_BAD_ECC_CERT` + BadEccCert = bssl_sys::SSL_R_BAD_ECC_CERT as i32, + /// `SSL_R_BAD_ECPOINT` + BadEcpoint = bssl_sys::SSL_R_BAD_ECPOINT as i32, + /// `SSL_R_BAD_HANDSHAKE_RECORD` + BadHandshakeRecord = bssl_sys::SSL_R_BAD_HANDSHAKE_RECORD as i32, + /// `SSL_R_BAD_HELLO_REQUEST` + BadHelloRequest = bssl_sys::SSL_R_BAD_HELLO_REQUEST as i32, + /// `SSL_R_BAD_LENGTH` + BadLength = bssl_sys::SSL_R_BAD_LENGTH as i32, + /// `SSL_R_BAD_PACKET_LENGTH` + BadPacketLength = bssl_sys::SSL_R_BAD_PACKET_LENGTH as i32, + /// `SSL_R_BAD_RSA_ENCRYPT` + BadRsaEncrypt = bssl_sys::SSL_R_BAD_RSA_ENCRYPT as i32, + /// `SSL_R_BAD_SIGNATURE` + BadSignature = bssl_sys::SSL_R_BAD_SIGNATURE as i32, + /// `SSL_R_BAD_SRTP_MKI_VALUE` + BadSrtpMkiValue = bssl_sys::SSL_R_BAD_SRTP_MKI_VALUE as i32, + /// `SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST` + BadSrtpProtectionProfileList = bssl_sys::SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST as i32, + /// `SSL_R_BAD_SSL_FILETYPE` + BadSslFiletype = bssl_sys::SSL_R_BAD_SSL_FILETYPE as i32, + /// `SSL_R_BAD_WRITE_RETRY` + BadWriteRetry = bssl_sys::SSL_R_BAD_WRITE_RETRY as i32, + /// `SSL_R_BIO_NOT_SET` + BioNotSet = bssl_sys::SSL_R_BIO_NOT_SET as i32, + /// `SSL_R_BN_LIB` + BnLib = bssl_sys::SSL_R_BN_LIB as i32, + /// `SSL_R_BUFFER_TOO_SMALL` + BufferTooSmall = bssl_sys::SSL_R_BUFFER_TOO_SMALL as i32, + /// `SSL_R_CA_DN_LENGTH_MISMATCH` + CaDnLengthMismatch = bssl_sys::SSL_R_CA_DN_LENGTH_MISMATCH as i32, + /// `SSL_R_CA_DN_TOO_LONG` + CaDnTooLong = bssl_sys::SSL_R_CA_DN_TOO_LONG as i32, + /// `SSL_R_CCS_RECEIVED_EARLY` + CcsReceivedEarly = bssl_sys::SSL_R_CCS_RECEIVED_EARLY as i32, + /// `SSL_R_CERTIFICATE_VERIFY_FAILED` + CertificateVerifyFailed = bssl_sys::SSL_R_CERTIFICATE_VERIFY_FAILED as i32, + /// `SSL_R_CERT_CB_ERROR` + CertCbError = bssl_sys::SSL_R_CERT_CB_ERROR as i32, + /// `SSL_R_CERT_LENGTH_MISMATCH` + CertLengthMismatch = bssl_sys::SSL_R_CERT_LENGTH_MISMATCH as i32, + /// `SSL_R_CHANNEL_ID_NOT_P256` + ChannelIdNotP256 = bssl_sys::SSL_R_CHANNEL_ID_NOT_P256 as i32, + /// `SSL_R_CHANNEL_ID_SIGNATURE_INVALID` + ChannelIdSignatureInvalid = bssl_sys::SSL_R_CHANNEL_ID_SIGNATURE_INVALID as i32, + /// `SSL_R_CIPHER_OR_HASH_UNAVAILABLE` + CipherOrHashUnavailable = bssl_sys::SSL_R_CIPHER_OR_HASH_UNAVAILABLE as i32, + /// `SSL_R_CLIENTHELLO_PARSE_FAILED` + ClienthelloParseFailed = bssl_sys::SSL_R_CLIENTHELLO_PARSE_FAILED as i32, + /// `SSL_R_CLIENTHELLO_TLSEXT` + ClienthelloTlsext = bssl_sys::SSL_R_CLIENTHELLO_TLSEXT as i32, + /// `SSL_R_CONNECTION_REJECTED` + ConnectionRejected = bssl_sys::SSL_R_CONNECTION_REJECTED as i32, + /// `SSL_R_CONNECTION_TYPE_NOT_SET` + ConnectionTypeNotSet = bssl_sys::SSL_R_CONNECTION_TYPE_NOT_SET as i32, + /// `SSL_R_CUSTOM_EXTENSION_ERROR` + CustomExtensionError = bssl_sys::SSL_R_CUSTOM_EXTENSION_ERROR as i32, + /// `SSL_R_DATA_LENGTH_TOO_LONG` + DataLengthTooLong = bssl_sys::SSL_R_DATA_LENGTH_TOO_LONG as i32, + /// `SSL_R_DECODE_ERROR` + DecodeError = bssl_sys::SSL_R_DECODE_ERROR as i32, + /// `SSL_R_DECRYPTION_FAILED` + DecryptionFailed = bssl_sys::SSL_R_DECRYPTION_FAILED as i32, + /// `SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC` + DecryptionFailedOrBadRecordMac = bssl_sys::SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC as i32, + /// `SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG` + DhPublicValueLengthIsWrong = bssl_sys::SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG as i32, + /// `SSL_R_DH_P_TOO_LONG` + DhPTooLong = bssl_sys::SSL_R_DH_P_TOO_LONG as i32, + /// `SSL_R_DIGEST_CHECK_FAILED` + DigestCheckFailed = bssl_sys::SSL_R_DIGEST_CHECK_FAILED as i32, + /// `SSL_R_DTLS_MESSAGE_TOO_BIG` + DtlsMessageTooBig = bssl_sys::SSL_R_DTLS_MESSAGE_TOO_BIG as i32, + /// `SSL_R_ECC_CERT_NOT_FOR_SIGNING` + EccCertNotForSigning = bssl_sys::SSL_R_ECC_CERT_NOT_FOR_SIGNING as i32, + /// `SSL_R_EMS_STATE_INCONSISTENT` + EmsStateInconsistent = bssl_sys::SSL_R_EMS_STATE_INCONSISTENT as i32, + /// `SSL_R_ENCRYPTED_LENGTH_TOO_LONG` + EncryptedLengthTooLong = bssl_sys::SSL_R_ENCRYPTED_LENGTH_TOO_LONG as i32, + /// `SSL_R_ERROR_ADDING_EXTENSION` + ErrorAddingExtension = bssl_sys::SSL_R_ERROR_ADDING_EXTENSION as i32, + /// `SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST` + ErrorInReceivedCipherList = bssl_sys::SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST as i32, + /// `SSL_R_ERROR_PARSING_EXTENSION` + ErrorParsingExtension = bssl_sys::SSL_R_ERROR_PARSING_EXTENSION as i32, + /// `SSL_R_EXCESSIVE_MESSAGE_SIZE` + ExcessiveMessageSize = bssl_sys::SSL_R_EXCESSIVE_MESSAGE_SIZE as i32, + /// `SSL_R_EXTRA_DATA_IN_MESSAGE` + ExtraDataInMessage = bssl_sys::SSL_R_EXTRA_DATA_IN_MESSAGE as i32, + /// `SSL_R_FRAGMENT_MISMATCH` + FragmentMismatch = bssl_sys::SSL_R_FRAGMENT_MISMATCH as i32, + /// `SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION` + GotNextProtoWithoutExtension = bssl_sys::SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION as i32, + /// `SSL_R_HANDSHAKE_FAILURE_ON_CLIENT_HELLO` + HandshakeFailureOnClientHello = bssl_sys::SSL_R_HANDSHAKE_FAILURE_ON_CLIENT_HELLO as i32, + /// `SSL_R_HTTPS_PROXY_REQUEST` + HttpsProxyRequest = bssl_sys::SSL_R_HTTPS_PROXY_REQUEST as i32, + /// `SSL_R_HTTP_REQUEST` + HttpRequest = bssl_sys::SSL_R_HTTP_REQUEST as i32, + /// `SSL_R_INAPPROPRIATE_FALLBACK` + InappropriateFallback = bssl_sys::SSL_R_INAPPROPRIATE_FALLBACK as i32, + /// `SSL_R_INVALID_COMMAND` + InvalidCommand = bssl_sys::SSL_R_INVALID_COMMAND as i32, + /// `SSL_R_INVALID_MESSAGE` + InvalidMessage = bssl_sys::SSL_R_INVALID_MESSAGE as i32, + /// `SSL_R_INVALID_SSL_SESSION` + InvalidSslSession = bssl_sys::SSL_R_INVALID_SSL_SESSION as i32, + /// `SSL_R_INVALID_TICKET_KEYS_LENGTH` + InvalidTicketKeysLength = bssl_sys::SSL_R_INVALID_TICKET_KEYS_LENGTH as i32, + /// `SSL_R_LENGTH_MISMATCH` + LengthMismatch = bssl_sys::SSL_R_LENGTH_MISMATCH as i32, + /// `SSL_R_MISSING_EXTENSION` + MissingExtension = bssl_sys::SSL_R_MISSING_EXTENSION as i32, + /// `SSL_R_MISSING_RSA_CERTIFICATE` + MissingRsaCertificate = bssl_sys::SSL_R_MISSING_RSA_CERTIFICATE as i32, + /// `SSL_R_MISSING_TMP_DH_KEY` + MissingTmpDhKey = bssl_sys::SSL_R_MISSING_TMP_DH_KEY as i32, + /// `SSL_R_MISSING_TMP_ECDH_KEY` + MissingTmpEcdhKey = bssl_sys::SSL_R_MISSING_TMP_ECDH_KEY as i32, + /// `SSL_R_MIXED_SPECIAL_OPERATOR_WITH_GROUPS` + MixedSpecialOperatorWithGroups = bssl_sys::SSL_R_MIXED_SPECIAL_OPERATOR_WITH_GROUPS as i32, + /// `SSL_R_MTU_TOO_SMALL` + MtuTooSmall = bssl_sys::SSL_R_MTU_TOO_SMALL as i32, + /// `SSL_R_NEGOTIATED_BOTH_NPN_AND_ALPN` + NegotiatedBothNpnAndAlpn = bssl_sys::SSL_R_NEGOTIATED_BOTH_NPN_AND_ALPN as i32, + /// `SSL_R_NESTED_GROUP` + NestedGroup = bssl_sys::SSL_R_NESTED_GROUP as i32, + /// `SSL_R_NO_CERTIFICATES_RETURNED` + NoCertificatesReturned = bssl_sys::SSL_R_NO_CERTIFICATES_RETURNED as i32, + /// `SSL_R_NO_CERTIFICATE_ASSIGNED` + NoCertificateAssigned = bssl_sys::SSL_R_NO_CERTIFICATE_ASSIGNED as i32, + /// `SSL_R_NO_CERTIFICATE_SET` + NoCertificateSet = bssl_sys::SSL_R_NO_CERTIFICATE_SET as i32, + /// `SSL_R_NO_CIPHERS_AVAILABLE` + NoCiphersAvailable = bssl_sys::SSL_R_NO_CIPHERS_AVAILABLE as i32, + /// `SSL_R_NO_CIPHERS_PASSED` + NoCiphersPassed = bssl_sys::SSL_R_NO_CIPHERS_PASSED as i32, + /// `SSL_R_NO_CIPHER_MATCH` + NoCipherMatch = bssl_sys::SSL_R_NO_CIPHER_MATCH as i32, + /// `SSL_R_NO_COMPRESSION_SPECIFIED` + NoCompressionSpecified = bssl_sys::SSL_R_NO_COMPRESSION_SPECIFIED as i32, + /// `SSL_R_NO_METHOD_SPECIFIED` + NoMethodSpecified = bssl_sys::SSL_R_NO_METHOD_SPECIFIED as i32, + /// `SSL_R_NO_PRIVATE_KEY_ASSIGNED` + NoPrivateKeyAssigned = bssl_sys::SSL_R_NO_PRIVATE_KEY_ASSIGNED as i32, + /// `SSL_R_NO_RENEGOTIATION` + NoRenegotiation = bssl_sys::SSL_R_NO_RENEGOTIATION as i32, + /// `SSL_R_NO_REQUIRED_DIGEST` + NoRequiredDigest = bssl_sys::SSL_R_NO_REQUIRED_DIGEST as i32, + /// `SSL_R_NO_SHARED_CIPHER` + NoSharedCipher = bssl_sys::SSL_R_NO_SHARED_CIPHER as i32, + /// `SSL_R_NULL_SSL_CTX` + NullSslCtx = bssl_sys::SSL_R_NULL_SSL_CTX as i32, + /// `SSL_R_NULL_SSL_METHOD_PASSED` + NullSslMethodPassed = bssl_sys::SSL_R_NULL_SSL_METHOD_PASSED as i32, + /// `SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED` + OldSessionCipherNotReturned = bssl_sys::SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED as i32, + /// `SSL_R_OLD_SESSION_VERSION_NOT_RETURNED` + OldSessionVersionNotReturned = bssl_sys::SSL_R_OLD_SESSION_VERSION_NOT_RETURNED as i32, + /// `SSL_R_OUTPUT_ALIASES_INPUT` + OutputAliasesInput = bssl_sys::SSL_R_OUTPUT_ALIASES_INPUT as i32, + /// `SSL_R_PARSE_TLSEXT` + ParseTlsext = bssl_sys::SSL_R_PARSE_TLSEXT as i32, + /// `SSL_R_PATH_TOO_LONG` + PathTooLong = bssl_sys::SSL_R_PATH_TOO_LONG as i32, + /// `SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE` + PeerDidNotReturnACertificate = bssl_sys::SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE as i32, + /// `SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE` + PeerErrorUnsupportedCertificateType = bssl_sys::SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE as i32, + /// `SSL_R_PROTOCOL_IS_SHUTDOWN` + ProtocolIsShutdown = bssl_sys::SSL_R_PROTOCOL_IS_SHUTDOWN as i32, + /// `SSL_R_PSK_IDENTITY_NOT_FOUND` + PskIdentityNotFound = bssl_sys::SSL_R_PSK_IDENTITY_NOT_FOUND as i32, + /// `SSL_R_PSK_NO_CLIENT_CB` + PskNoClientCb = bssl_sys::SSL_R_PSK_NO_CLIENT_CB as i32, + /// `SSL_R_PSK_NO_SERVER_CB` + PskNoServerCb = bssl_sys::SSL_R_PSK_NO_SERVER_CB as i32, + /// `SSL_R_READ_TIMEOUT_EXPIRED` + ReadTimeoutExpired = bssl_sys::SSL_R_READ_TIMEOUT_EXPIRED as i32, + /// `SSL_R_RECORD_LENGTH_MISMATCH` + RecordLengthMismatch = bssl_sys::SSL_R_RECORD_LENGTH_MISMATCH as i32, + /// `SSL_R_RECORD_TOO_LARGE` + RecordTooLarge = bssl_sys::SSL_R_RECORD_TOO_LARGE as i32, + /// `SSL_R_RENEGOTIATION_ENCODING_ERR` + RenegotiationEncodingErr = bssl_sys::SSL_R_RENEGOTIATION_ENCODING_ERR as i32, + /// `SSL_R_RENEGOTIATION_MISMATCH` + RenegotiationMismatch = bssl_sys::SSL_R_RENEGOTIATION_MISMATCH as i32, + /// `SSL_R_REQUIRED_CIPHER_MISSING` + RequiredCipherMissing = bssl_sys::SSL_R_REQUIRED_CIPHER_MISSING as i32, + /// `SSL_R_RESUMED_EMS_SESSION_WITHOUT_EMS_EXTENSION` + ResumedEmsSessionWithoutEmsExtension = bssl_sys::SSL_R_RESUMED_EMS_SESSION_WITHOUT_EMS_EXTENSION as i32, + /// `SSL_R_RESUMED_NON_EMS_SESSION_WITH_EMS_EXTENSION` + ResumedNonEmsSessionWithEmsExtension = bssl_sys::SSL_R_RESUMED_NON_EMS_SESSION_WITH_EMS_EXTENSION as i32, + /// `SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING` + ScsvReceivedWhenRenegotiating = bssl_sys::SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING as i32, + /// `SSL_R_SERVERHELLO_TLSEXT` + ServerhelloTlsext = bssl_sys::SSL_R_SERVERHELLO_TLSEXT as i32, + /// `SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED` + SessionIdContextUninitialized = bssl_sys::SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED as i32, + /// `SSL_R_SESSION_MAY_NOT_BE_CREATED` + SessionMayNotBeCreated = bssl_sys::SSL_R_SESSION_MAY_NOT_BE_CREATED as i32, + /// `SSL_R_SIGNATURE_ALGORITHMS_EXTENSION_SENT_BY_SERVER` + SignatureAlgorithmsExtensionSentByServer = bssl_sys::SSL_R_SIGNATURE_ALGORITHMS_EXTENSION_SENT_BY_SERVER as i32, + /// `SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES` + SrtpCouldNotAllocateProfiles = bssl_sys::SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES as i32, + /// `SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE` + SrtpUnknownProtectionProfile = bssl_sys::SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE as i32, + /// `SSL_R_SSL3_EXT_INVALID_SERVERNAME` + Ssl3ExtInvalidServername = bssl_sys::SSL_R_SSL3_EXT_INVALID_SERVERNAME as i32, + /// `SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION` + SslCtxHasNoDefaultSslVersion = bssl_sys::SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION as i32, + /// `SSL_R_SSL_HANDSHAKE_FAILURE` + SslHandshakeFailure = bssl_sys::SSL_R_SSL_HANDSHAKE_FAILURE as i32, + /// `SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG` + SslSessionIdContextTooLong = bssl_sys::SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG as i32, + /// `SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST` + TlsPeerDidNotRespondWithCertificateList = bssl_sys::SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST as i32, + /// `SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG` + TlsRsaEncryptedValueLengthIsWrong = bssl_sys::SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG as i32, + /// `SSL_R_TOO_MANY_EMPTY_FRAGMENTS` + TooManyEmptyFragments = bssl_sys::SSL_R_TOO_MANY_EMPTY_FRAGMENTS as i32, + /// `SSL_R_TOO_MANY_WARNING_ALERTS` + TooManyWarningAlerts = bssl_sys::SSL_R_TOO_MANY_WARNING_ALERTS as i32, + /// `SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS` + UnableToFindEcdhParameters = bssl_sys::SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS as i32, + /// `SSL_R_UNEXPECTED_EXTENSION` + UnexpectedExtension = bssl_sys::SSL_R_UNEXPECTED_EXTENSION as i32, + /// `SSL_R_UNEXPECTED_MESSAGE` + UnexpectedMessage = bssl_sys::SSL_R_UNEXPECTED_MESSAGE as i32, + /// `SSL_R_UNEXPECTED_OPERATOR_IN_GROUP` + UnexpectedOperatorInGroup = bssl_sys::SSL_R_UNEXPECTED_OPERATOR_IN_GROUP as i32, + /// `SSL_R_UNEXPECTED_RECORD` + UnexpectedRecord = bssl_sys::SSL_R_UNEXPECTED_RECORD as i32, + /// `SSL_R_UNINITIALIZED` + Uninitialized = bssl_sys::SSL_R_UNINITIALIZED as i32, + /// `SSL_R_UNKNOWN_ALERT_TYPE` + UnknownAlertType = bssl_sys::SSL_R_UNKNOWN_ALERT_TYPE as i32, + /// `SSL_R_UNKNOWN_CERTIFICATE_TYPE` + UnknownCertificateType = bssl_sys::SSL_R_UNKNOWN_CERTIFICATE_TYPE as i32, + /// `SSL_R_UNKNOWN_CIPHER_RETURNED` + UnknownCipherReturned = bssl_sys::SSL_R_UNKNOWN_CIPHER_RETURNED as i32, + /// `SSL_R_UNKNOWN_CIPHER_TYPE` + UnknownCipherType = bssl_sys::SSL_R_UNKNOWN_CIPHER_TYPE as i32, + /// `SSL_R_UNKNOWN_DIGEST` + UnknownDigest = bssl_sys::SSL_R_UNKNOWN_DIGEST as i32, + /// `SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE` + UnknownKeyExchangeType = bssl_sys::SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE as i32, + /// `SSL_R_UNKNOWN_PROTOCOL` + UnknownProtocol = bssl_sys::SSL_R_UNKNOWN_PROTOCOL as i32, + /// `SSL_R_UNKNOWN_SSL_VERSION` + UnknownSslVersion = bssl_sys::SSL_R_UNKNOWN_SSL_VERSION as i32, + /// `SSL_R_UNKNOWN_STATE` + UnknownState = bssl_sys::SSL_R_UNKNOWN_STATE as i32, + /// `SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED` + UnsafeLegacyRenegotiationDisabled = bssl_sys::SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED as i32, + /// `SSL_R_UNSUPPORTED_CIPHER` + UnsupportedCipher = bssl_sys::SSL_R_UNSUPPORTED_CIPHER as i32, + /// `SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM` + UnsupportedCompressionAlgorithm = bssl_sys::SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM as i32, + /// `SSL_R_UNSUPPORTED_ELLIPTIC_CURVE` + UnsupportedEllipticCurve = bssl_sys::SSL_R_UNSUPPORTED_ELLIPTIC_CURVE as i32, + /// `SSL_R_UNSUPPORTED_PROTOCOL` + UnsupportedProtocol = bssl_sys::SSL_R_UNSUPPORTED_PROTOCOL as i32, + /// `SSL_R_WRONG_CERTIFICATE_TYPE` + WrongCertificateType = bssl_sys::SSL_R_WRONG_CERTIFICATE_TYPE as i32, + /// `SSL_R_WRONG_CIPHER_RETURNED` + WrongCipherReturned = bssl_sys::SSL_R_WRONG_CIPHER_RETURNED as i32, + /// `SSL_R_WRONG_CURVE` + WrongCurve = bssl_sys::SSL_R_WRONG_CURVE as i32, + /// `SSL_R_WRONG_MESSAGE_TYPE` + WrongMessageType = bssl_sys::SSL_R_WRONG_MESSAGE_TYPE as i32, + /// `SSL_R_WRONG_SIGNATURE_TYPE` + WrongSignatureType = bssl_sys::SSL_R_WRONG_SIGNATURE_TYPE as i32, + /// `SSL_R_WRONG_SSL_VERSION` + WrongSslVersion = bssl_sys::SSL_R_WRONG_SSL_VERSION as i32, + /// `SSL_R_WRONG_VERSION_NUMBER` + WrongVersionNumber = bssl_sys::SSL_R_WRONG_VERSION_NUMBER as i32, + /// `SSL_R_X509_LIB` + X509Lib = bssl_sys::SSL_R_X509_LIB as i32, + /// `SSL_R_X509_VERIFICATION_SETUP_PROBLEMS` + X509VerificationSetupProblems = bssl_sys::SSL_R_X509_VERIFICATION_SETUP_PROBLEMS as i32, + /// `SSL_R_SHUTDOWN_WHILE_IN_INIT` + ShutdownWhileInInit = bssl_sys::SSL_R_SHUTDOWN_WHILE_IN_INIT as i32, + /// `SSL_R_INVALID_OUTER_RECORD_TYPE` + InvalidOuterRecordType = bssl_sys::SSL_R_INVALID_OUTER_RECORD_TYPE as i32, + /// `SSL_R_UNSUPPORTED_PROTOCOL_FOR_CUSTOM_KEY` + UnsupportedProtocolForCustomKey = bssl_sys::SSL_R_UNSUPPORTED_PROTOCOL_FOR_CUSTOM_KEY as i32, + /// `SSL_R_NO_COMMON_SIGNATURE_ALGORITHMS` + NoCommonSignatureAlgorithms = bssl_sys::SSL_R_NO_COMMON_SIGNATURE_ALGORITHMS as i32, + /// `SSL_R_DOWNGRADE_DETECTED` + DowngradeDetected = bssl_sys::SSL_R_DOWNGRADE_DETECTED as i32, + /// `SSL_R_EXCESS_HANDSHAKE_DATA` + ExcessHandshakeData = bssl_sys::SSL_R_EXCESS_HANDSHAKE_DATA as i32, + /// `SSL_R_INVALID_COMPRESSION_LIST` + InvalidCompressionList = bssl_sys::SSL_R_INVALID_COMPRESSION_LIST as i32, + /// `SSL_R_DUPLICATE_EXTENSION` + DuplicateExtension = bssl_sys::SSL_R_DUPLICATE_EXTENSION as i32, + /// `SSL_R_MISSING_KEY_SHARE` + MissingKeyShare = bssl_sys::SSL_R_MISSING_KEY_SHARE as i32, + /// `SSL_R_INVALID_ALPN_PROTOCOL` + InvalidAlpnProtocol = bssl_sys::SSL_R_INVALID_ALPN_PROTOCOL as i32, + /// `SSL_R_TOO_MANY_KEY_UPDATES` + TooManyKeyUpdates = bssl_sys::SSL_R_TOO_MANY_KEY_UPDATES as i32, + /// `SSL_R_BLOCK_CIPHER_PAD_IS_WRONG` + BlockCipherPadIsWrong = bssl_sys::SSL_R_BLOCK_CIPHER_PAD_IS_WRONG as i32, + /// `SSL_R_NO_CIPHERS_SPECIFIED` + NoCiphersSpecified = bssl_sys::SSL_R_NO_CIPHERS_SPECIFIED as i32, + /// `SSL_R_RENEGOTIATION_EMS_MISMATCH` + RenegotiationEmsMismatch = bssl_sys::SSL_R_RENEGOTIATION_EMS_MISMATCH as i32, + /// `SSL_R_DUPLICATE_KEY_SHARE` + DuplicateKeyShare = bssl_sys::SSL_R_DUPLICATE_KEY_SHARE as i32, + /// `SSL_R_NO_GROUPS_SPECIFIED` + NoGroupsSpecified = bssl_sys::SSL_R_NO_GROUPS_SPECIFIED as i32, + /// `SSL_R_NO_SHARED_GROUP` + NoSharedGroup = bssl_sys::SSL_R_NO_SHARED_GROUP as i32, + /// `SSL_R_PRE_SHARED_KEY_MUST_BE_LAST` + PreSharedKeyMustBeLast = bssl_sys::SSL_R_PRE_SHARED_KEY_MUST_BE_LAST as i32, + /// `SSL_R_OLD_SESSION_PRF_HASH_MISMATCH` + OldSessionPrfHashMismatch = bssl_sys::SSL_R_OLD_SESSION_PRF_HASH_MISMATCH as i32, + /// `SSL_R_INVALID_SCT_LIST` + InvalidSctList = bssl_sys::SSL_R_INVALID_SCT_LIST as i32, + /// `SSL_R_TOO_MUCH_SKIPPED_EARLY_DATA` + TooMuchSkippedEarlyData = bssl_sys::SSL_R_TOO_MUCH_SKIPPED_EARLY_DATA as i32, + /// `SSL_R_PSK_IDENTITY_BINDER_COUNT_MISMATCH` + PskIdentityBinderCountMismatch = bssl_sys::SSL_R_PSK_IDENTITY_BINDER_COUNT_MISMATCH as i32, + /// `SSL_R_CANNOT_PARSE_LEAF_CERT` + CannotParseLeafCert = bssl_sys::SSL_R_CANNOT_PARSE_LEAF_CERT as i32, + /// `SSL_R_SERVER_CERT_CHANGED` + ServerCertChanged = bssl_sys::SSL_R_SERVER_CERT_CHANGED as i32, + /// `SSL_R_CERTIFICATE_AND_PRIVATE_KEY_MISMATCH` + CertificateAndPrivateKeyMismatch = bssl_sys::SSL_R_CERTIFICATE_AND_PRIVATE_KEY_MISMATCH as i32, + /// `SSL_R_CANNOT_HAVE_BOTH_PRIVKEY_AND_METHOD` + CannotHaveBothPrivkeyAndMethod = bssl_sys::SSL_R_CANNOT_HAVE_BOTH_PRIVKEY_AND_METHOD as i32, + /// `SSL_R_TICKET_ENCRYPTION_FAILED` + TicketEncryptionFailed = bssl_sys::SSL_R_TICKET_ENCRYPTION_FAILED as i32, + /// `SSL_R_ALPN_MISMATCH_ON_EARLY_DATA` + AlpnMismatchOnEarlyData = bssl_sys::SSL_R_ALPN_MISMATCH_ON_EARLY_DATA as i32, + /// `SSL_R_WRONG_VERSION_ON_EARLY_DATA` + WrongVersionOnEarlyData = bssl_sys::SSL_R_WRONG_VERSION_ON_EARLY_DATA as i32, + /// `SSL_R_UNEXPECTED_EXTENSION_ON_EARLY_DATA` + UnexpectedExtensionOnEarlyData = bssl_sys::SSL_R_UNEXPECTED_EXTENSION_ON_EARLY_DATA as i32, + /// `SSL_R_NO_SUPPORTED_VERSIONS_ENABLED` + NoSupportedVersionsEnabled = bssl_sys::SSL_R_NO_SUPPORTED_VERSIONS_ENABLED as i32, + /// `SSL_R_EMPTY_HELLO_RETRY_REQUEST` + EmptyHelloRetryRequest = bssl_sys::SSL_R_EMPTY_HELLO_RETRY_REQUEST as i32, + /// `SSL_R_EARLY_DATA_NOT_IN_USE` + EarlyDataNotInUse = bssl_sys::SSL_R_EARLY_DATA_NOT_IN_USE as i32, + /// `SSL_R_HANDSHAKE_NOT_COMPLETE` + HandshakeNotComplete = bssl_sys::SSL_R_HANDSHAKE_NOT_COMPLETE as i32, + /// `SSL_R_NEGOTIATED_TB_WITHOUT_EMS_OR_RI` + NegotiatedTbWithoutEmsOrRi = bssl_sys::SSL_R_NEGOTIATED_TB_WITHOUT_EMS_OR_RI as i32, + /// `SSL_R_SERVER_ECHOED_INVALID_SESSION_ID` + ServerEchoedInvalidSessionId = bssl_sys::SSL_R_SERVER_ECHOED_INVALID_SESSION_ID as i32, + /// `SSL_R_PRIVATE_KEY_OPERATION_FAILED` + PrivateKeyOperationFailed = bssl_sys::SSL_R_PRIVATE_KEY_OPERATION_FAILED as i32, + /// `SSL_R_SECOND_SERVERHELLO_VERSION_MISMATCH` + SecondServerhelloVersionMismatch = bssl_sys::SSL_R_SECOND_SERVERHELLO_VERSION_MISMATCH as i32, + /// `SSL_R_OCSP_CB_ERROR` + OcspCbError = bssl_sys::SSL_R_OCSP_CB_ERROR as i32, + /// `SSL_R_SSL_SESSION_ID_TOO_LONG` + SslSessionIdTooLong = bssl_sys::SSL_R_SSL_SESSION_ID_TOO_LONG as i32, + /// `SSL_R_APPLICATION_DATA_ON_SHUTDOWN` + ApplicationDataOnShutdown = bssl_sys::SSL_R_APPLICATION_DATA_ON_SHUTDOWN as i32, + /// `SSL_R_CERT_DECOMPRESSION_FAILED` + CertDecompressionFailed = bssl_sys::SSL_R_CERT_DECOMPRESSION_FAILED as i32, + /// `SSL_R_UNCOMPRESSED_CERT_TOO_LARGE` + UncompressedCertTooLarge = bssl_sys::SSL_R_UNCOMPRESSED_CERT_TOO_LARGE as i32, + /// `SSL_R_UNKNOWN_CERT_COMPRESSION_ALG` + UnknownCertCompressionAlg = bssl_sys::SSL_R_UNKNOWN_CERT_COMPRESSION_ALG as i32, + /// `SSL_R_INVALID_SIGNATURE_ALGORITHM` + InvalidSignatureAlgorithm = bssl_sys::SSL_R_INVALID_SIGNATURE_ALGORITHM as i32, + /// `SSL_R_DUPLICATE_SIGNATURE_ALGORITHM` + DuplicateSignatureAlgorithm = bssl_sys::SSL_R_DUPLICATE_SIGNATURE_ALGORITHM as i32, + /// `SSL_R_TLS13_DOWNGRADE` + Tls13Downgrade = bssl_sys::SSL_R_TLS13_DOWNGRADE as i32, + /// `SSL_R_QUIC_INTERNAL_ERROR` + QuicInternalError = bssl_sys::SSL_R_QUIC_INTERNAL_ERROR as i32, + /// `SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED` + WrongEncryptionLevelReceived = bssl_sys::SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED as i32, + /// `SSL_R_TOO_MUCH_READ_EARLY_DATA` + TooMuchReadEarlyData = bssl_sys::SSL_R_TOO_MUCH_READ_EARLY_DATA as i32, + /// `SSL_R_INVALID_DELEGATED_CREDENTIAL` + InvalidDelegatedCredential = bssl_sys::SSL_R_INVALID_DELEGATED_CREDENTIAL as i32, + /// `SSL_R_KEY_USAGE_BIT_INCORRECT` + KeyUsageBitIncorrect = bssl_sys::SSL_R_KEY_USAGE_BIT_INCORRECT as i32, + /// `SSL_R_INCONSISTENT_CLIENT_HELLO` + InconsistentClientHello = bssl_sys::SSL_R_INCONSISTENT_CLIENT_HELLO as i32, + /// `SSL_R_CIPHER_MISMATCH_ON_EARLY_DATA` + CipherMismatchOnEarlyData = bssl_sys::SSL_R_CIPHER_MISMATCH_ON_EARLY_DATA as i32, + /// `SSL_R_QUIC_TRANSPORT_PARAMETERS_MISCONFIGURED` + QuicTransportParametersMisconfigured = bssl_sys::SSL_R_QUIC_TRANSPORT_PARAMETERS_MISCONFIGURED as i32, + /// `SSL_R_UNEXPECTED_COMPATIBILITY_MODE` + UnexpectedCompatibilityMode = bssl_sys::SSL_R_UNEXPECTED_COMPATIBILITY_MODE as i32, + /// `SSL_R_NO_APPLICATION_PROTOCOL` + NoApplicationProtocol = bssl_sys::SSL_R_NO_APPLICATION_PROTOCOL as i32, + /// `SSL_R_NEGOTIATED_ALPS_WITHOUT_ALPN` + NegotiatedAlpsWithoutAlpn = bssl_sys::SSL_R_NEGOTIATED_ALPS_WITHOUT_ALPN as i32, + /// `SSL_R_ALPS_MISMATCH_ON_EARLY_DATA` + AlpsMismatchOnEarlyData = bssl_sys::SSL_R_ALPS_MISMATCH_ON_EARLY_DATA as i32, + /// `SSL_R_ECH_SERVER_CONFIG_AND_PRIVATE_KEY_MISMATCH` + EchServerConfigAndPrivateKeyMismatch = bssl_sys::SSL_R_ECH_SERVER_CONFIG_AND_PRIVATE_KEY_MISMATCH as i32, + /// `SSL_R_ECH_SERVER_CONFIG_UNSUPPORTED_EXTENSION` + EchServerConfigUnsupportedExtension = bssl_sys::SSL_R_ECH_SERVER_CONFIG_UNSUPPORTED_EXTENSION as i32, + /// `SSL_R_UNSUPPORTED_ECH_SERVER_CONFIG` + UnsupportedEchServerConfig = bssl_sys::SSL_R_UNSUPPORTED_ECH_SERVER_CONFIG as i32, + /// `SSL_R_ECH_SERVER_WOULD_HAVE_NO_RETRY_CONFIGS` + EchServerWouldHaveNoRetryConfigs = bssl_sys::SSL_R_ECH_SERVER_WOULD_HAVE_NO_RETRY_CONFIGS as i32, + /// `SSL_R_INVALID_CLIENT_HELLO_INNER` + InvalidClientHelloInner = bssl_sys::SSL_R_INVALID_CLIENT_HELLO_INNER as i32, + /// `SSL_R_INVALID_ALPN_PROTOCOL_LIST` + InvalidAlpnProtocolList = bssl_sys::SSL_R_INVALID_ALPN_PROTOCOL_LIST as i32, + /// `SSL_R_COULD_NOT_PARSE_HINTS` + CouldNotParseHints = bssl_sys::SSL_R_COULD_NOT_PARSE_HINTS as i32, + /// `SSL_R_INVALID_ECH_PUBLIC_NAME` + InvalidEchPublicName = bssl_sys::SSL_R_INVALID_ECH_PUBLIC_NAME as i32, + /// `SSL_R_INVALID_ECH_CONFIG_LIST` + InvalidEchConfigList = bssl_sys::SSL_R_INVALID_ECH_CONFIG_LIST as i32, + /// `SSL_R_ECH_REJECTED` + EchRejected = bssl_sys::SSL_R_ECH_REJECTED as i32, + /// `SSL_R_INVALID_OUTER_EXTENSION` + InvalidOuterExtension = bssl_sys::SSL_R_INVALID_OUTER_EXTENSION as i32, + /// `SSL_R_INCONSISTENT_ECH_NEGOTIATION` + InconsistentEchNegotiation = bssl_sys::SSL_R_INCONSISTENT_ECH_NEGOTIATION as i32, + /// `SSL_R_INVALID_ALPS_CODEPOINT` + InvalidAlpsCodepoint = bssl_sys::SSL_R_INVALID_ALPS_CODEPOINT as i32, + /// `SSL_R_NO_MATCHING_ISSUER` + NoMatchingIssuer = bssl_sys::SSL_R_NO_MATCHING_ISSUER as i32, + /// `SSL_R_INVALID_SPAKE2PLUSV1_VALUE` + InvalidSpake2plusv1Value = bssl_sys::SSL_R_INVALID_SPAKE2PLUSV1_VALUE as i32, + /// `SSL_R_PAKE_EXHAUSTED` + PakeExhausted = bssl_sys::SSL_R_PAKE_EXHAUSTED as i32, + /// `SSL_R_PEER_PAKE_MISMATCH` + PeerPakeMismatch = bssl_sys::SSL_R_PEER_PAKE_MISMATCH as i32, + /// `SSL_R_UNSUPPORTED_CREDENTIAL_LIST` + UnsupportedCredentialList = bssl_sys::SSL_R_UNSUPPORTED_CREDENTIAL_LIST as i32, + /// `SSL_R_INVALID_TRUST_ANCHOR_LIST` + InvalidTrustAnchorList = bssl_sys::SSL_R_INVALID_TRUST_ANCHOR_LIST as i32, + /// `SSL_R_INVALID_CERTIFICATE_PROPERTY_LIST` + InvalidCertificatePropertyList = bssl_sys::SSL_R_INVALID_CERTIFICATE_PROPERTY_LIST as i32, + /// `SSL_R_DUPLICATE_GROUP` + DuplicateGroup = bssl_sys::SSL_R_DUPLICATE_GROUP as i32, + /// `SSL_R_SSLV3_ALERT_CLOSE_NOTIFY` + Sslv3AlertCloseNotify = bssl_sys::SSL_R_SSLV3_ALERT_CLOSE_NOTIFY as i32, + /// `SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE` + Sslv3AlertUnexpectedMessage = bssl_sys::SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE as i32, + /// `SSL_R_SSLV3_ALERT_BAD_RECORD_MAC` + Sslv3AlertBadRecordMac = bssl_sys::SSL_R_SSLV3_ALERT_BAD_RECORD_MAC as i32, + /// `SSL_R_TLSV1_ALERT_DECRYPTION_FAILED` + Tlsv1AlertDecryptionFailed = bssl_sys::SSL_R_TLSV1_ALERT_DECRYPTION_FAILED as i32, + /// `SSL_R_TLSV1_ALERT_RECORD_OVERFLOW` + Tlsv1AlertRecordOverflow = bssl_sys::SSL_R_TLSV1_ALERT_RECORD_OVERFLOW as i32, + /// `SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE` + Sslv3AlertDecompressionFailure = bssl_sys::SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE as i32, + /// `SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE` + Sslv3AlertHandshakeFailure = bssl_sys::SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE as i32, + /// `SSL_R_SSLV3_ALERT_NO_CERTIFICATE` + Sslv3AlertNoCertificate = bssl_sys::SSL_R_SSLV3_ALERT_NO_CERTIFICATE as i32, + /// `SSL_R_SSLV3_ALERT_BAD_CERTIFICATE` + Sslv3AlertBadCertificate = bssl_sys::SSL_R_SSLV3_ALERT_BAD_CERTIFICATE as i32, + /// `SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE` + Sslv3AlertUnsupportedCertificate = bssl_sys::SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE as i32, + /// `SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED` + Sslv3AlertCertificateRevoked = bssl_sys::SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED as i32, + /// `SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED` + Sslv3AlertCertificateExpired = bssl_sys::SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED as i32, + /// `SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN` + Sslv3AlertCertificateUnknown = bssl_sys::SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN as i32, + /// `SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER` + Sslv3AlertIllegalParameter = bssl_sys::SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER as i32, + /// `SSL_R_TLSV1_ALERT_UNKNOWN_CA` + Tlsv1AlertUnknownCa = bssl_sys::SSL_R_TLSV1_ALERT_UNKNOWN_CA as i32, + /// `SSL_R_TLSV1_ALERT_ACCESS_DENIED` + Tlsv1AlertAccessDenied = bssl_sys::SSL_R_TLSV1_ALERT_ACCESS_DENIED as i32, + /// `SSL_R_TLSV1_ALERT_DECODE_ERROR` + Tlsv1AlertDecodeError = bssl_sys::SSL_R_TLSV1_ALERT_DECODE_ERROR as i32, + /// `SSL_R_TLSV1_ALERT_DECRYPT_ERROR` + Tlsv1AlertDecryptError = bssl_sys::SSL_R_TLSV1_ALERT_DECRYPT_ERROR as i32, + /// `SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION` + Tlsv1AlertExportRestriction = bssl_sys::SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION as i32, + /// `SSL_R_TLSV1_ALERT_PROTOCOL_VERSION` + Tlsv1AlertProtocolVersion = bssl_sys::SSL_R_TLSV1_ALERT_PROTOCOL_VERSION as i32, + /// `SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY` + Tlsv1AlertInsufficientSecurity = bssl_sys::SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY as i32, + /// `SSL_R_TLSV1_ALERT_INTERNAL_ERROR` + Tlsv1AlertInternalError = bssl_sys::SSL_R_TLSV1_ALERT_INTERNAL_ERROR as i32, + /// `SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK` + Tlsv1AlertInappropriateFallback = bssl_sys::SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK as i32, + /// `SSL_R_TLSV1_ALERT_USER_CANCELLED` + Tlsv1AlertUserCancelled = bssl_sys::SSL_R_TLSV1_ALERT_USER_CANCELLED as i32, + /// `SSL_R_TLSV1_ALERT_NO_RENEGOTIATION` + Tlsv1AlertNoRenegotiation = bssl_sys::SSL_R_TLSV1_ALERT_NO_RENEGOTIATION as i32, + /// `SSL_R_TLSV1_ALERT_UNSUPPORTED_EXTENSION` + Tlsv1AlertUnsupportedExtension = bssl_sys::SSL_R_TLSV1_ALERT_UNSUPPORTED_EXTENSION as i32, + /// `SSL_R_TLSV1_ALERT_CERTIFICATE_UNOBTAINABLE` + Tlsv1AlertCertificateUnobtainable = bssl_sys::SSL_R_TLSV1_ALERT_CERTIFICATE_UNOBTAINABLE as i32, + /// `SSL_R_TLSV1_ALERT_UNRECOGNIZED_NAME` + Tlsv1AlertUnrecognizedName = bssl_sys::SSL_R_TLSV1_ALERT_UNRECOGNIZED_NAME as i32, + /// `SSL_R_TLSV1_ALERT_BAD_CERTIFICATE_STATUS_RESPONSE` + Tlsv1AlertBadCertificateStatusResponse = bssl_sys::SSL_R_TLSV1_ALERT_BAD_CERTIFICATE_STATUS_RESPONSE as i32, + /// `SSL_R_TLSV1_ALERT_BAD_CERTIFICATE_HASH_VALUE` + Tlsv1AlertBadCertificateHashValue = bssl_sys::SSL_R_TLSV1_ALERT_BAD_CERTIFICATE_HASH_VALUE as i32, + /// `SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY` + Tlsv1AlertUnknownPskIdentity = bssl_sys::SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY as i32, + /// `SSL_R_TLSV1_ALERT_CERTIFICATE_REQUIRED` + Tlsv1AlertCertificateRequired = bssl_sys::SSL_R_TLSV1_ALERT_CERTIFICATE_REQUIRED as i32, + /// `SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL` + Tlsv1AlertNoApplicationProtocol = bssl_sys::SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL as i32, + /// `SSL_R_TLSV1_ALERT_ECH_REQUIRED` + Tlsv1AlertEchRequired = bssl_sys::SSL_R_TLSV1_ALERT_ECH_REQUIRED as i32, + /// `SSL_R_PAKE_AND_KEY_SHARE_NOT_ALLOWED` + PakeAndKeyShareNotAllowed = bssl_sys::SSL_R_PAKE_AND_KEY_SHARE_NOT_ALLOWED as i32, + } +} + +impl Display for TlsErrorReason { + fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult { + Debug::fmt(self, f) + } +} + +bssl_enum! { /// TLS errors #[derive(Debug, Clone, Copy)] pub enum TlsRetryReason: i32 {