#ifndef OPENSSL_HEADER_SSL_H
#define OPENSSL_HEADER_SSL_H
#include <openssl/base.h>
#include <openssl/bio.h>
#include <openssl/buf.h>
#include <openssl/pem.h>
#include <openssl/span.h>
#include <openssl/ssl3.h>
#include <openssl/thread.h>
#include <openssl/tls1.h>
#include <openssl/x509.h>
#if !defined(OPENSSL_WINDOWS)
#include <sys/time.h>
#endif
struct timeval;
#if defined(__cplusplus)
extern …
#if !defined(BORINGSSL_NO_CXX)
extern "C++" {
BSSL_NAMESPACE_BEGIN
BORINGSSL_MAKE_DELETER(…)
BORINGSSL_MAKE_DELETER(…)
BORINGSSL_MAKE_UP_REF(…)
BORINGSSL_MAKE_DELETER(…)
BORINGSSL_MAKE_UP_REF(…)
BORINGSSL_MAKE_DELETER(…)
BORINGSSL_MAKE_UP_REF(…)
BORINGSSL_MAKE_DELETER(…)
BORINGSSL_MAKE_UP_REF(…)
OPENSSL_EXPORT void SSL_CTX_set_handoff_mode(SSL_CTX *ctx, bool on);
OPENSSL_EXPORT void SSL_set_handoff_mode(SSL *SSL, bool on);
OPENSSL_EXPORT bool SSL_serialize_handoff(const SSL *ssl, CBB *out,
SSL_CLIENT_HELLO *out_hello);
OPENSSL_EXPORT bool SSL_decline_handoff(SSL *ssl);
OPENSSL_EXPORT bool SSL_apply_handoff(SSL *ssl, Span<const uint8_t> handoff);
OPENSSL_EXPORT bool SSL_serialize_handback(const SSL *ssl, CBB *out);
OPENSSL_EXPORT bool SSL_apply_handback(SSL *ssl, Span<const uint8_t> handback);
OPENSSL_EXPORT bool SSL_get_traffic_secrets(
const SSL *ssl, Span<const uint8_t> *out_read_traffic_secret,
Span<const uint8_t> *out_write_traffic_secret);
OPENSSL_EXPORT void SSL_CTX_set_aes_hw_override_for_testing(
SSL_CTX *ctx, bool override_value);
OPENSSL_EXPORT void SSL_set_aes_hw_override_for_testing(SSL *ssl,
bool override_value);
BSSL_NAMESPACE_END
}
#endif
#endif
#define SSL_R_APP_DATA_IN_HANDSHAKE …
#define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT …
#define SSL_R_BAD_ALERT …
#define SSL_R_BAD_CHANGE_CIPHER_SPEC …
#define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK …
#define SSL_R_BAD_DH_P_LENGTH …
#define SSL_R_BAD_DIGEST_LENGTH …
#define SSL_R_BAD_ECC_CERT …
#define SSL_R_BAD_ECPOINT …
#define SSL_R_BAD_HANDSHAKE_RECORD …
#define SSL_R_BAD_HELLO_REQUEST …
#define SSL_R_BAD_LENGTH …
#define SSL_R_BAD_PACKET_LENGTH …
#define SSL_R_BAD_RSA_ENCRYPT …
#define SSL_R_BAD_SIGNATURE …
#define SSL_R_BAD_SRTP_MKI_VALUE …
#define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST …
#define SSL_R_BAD_SSL_FILETYPE …
#define SSL_R_BAD_WRITE_RETRY …
#define SSL_R_BIO_NOT_SET …
#define SSL_R_BN_LIB …
#define SSL_R_BUFFER_TOO_SMALL …
#define SSL_R_CA_DN_LENGTH_MISMATCH …
#define SSL_R_CA_DN_TOO_LONG …
#define SSL_R_CCS_RECEIVED_EARLY …
#define SSL_R_CERTIFICATE_VERIFY_FAILED …
#define SSL_R_CERT_CB_ERROR …
#define SSL_R_CERT_LENGTH_MISMATCH …
#define SSL_R_CHANNEL_ID_NOT_P256 …
#define SSL_R_CHANNEL_ID_SIGNATURE_INVALID …
#define SSL_R_CIPHER_OR_HASH_UNAVAILABLE …
#define SSL_R_CLIENTHELLO_PARSE_FAILED …
#define SSL_R_CLIENTHELLO_TLSEXT …
#define SSL_R_CONNECTION_REJECTED …
#define SSL_R_CONNECTION_TYPE_NOT_SET …
#define SSL_R_CUSTOM_EXTENSION_ERROR …
#define SSL_R_DATA_LENGTH_TOO_LONG …
#define SSL_R_DECODE_ERROR …
#define SSL_R_DECRYPTION_FAILED …
#define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC …
#define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG …
#define SSL_R_DH_P_TOO_LONG …
#define SSL_R_DIGEST_CHECK_FAILED …
#define SSL_R_DTLS_MESSAGE_TOO_BIG …
#define SSL_R_ECC_CERT_NOT_FOR_SIGNING …
#define SSL_R_EMS_STATE_INCONSISTENT …
#define SSL_R_ENCRYPTED_LENGTH_TOO_LONG …
#define SSL_R_ERROR_ADDING_EXTENSION …
#define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST …
#define SSL_R_ERROR_PARSING_EXTENSION …
#define SSL_R_EXCESSIVE_MESSAGE_SIZE …
#define SSL_R_EXTRA_DATA_IN_MESSAGE …
#define SSL_R_FRAGMENT_MISMATCH …
#define SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION …
#define SSL_R_HANDSHAKE_FAILURE_ON_CLIENT_HELLO …
#define SSL_R_HTTPS_PROXY_REQUEST …
#define SSL_R_HTTP_REQUEST …
#define SSL_R_INAPPROPRIATE_FALLBACK …
#define SSL_R_INVALID_COMMAND …
#define SSL_R_INVALID_MESSAGE …
#define SSL_R_INVALID_SSL_SESSION …
#define SSL_R_INVALID_TICKET_KEYS_LENGTH …
#define SSL_R_LENGTH_MISMATCH …
#define SSL_R_MISSING_EXTENSION …
#define SSL_R_MISSING_RSA_CERTIFICATE …
#define SSL_R_MISSING_TMP_DH_KEY …
#define SSL_R_MISSING_TMP_ECDH_KEY …
#define SSL_R_MIXED_SPECIAL_OPERATOR_WITH_GROUPS …
#define SSL_R_MTU_TOO_SMALL …
#define SSL_R_NEGOTIATED_BOTH_NPN_AND_ALPN …
#define SSL_R_NESTED_GROUP …
#define SSL_R_NO_CERTIFICATES_RETURNED …
#define SSL_R_NO_CERTIFICATE_ASSIGNED …
#define SSL_R_NO_CERTIFICATE_SET …
#define SSL_R_NO_CIPHERS_AVAILABLE …
#define SSL_R_NO_CIPHERS_PASSED …
#define SSL_R_NO_CIPHER_MATCH …
#define SSL_R_NO_COMPRESSION_SPECIFIED …
#define SSL_R_NO_METHOD_SPECIFIED …
#define SSL_R_NO_PRIVATE_KEY_ASSIGNED …
#define SSL_R_NO_RENEGOTIATION …
#define SSL_R_NO_REQUIRED_DIGEST …
#define SSL_R_NO_SHARED_CIPHER …
#define SSL_R_NULL_SSL_CTX …
#define SSL_R_NULL_SSL_METHOD_PASSED …
#define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED …
#define SSL_R_OLD_SESSION_VERSION_NOT_RETURNED …
#define SSL_R_OUTPUT_ALIASES_INPUT …
#define SSL_R_PARSE_TLSEXT …
#define SSL_R_PATH_TOO_LONG …
#define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE …
#define SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE …
#define SSL_R_PROTOCOL_IS_SHUTDOWN …
#define SSL_R_PSK_IDENTITY_NOT_FOUND …
#define SSL_R_PSK_NO_CLIENT_CB …
#define SSL_R_PSK_NO_SERVER_CB …
#define SSL_R_READ_TIMEOUT_EXPIRED …
#define SSL_R_RECORD_LENGTH_MISMATCH …
#define SSL_R_RECORD_TOO_LARGE …
#define SSL_R_RENEGOTIATION_ENCODING_ERR …
#define SSL_R_RENEGOTIATION_MISMATCH …
#define SSL_R_REQUIRED_CIPHER_MISSING …
#define SSL_R_RESUMED_EMS_SESSION_WITHOUT_EMS_EXTENSION …
#define SSL_R_RESUMED_NON_EMS_SESSION_WITH_EMS_EXTENSION …
#define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING …
#define SSL_R_SERVERHELLO_TLSEXT …
#define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED …
#define SSL_R_SESSION_MAY_NOT_BE_CREATED …
#define SSL_R_SIGNATURE_ALGORITHMS_EXTENSION_SENT_BY_SERVER …
#define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES …
#define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE …
#define SSL_R_SSL3_EXT_INVALID_SERVERNAME …
#define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION …
#define SSL_R_SSL_HANDSHAKE_FAILURE …
#define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG …
#define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST …
#define SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG …
#define SSL_R_TOO_MANY_EMPTY_FRAGMENTS …
#define SSL_R_TOO_MANY_WARNING_ALERTS …
#define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS …
#define SSL_R_UNEXPECTED_EXTENSION …
#define SSL_R_UNEXPECTED_MESSAGE …
#define SSL_R_UNEXPECTED_OPERATOR_IN_GROUP …
#define SSL_R_UNEXPECTED_RECORD …
#define SSL_R_UNINITIALIZED …
#define SSL_R_UNKNOWN_ALERT_TYPE …
#define SSL_R_UNKNOWN_CERTIFICATE_TYPE …
#define SSL_R_UNKNOWN_CIPHER_RETURNED …
#define SSL_R_UNKNOWN_CIPHER_TYPE …
#define SSL_R_UNKNOWN_DIGEST …
#define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE …
#define SSL_R_UNKNOWN_PROTOCOL …
#define SSL_R_UNKNOWN_SSL_VERSION …
#define SSL_R_UNKNOWN_STATE …
#define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED …
#define SSL_R_UNSUPPORTED_CIPHER …
#define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM …
#define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE …
#define SSL_R_UNSUPPORTED_PROTOCOL …
#define SSL_R_WRONG_CERTIFICATE_TYPE …
#define SSL_R_WRONG_CIPHER_RETURNED …
#define SSL_R_WRONG_CURVE …
#define SSL_R_WRONG_MESSAGE_TYPE …
#define SSL_R_WRONG_SIGNATURE_TYPE …
#define SSL_R_WRONG_SSL_VERSION …
#define SSL_R_WRONG_VERSION_NUMBER …
#define SSL_R_X509_LIB …
#define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS …
#define SSL_R_SHUTDOWN_WHILE_IN_INIT …
#define SSL_R_INVALID_OUTER_RECORD_TYPE …
#define SSL_R_UNSUPPORTED_PROTOCOL_FOR_CUSTOM_KEY …
#define SSL_R_NO_COMMON_SIGNATURE_ALGORITHMS …
#define SSL_R_DOWNGRADE_DETECTED …
#define SSL_R_EXCESS_HANDSHAKE_DATA …
#define SSL_R_INVALID_COMPRESSION_LIST …
#define SSL_R_DUPLICATE_EXTENSION …
#define SSL_R_MISSING_KEY_SHARE …
#define SSL_R_INVALID_ALPN_PROTOCOL …
#define SSL_R_TOO_MANY_KEY_UPDATES …
#define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG …
#define SSL_R_NO_CIPHERS_SPECIFIED …
#define SSL_R_RENEGOTIATION_EMS_MISMATCH …
#define SSL_R_DUPLICATE_KEY_SHARE …
#define SSL_R_NO_GROUPS_SPECIFIED …
#define SSL_R_NO_SHARED_GROUP …
#define SSL_R_PRE_SHARED_KEY_MUST_BE_LAST …
#define SSL_R_OLD_SESSION_PRF_HASH_MISMATCH …
#define SSL_R_INVALID_SCT_LIST …
#define SSL_R_TOO_MUCH_SKIPPED_EARLY_DATA …
#define SSL_R_PSK_IDENTITY_BINDER_COUNT_MISMATCH …
#define SSL_R_CANNOT_PARSE_LEAF_CERT …
#define SSL_R_SERVER_CERT_CHANGED …
#define SSL_R_CERTIFICATE_AND_PRIVATE_KEY_MISMATCH …
#define SSL_R_CANNOT_HAVE_BOTH_PRIVKEY_AND_METHOD …
#define SSL_R_TICKET_ENCRYPTION_FAILED …
#define SSL_R_ALPN_MISMATCH_ON_EARLY_DATA …
#define SSL_R_WRONG_VERSION_ON_EARLY_DATA …
#define SSL_R_UNEXPECTED_EXTENSION_ON_EARLY_DATA …
#define SSL_R_NO_SUPPORTED_VERSIONS_ENABLED …
#define SSL_R_APPLICATION_DATA_INSTEAD_OF_HANDSHAKE …
#define SSL_R_EMPTY_HELLO_RETRY_REQUEST …
#define SSL_R_EARLY_DATA_NOT_IN_USE …
#define SSL_R_HANDSHAKE_NOT_COMPLETE …
#define SSL_R_NEGOTIATED_TB_WITHOUT_EMS_OR_RI …
#define SSL_R_SERVER_ECHOED_INVALID_SESSION_ID …
#define SSL_R_PRIVATE_KEY_OPERATION_FAILED …
#define SSL_R_SECOND_SERVERHELLO_VERSION_MISMATCH …
#define SSL_R_OCSP_CB_ERROR …
#define SSL_R_SSL_SESSION_ID_TOO_LONG …
#define SSL_R_APPLICATION_DATA_ON_SHUTDOWN …
#define SSL_R_CERT_DECOMPRESSION_FAILED …
#define SSL_R_UNCOMPRESSED_CERT_TOO_LARGE …
#define SSL_R_UNKNOWN_CERT_COMPRESSION_ALG …
#define SSL_R_INVALID_SIGNATURE_ALGORITHM …
#define SSL_R_DUPLICATE_SIGNATURE_ALGORITHM …
#define SSL_R_TLS13_DOWNGRADE …
#define SSL_R_QUIC_INTERNAL_ERROR …
#define SSL_R_WRONG_ENCRYPTION_LEVEL_RECEIVED …
#define SSL_R_TOO_MUCH_READ_EARLY_DATA …
#define SSL_R_INVALID_DELEGATED_CREDENTIAL …
#define SSL_R_KEY_USAGE_BIT_INCORRECT …
#define SSL_R_INCONSISTENT_CLIENT_HELLO …
#define SSL_R_CIPHER_MISMATCH_ON_EARLY_DATA …
#define SSL_R_QUIC_TRANSPORT_PARAMETERS_MISCONFIGURED …
#define SSL_R_UNEXPECTED_COMPATIBILITY_MODE …
#define SSL_R_NO_APPLICATION_PROTOCOL …
#define SSL_R_NEGOTIATED_ALPS_WITHOUT_ALPN …
#define SSL_R_ALPS_MISMATCH_ON_EARLY_DATA …
#define SSL_R_ECH_SERVER_CONFIG_AND_PRIVATE_KEY_MISMATCH …
#define SSL_R_ECH_SERVER_CONFIG_UNSUPPORTED_EXTENSION …
#define SSL_R_UNSUPPORTED_ECH_SERVER_CONFIG …
#define SSL_R_ECH_SERVER_WOULD_HAVE_NO_RETRY_CONFIGS …
#define SSL_R_INVALID_CLIENT_HELLO_INNER …
#define SSL_R_INVALID_ALPN_PROTOCOL_LIST …
#define SSL_R_COULD_NOT_PARSE_HINTS …
#define SSL_R_INVALID_ECH_PUBLIC_NAME …
#define SSL_R_INVALID_ECH_CONFIG_LIST …
#define SSL_R_ECH_REJECTED …
#define SSL_R_INVALID_OUTER_EXTENSION …
#define SSL_R_INCONSISTENT_ECH_NEGOTIATION …
#define SSL_R_INVALID_ALPS_CODEPOINT …
#define SSL_R_SSLV3_ALERT_CLOSE_NOTIFY …
#define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE …
#define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC …
#define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED …
#define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW …
#define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE …
#define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE …
#define SSL_R_SSLV3_ALERT_NO_CERTIFICATE …
#define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE …
#define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE …
#define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED …
#define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED …
#define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN …
#define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER …
#define SSL_R_TLSV1_ALERT_UNKNOWN_CA …
#define SSL_R_TLSV1_ALERT_ACCESS_DENIED …
#define SSL_R_TLSV1_ALERT_DECODE_ERROR …
#define SSL_R_TLSV1_ALERT_DECRYPT_ERROR …
#define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION …
#define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION …
#define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY …
#define SSL_R_TLSV1_ALERT_INTERNAL_ERROR …
#define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK …
#define SSL_R_TLSV1_ALERT_USER_CANCELLED …
#define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION …
#define SSL_R_TLSV1_ALERT_UNSUPPORTED_EXTENSION …
#define SSL_R_TLSV1_ALERT_CERTIFICATE_UNOBTAINABLE …
#define SSL_R_TLSV1_ALERT_UNRECOGNIZED_NAME …
#define SSL_R_TLSV1_ALERT_BAD_CERTIFICATE_STATUS_RESPONSE …
#define SSL_R_TLSV1_ALERT_BAD_CERTIFICATE_HASH_VALUE …
#define SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY …
#define SSL_R_TLSV1_ALERT_CERTIFICATE_REQUIRED …
#define SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL …
#define SSL_R_TLSV1_ALERT_ECH_REQUIRED …
#endif