# define SSL_MAX_MASTER_KEY_LENGTH 48
+/* SSL/TLS uses a 2 byte unsigned version number */
# define SSL3_VERSION 0x0300
# define TLS1_VERSION 0x0301
# define TLS1_1_VERSION 0x0302
# define DTLS1_2_VERSION 0xFEFD
# define DTLS1_BAD_VER 0x0100
+/* QUIC uses a 4 byte unsigned version number */
+# define OSSL_QUIC1_VERSION 0x0000001
+
# ifdef __cplusplus
}
# endif
SSL *SSL_new(SSL_CTX *ctx);
int SSL_up_ref(SSL *s);
int SSL_is_dtls(const SSL *s);
+int SSL_is_tls(const SSL *s);
+int SSL_is_quic(const SSL *s);
__owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx,
unsigned int sid_ctx_len);
{
SSL_CONNECTION *sc = SSL_CONNECTION_FROM_SSL(s);
+#ifndef OPENSSL_NO_QUIC
+ if (s->type == SSL_TYPE_QUIC_CONNECTION || s->type == SSL_TYPE_QUIC_STREAM)
+ return 0;
+#endif
+
if (sc == NULL)
return 0;
return SSL_CONNECTION_IS_DTLS(sc) ? 1 : 0;
}
+int SSL_is_tls(const SSL *s)
+{
+ SSL_CONNECTION *sc = SSL_CONNECTION_FROM_SSL(s);
+
+#ifndef OPENSSL_NO_QUIC
+ if (s->type == SSL_TYPE_QUIC_CONNECTION || s->type == SSL_TYPE_QUIC_STREAM)
+ return 0;
+#endif
+
+ if (sc == NULL)
+ return 0;
+
+ return SSL_CONNECTION_IS_DTLS(sc) ? 0 : 1;
+}
+
+int SSL_is_quic(const SSL *s)
+{
+#ifndef OPENSSL_NO_QUIC
+ if (s->type == SSL_TYPE_QUIC_CONNECTION || s->type == SSL_TYPE_QUIC_STREAM)
+ return 1;
+#endif
+ return 0;
+}
+
int SSL_up_ref(SSL *s)
{
int i;
{
const SSL_CONNECTION *sc = SSL_CONNECTION_FROM_CONST_SSL(s);
+#ifndef OPENSSL_NO_QUIC
+ /* We only support QUICv1 - so if its QUIC its QUICv1 */
+ if (s->type == SSL_TYPE_QUIC_CONNECTION || s->type == SSL_TYPE_QUIC_STREAM)
+ return "QUICv1";
+#endif
+
if (sc == NULL)
return NULL;
{
const SSL_CONNECTION *sc = SSL_CONNECTION_FROM_CONST_SSL(s);
+#ifndef OPENSSL_NO_QUIC
+ /* We only support QUICv1 - so if its QUIC its QUICv1 */
+ if (s->type == SSL_TYPE_QUIC_CONNECTION || s->type == SSL_TYPE_QUIC_STREAM)
+ return OSSL_QUIC1_VERSION;
+#endif
/* TODO(QUIC): Do we want to report QUIC version this way instead? */
if (sc == NULL)
return 0;
SSL_get_negotiated_server_cert_type ? 3_2_0 EXIST::FUNCTION:
SSL_add_expected_rpk ? 3_2_0 EXIST::FUNCTION:
d2i_SSL_SESSION_ex ? 3_2_0 EXIST::FUNCTION:
+SSL_is_tls ? 3_2_0 EXIST::FUNCTION:
+SSL_is_quic ? 3_2_0 EXIST::FUNCTION: