summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/libssl/s3_lib.c86
-rw-r--r--lib/libssl/ssl.h11
-rw-r--r--lib/libssl/ssl3.h4
-rw-r--r--lib/libssl/ssl_both.c5
-rw-r--r--lib/libssl/ssl_cert.c6
-rw-r--r--lib/libssl/ssl_ciph.c107
-rw-r--r--lib/libssl/ssl_clnt.c206
-rw-r--r--lib/libssl/ssl_err.c3
-rw-r--r--lib/libssl/ssl_lib.c10
-rw-r--r--lib/libssl/ssl_local.h20
-rw-r--r--lib/libssl/ssl_sigalgs.c28
-rw-r--r--lib/libssl/ssl_sigalgs.h10
-rw-r--r--lib/libssl/ssl_srvr.c152
-rw-r--r--lib/libssl/tls1.h10
-rw-r--r--lib/libssl/tls12_key_schedule.c6
-rw-r--r--lib/libssl/tls12_record_layer.c43
-rw-r--r--regress/lib/libssl/client/clienttest.c226
-rw-r--r--regress/lib/libssl/interop/Makefile.inc15
-rw-r--r--regress/lib/libssl/interop/cipher/Makefile15
-rw-r--r--regress/lib/libssl/unit/tls_prf.c48
-rw-r--r--usr.bin/openssl/openssl.c8
21 files changed, 148 insertions, 871 deletions
diff --git a/lib/libssl/s3_lib.c b/lib/libssl/s3_lib.c
index 1ae2d047bc7..bb8e9465ba6 100644
--- a/lib/libssl/s3_lib.c
+++ b/lib/libssl/s3_lib.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: s3_lib.c,v 1.248 2023/11/29 13:39:34 tb Exp $ */
+/* $OpenBSD: s3_lib.c,v 1.249 2024/02/03 15:58:33 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -577,41 +577,6 @@ const SSL_CIPHER ssl3_ciphers[] = {
.alg_bits = 256,
},
- /* GOST Ciphersuites */
-
- /* Cipher 81 */
- {
- .valid = 1,
- .name = "GOST2001-GOST89-GOST89",
- .id = 0x3000081,
- .algorithm_mkey = SSL_kGOST,
- .algorithm_auth = SSL_aGOST01,
- .algorithm_enc = SSL_eGOST2814789CNT,
- .algorithm_mac = SSL_GOST89MAC,
- .algorithm_ssl = SSL_TLSV1,
- .algo_strength = SSL_HIGH,
- .algorithm2 = SSL_HANDSHAKE_MAC_GOST94|TLS1_PRF_GOST94|
- TLS1_STREAM_MAC,
- .strength_bits = 256,
- .alg_bits = 256
- },
-
- /* Cipher 83 */
- {
- .valid = 1,
- .name = "GOST2001-NULL-GOST94",
- .id = 0x3000083,
- .algorithm_mkey = SSL_kGOST,
- .algorithm_auth = SSL_aGOST01,
- .algorithm_enc = SSL_eNULL,
- .algorithm_mac = SSL_GOST94,
- .algorithm_ssl = SSL_TLSV1,
- .algo_strength = SSL_STRONG_NONE,
- .algorithm2 = SSL_HANDSHAKE_MAC_GOST94|TLS1_PRF_GOST94,
- .strength_bits = 0,
- .alg_bits = 0
- },
-
#ifndef OPENSSL_NO_CAMELLIA
/* Camellia ciphersuites from RFC4132 (256-bit portion) */
@@ -1362,40 +1327,6 @@ const SSL_CIPHER ssl3_ciphers[] = {
.alg_bits = 256,
},
- /* Cipher FF85 FIXME IANA */
- {
- .valid = 1,
- .name = "GOST2012256-GOST89-GOST89",
- .id = 0x300ff85, /* FIXME IANA */
- .algorithm_mkey = SSL_kGOST,
- .algorithm_auth = SSL_aGOST01,
- .algorithm_enc = SSL_eGOST2814789CNT,
- .algorithm_mac = SSL_GOST89MAC,
- .algorithm_ssl = SSL_TLSV1,
- .algo_strength = SSL_HIGH,
- .algorithm2 = SSL_HANDSHAKE_MAC_STREEBOG256|TLS1_PRF_STREEBOG256|
- TLS1_STREAM_MAC,
- .strength_bits = 256,
- .alg_bits = 256
- },
-
- /* Cipher FF87 FIXME IANA */
- {
- .valid = 1,
- .name = "GOST2012256-NULL-STREEBOG256",
- .id = 0x300ff87, /* FIXME IANA */
- .algorithm_mkey = SSL_kGOST,
- .algorithm_auth = SSL_aGOST01,
- .algorithm_enc = SSL_eNULL,
- .algorithm_mac = SSL_STREEBOG256,
- .algorithm_ssl = SSL_TLSV1,
- .algo_strength = SSL_STRONG_NONE,
- .algorithm2 = SSL_HANDSHAKE_MAC_STREEBOG256|TLS1_PRF_STREEBOG256,
- .strength_bits = 0,
- .alg_bits = 0
- },
-
-
/* end of list */
};
@@ -2668,21 +2599,6 @@ ssl3_get_req_cert_types(SSL *s, CBB *cbb)
alg_k = s->s3->hs.cipher->algorithm_mkey;
-#ifndef OPENSSL_NO_GOST
- if ((alg_k & SSL_kGOST) != 0) {
- if (!CBB_add_u8(cbb, TLS_CT_GOST01_SIGN))
- return 0;
- if (!CBB_add_u8(cbb, TLS_CT_GOST12_256_SIGN))
- return 0;
- if (!CBB_add_u8(cbb, TLS_CT_GOST12_512_SIGN))
- return 0;
- if (!CBB_add_u8(cbb, TLS_CT_GOST12_256_SIGN_COMPAT))
- return 0;
- if (!CBB_add_u8(cbb, TLS_CT_GOST12_512_SIGN_COMPAT))
- return 0;
- }
-#endif
-
if ((alg_k & SSL_kDHE) != 0) {
if (!CBB_add_u8(cbb, SSL3_CT_RSA_FIXED_DH))
return 0;
diff --git a/lib/libssl/ssl.h b/lib/libssl/ssl.h
index 8d65a1ec03b..03a5a80d0a7 100644
--- a/lib/libssl/ssl.h
+++ b/lib/libssl/ssl.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl.h,v 1.232 2023/11/22 15:43:42 tb Exp $ */
+/* $OpenBSD: ssl.h,v 1.233 2024/02/03 15:58:33 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -245,7 +245,6 @@ extern "C" {
#define SSL_TXT_kECDH "kECDH"
#define SSL_TXT_kEECDH "kEECDH"
#define SSL_TXT_kPSK "kPSK"
-#define SSL_TXT_kGOST "kGOST"
#define SSL_TXT_kSRP "kSRP"
#define SSL_TXT_aRSA "aRSA"
@@ -255,9 +254,6 @@ extern "C" {
#define SSL_TXT_aKRB5 "aKRB5"
#define SSL_TXT_aECDSA "aECDSA"
#define SSL_TXT_aPSK "aPSK"
-#define SSL_TXT_aGOST94 "aGOST94"
-#define SSL_TXT_aGOST01 "aGOST01"
-#define SSL_TXT_aGOST "aGOST"
#define SSL_TXT_DSS "DSS"
#define SSL_TXT_DH "DH"
@@ -293,12 +289,8 @@ extern "C" {
#define SSL_TXT_MD5 "MD5"
#define SSL_TXT_SHA1 "SHA1"
#define SSL_TXT_SHA "SHA" /* same as "SHA1" */
-#define SSL_TXT_GOST94 "GOST94"
-#define SSL_TXT_GOST89MAC "GOST89MAC"
#define SSL_TXT_SHA256 "SHA256"
#define SSL_TXT_SHA384 "SHA384"
-#define SSL_TXT_STREEBOG256 "STREEBOG256"
-#define SSL_TXT_STREEBOG512 "STREEBOG512"
#define SSL_TXT_DTLS1 "DTLSv1"
#define SSL_TXT_DTLS1_2 "DTLSv1.2"
@@ -2176,7 +2168,6 @@ void ERR_load_SSL_strings(void);
#define SSL_R_NO_CLIENT_CERT_METHOD 331
#define SSL_R_NO_CLIENT_CERT_RECEIVED 186
#define SSL_R_NO_COMPRESSION_SPECIFIED 187
-#define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330
#define SSL_R_NO_METHOD_SPECIFIED 188
#define SSL_R_NO_PRIVATEKEY 189
#define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190
diff --git a/lib/libssl/ssl3.h b/lib/libssl/ssl3.h
index 6c6cc2ad2b0..603d9ccb4f1 100644
--- a/lib/libssl/ssl3.h
+++ b/lib/libssl/ssl3.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl3.h,v 1.57 2021/09/10 14:49:13 tb Exp $ */
+/* $OpenBSD: ssl3.h,v 1.58 2024/02/03 15:58:33 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -325,7 +325,7 @@ extern "C" {
* enough to contain all of the cert types defined either for
* SSLv3 and TLSv1.
*/
-#define SSL3_CT_NUMBER 13
+#define SSL3_CT_NUMBER 7
#define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001
#define TLS1_FLAGS_SKIP_CERT_VERIFY 0x0010
diff --git a/lib/libssl/ssl_both.c b/lib/libssl/ssl_both.c
index 14d9aa85a76..995f1c46015 100644
--- a/lib/libssl/ssl_both.c
+++ b/lib/libssl/ssl_both.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_both.c,v 1.46 2023/07/07 08:53:55 tb Exp $ */
+/* $OpenBSD: ssl_both.c,v 1.47 2024/02/03 15:58:33 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -384,9 +384,6 @@ ssl_cert_type(EVP_PKEY *pkey)
switch (EVP_PKEY_id(pkey)) {
case EVP_PKEY_EC:
return SSL_PKEY_ECC;
- case NID_id_GostR3410_2001:
- case NID_id_GostR3410_2001_cc:
- return SSL_PKEY_GOST01;
case EVP_PKEY_RSA:
case EVP_PKEY_RSA_PSS:
return SSL_PKEY_RSA;
diff --git a/lib/libssl/ssl_cert.c b/lib/libssl/ssl_cert.c
index a288050269c..5b2fe1a48d3 100644
--- a/lib/libssl/ssl_cert.c
+++ b/lib/libssl/ssl_cert.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_cert.c,v 1.107 2023/07/08 16:40:13 beck Exp $ */
+/* $OpenBSD: ssl_cert.c,v 1.108 2024/02/03 15:58:33 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -233,10 +233,6 @@ ssl_cert_dup(SSL_CERT *cert)
/* We have an ECC key */
break;
- case SSL_PKEY_GOST01:
- /* We have a GOST key */
- break;
-
default:
/* Can't happen. */
SSLerrorx(SSL_R_LIBRARY_BUG);
diff --git a/lib/libssl/ssl_ciph.c b/lib/libssl/ssl_ciph.c
index cea4d3e6f46..76a38405209 100644
--- a/lib/libssl/ssl_ciph.c
+++ b/lib/libssl/ssl_ciph.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_ciph.c,v 1.138 2024/01/04 20:02:10 tb Exp $ */
+/* $OpenBSD: ssl_ciph.c,v 1.139 2024/02/03 15:58:33 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -212,10 +212,6 @@ static const SSL_CIPHER cipher_aliases[] = {
.name = SSL_TXT_ECDH,
.algorithm_mkey = SSL_kECDHE,
},
- {
- .name = SSL_TXT_kGOST,
- .algorithm_mkey = SSL_kGOST,
- },
/* server authentication aliases */
{
@@ -242,14 +238,6 @@ static const SSL_CIPHER cipher_aliases[] = {
.name = SSL_TXT_ECDSA,
.algorithm_auth = SSL_aECDSA,
},
- {
- .name = SSL_TXT_aGOST01,
- .algorithm_auth = SSL_aGOST01,
- },
- {
- .name = SSL_TXT_aGOST,
- .algorithm_auth = SSL_aGOST01,
- },
/* aliases combining key exchange and server authentication */
{
@@ -356,14 +344,6 @@ static const SSL_CIPHER cipher_aliases[] = {
.algorithm_mac = SSL_SHA1,
},
{
- .name = SSL_TXT_GOST94,
- .algorithm_mac = SSL_GOST94,
- },
- {
- .name = SSL_TXT_GOST89MAC,
- .algorithm_mac = SSL_GOST89MAC,
- },
- {
.name = SSL_TXT_SHA256,
.algorithm_mac = SSL_SHA256,
},
@@ -371,10 +351,6 @@ static const SSL_CIPHER cipher_aliases[] = {
.name = SSL_TXT_SHA384,
.algorithm_mac = SSL_SHA384,
},
- {
- .name = SSL_TXT_STREEBOG256,
- .algorithm_mac = SSL_STREEBOG256,
- },
/* protocol version aliases */
{
@@ -472,11 +448,6 @@ ssl_cipher_get_evp(const SSL_SESSION *ss, const EVP_CIPHER **enc,
case SSL_CAMELLIA256:
*enc = EVP_camellia_256_cbc();
break;
-#ifndef OPENSSL_NO_GOST
- case SSL_eGOST2814789CNT:
- *enc = EVP_gost2814789_cnt();
- break;
-#endif
}
switch (ss->cipher->algorithm_mac) {
@@ -492,21 +463,11 @@ ssl_cipher_get_evp(const SSL_SESSION *ss, const EVP_CIPHER **enc,
case SSL_SHA384:
*md = EVP_sha384();
break;
-#ifndef OPENSSL_NO_GOST
- case SSL_GOST89MAC:
- *md = EVP_gost2814789imit();
- break;
- case SSL_GOST94:
- *md = EVP_gostr341194();
- break;
- case SSL_STREEBOG256:
- *md = EVP_streebog256();
- break;
-#endif
}
if (*enc == NULL || *md == NULL)
return 0;
+ /* XXX remove these from ssl_cipher_get_evp? */
/*
* EVP_CIPH_FLAG_AEAD_CIPHER and EVP_CIPH_GCM_MODE ciphers are not
* supported via EVP_CIPHER (they should be using EVP_AEAD instead).
@@ -515,18 +476,9 @@ ssl_cipher_get_evp(const SSL_SESSION *ss, const EVP_CIPHER **enc,
return 0;
if (EVP_CIPHER_mode(*enc) == EVP_CIPH_GCM_MODE)
return 0;
-#ifndef OPENSSL_NO_GOST
- /* XXX JFC. die in fire already */
- if (ss->cipher->algorithm_mac == SSL_GOST89MAC) {
- *mac_pkey_type = EVP_PKEY_GOSTIMIT;
- *mac_secret_size = 32; /* XXX */
- } else {
-#endif
- *mac_pkey_type = EVP_PKEY_HMAC;
- *mac_secret_size = EVP_MD_size(*md);
-#ifndef OPENSSL_NO_GOST
- }
-#endif
+
+ *mac_pkey_type = EVP_PKEY_HMAC;
+ *mac_secret_size = EVP_MD_size(*md);
return 1;
}
@@ -581,14 +533,6 @@ ssl_get_handshake_evp_md(SSL *s, const EVP_MD **md)
case SSL_HANDSHAKE_MAC_DEFAULT:
*md = EVP_md5_sha1();
return 1;
-#ifndef OPENSSL_NO_GOST
- case SSL_HANDSHAKE_MAC_GOST94:
- *md = EVP_gostr341194();
- return 1;
- case SSL_HANDSHAKE_MAC_STREEBOG256:
- *md = EVP_streebog256();
- return 1;
-#endif
case SSL_HANDSHAKE_MAC_SHA256:
*md = EVP_sha256();
return 1;
@@ -641,6 +585,7 @@ ll_append_head(CIPHER_ORDER **head, CIPHER_ORDER *curr,
*head = curr;
}
+/* XXX beck: remove this in a followon to removing GOST */
static void
ssl_cipher_get_disabled(unsigned long *mkey, unsigned long *auth,
unsigned long *enc, unsigned long *mac, unsigned long *ssl)
@@ -651,16 +596,6 @@ ssl_cipher_get_disabled(unsigned long *mkey, unsigned long *auth,
*mac = 0;
*ssl = 0;
- /*
- * Check for the availability of GOST 34.10 public/private key
- * algorithms. If they are not available disable the associated
- * authentication and key exchange algorithms.
- */
-#if defined(OPENSSL_NO_GOST) || !defined(EVP_PKEY_GOSTR01)
- *auth |= SSL_aGOST01;
- *mkey |= SSL_kGOST;
-#endif
-
#ifdef SSL_FORBID_ENULL
*enc |= SSL_eNULL;
#endif
@@ -1455,9 +1390,6 @@ SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len)
case SSL_kECDHE:
kx = "ECDH";
break;
- case SSL_kGOST:
- kx = "GOST";
- break;
case SSL_kTLS1_3:
kx = "TLSv1.3";
break;
@@ -1478,9 +1410,6 @@ SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len)
case SSL_aECDSA:
au = "ECDSA";
break;
- case SSL_aGOST01:
- au = "GOST01";
- break;
case SSL_aTLS1_3:
au = "TLSv1.3";
break;
@@ -1520,9 +1449,6 @@ SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len)
case SSL_CHACHA20POLY1305:
enc = "ChaCha20-Poly1305";
break;
- case SSL_eGOST2814789CNT:
- enc = "GOST-28178-89-CNT";
- break;
default:
enc = "unknown";
break;
@@ -1544,15 +1470,6 @@ SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len)
case SSL_AEAD:
mac = "AEAD";
break;
- case SSL_GOST94:
- mac = "GOST94";
- break;
- case SSL_GOST89MAC:
- mac = "GOST89IMIT";
- break;
- case SSL_STREEBOG256:
- mac = "STREEBOG256";
- break;
default:
mac = "unknown";
break;
@@ -1666,8 +1583,6 @@ SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c)
return NID_des_cbc;
case SSL_RC4:
return NID_rc4;
- case SSL_eGOST2814789CNT:
- return NID_gost89_cnt;
default:
return NID_undef;
}
@@ -1680,10 +1595,6 @@ SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c)
switch (c->algorithm_mac) {
case SSL_AEAD:
return NID_undef;
- case SSL_GOST89MAC:
- return NID_id_Gost28147_89_MAC;
- case SSL_GOST94:
- return NID_id_GostR3411_94;
case SSL_MD5:
return NID_md5;
case SSL_SHA1:
@@ -1692,8 +1603,6 @@ SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c)
return NID_sha256;
case SSL_SHA384:
return NID_sha384;
- case SSL_STREEBOG256:
- return NID_id_tc26_gost3411_2012_256;
default:
return NID_undef;
}
@@ -1708,8 +1617,6 @@ SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c)
return NID_kx_dhe;
case SSL_kECDHE:
return NID_kx_ecdhe;
- case SSL_kGOST:
- return NID_kx_gost;
case SSL_kRSA:
return NID_kx_rsa;
default:
@@ -1726,8 +1633,6 @@ SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c)
return NID_auth_null;
case SSL_aECDSA:
return NID_auth_ecdsa;
- case SSL_aGOST01:
- return NID_auth_gost01;
case SSL_aRSA:
return NID_auth_rsa;
default:
diff --git a/lib/libssl/ssl_clnt.c b/lib/libssl/ssl_clnt.c
index 52f5de35a44..56fb9ba1c7e 100644
--- a/lib/libssl/ssl_clnt.c
+++ b/lib/libssl/ssl_clnt.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_clnt.c,v 1.163 2023/12/29 12:24:33 tb Exp $ */
+/* $OpenBSD: ssl_clnt.c,v 1.164 2024/02/03 15:58:33 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -161,10 +161,6 @@
#include <openssl/objects.h>
#include <openssl/opensslconf.h>
-#ifndef OPENSSL_NO_GOST
-#include <openssl/gost.h>
-#endif
-
#include "bytestring.h"
#include "dtls_local.h"
#include "ssl_local.h"
@@ -829,7 +825,6 @@ ssl3_get_server_hello(SSL *s)
uint8_t compression_method;
const SSL_CIPHER *cipher;
const SSL_METHOD *method;
- unsigned long alg_k;
int al, ret;
s->first_packet = 1;
@@ -1038,8 +1033,7 @@ ssl3_get_server_hello(SSL *s)
* Don't digest cached records if no sigalgs: we may need them for
* client authentication.
*/
- alg_k = s->s3->hs.cipher->algorithm_mkey;
- if (!(SSL_USE_SIGALGS(s) || (alg_k & SSL_kGOST)))
+ if (!SSL_USE_SIGALGS(s))
tls1_transcript_free(s);
if (!CBS_get_u8(&cbs, &compression_method))
@@ -1931,119 +1925,6 @@ ssl3_send_client_kex_ecdhe(SSL *s, CBB *cbb)
}
static int
-ssl3_send_client_kex_gost(SSL *s, CBB *cbb)
-{
- unsigned char premaster_secret[32], shared_ukm[32], tmp[256];
- EVP_PKEY_CTX *pkey_ctx = NULL;
- EVP_MD_CTX *ukm_hash = NULL;
- EVP_PKEY *pkey;
- size_t msglen;
- unsigned int md_len;
- CBB gostblob;
- int nid;
- int ret = 0;
-
- /* Get server certificate PKEY and create ctx from it */
- pkey = X509_get0_pubkey(s->session->peer_cert);
- if (pkey == NULL || s->session->peer_cert_type != SSL_PKEY_GOST01) {
- SSLerror(s, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER);
- goto err;
- }
- if ((pkey_ctx = EVP_PKEY_CTX_new(pkey, NULL)) == NULL) {
- SSLerror(s, ERR_R_MALLOC_FAILURE);
- goto err;
- }
-
- /*
- * If we have send a certificate, and certificate key parameters match
- * those of server certificate, use certificate key for key exchange.
- * Otherwise, generate ephemeral key pair.
- */
- if (EVP_PKEY_encrypt_init(pkey_ctx) <= 0)
- goto err;
-
- /* Generate session key. */
- arc4random_buf(premaster_secret, sizeof(premaster_secret));
-
- /*
- * If we have client certificate, use its secret as peer key.
- * XXX - this presumably lacks PFS.
- */
- if (s->s3->hs.tls12.cert_request != 0 &&
- s->cert->key->privatekey != NULL) {
- if (EVP_PKEY_derive_set_peer(pkey_ctx,
- s->cert->key->privatekey) <=0) {
- /*
- * If there was an error - just ignore it.
- * Ephemeral key would be used.
- */
- ERR_clear_error();
- }
- }
-
- /*
- * Compute shared IV and store it in algorithm-specific context data.
- */
- if ((ukm_hash = EVP_MD_CTX_new()) == NULL) {
- SSLerror(s, ERR_R_MALLOC_FAILURE);
- goto err;
- }
-
- /* XXX check handshake hash instead. */
- if (s->s3->hs.cipher->algorithm2 & SSL_HANDSHAKE_MAC_GOST94)
- nid = NID_id_GostR3411_94;
- else
- nid = NID_id_tc26_gost3411_2012_256;
- if (!EVP_DigestInit(ukm_hash, EVP_get_digestbynid(nid)))
- goto err;
- if (!EVP_DigestUpdate(ukm_hash, s->s3->client_random, SSL3_RANDOM_SIZE))
- goto err;
- if (!EVP_DigestUpdate(ukm_hash, s->s3->server_random, SSL3_RANDOM_SIZE))
- goto err;
- if (!EVP_DigestFinal_ex(ukm_hash, shared_ukm, &md_len))
- goto err;
- if (EVP_PKEY_CTX_ctrl(pkey_ctx, -1, EVP_PKEY_OP_ENCRYPT,
- EVP_PKEY_CTRL_SET_IV, 8, shared_ukm) < 0) {
- SSLerror(s, SSL_R_LIBRARY_BUG);
- goto err;
- }
-
- /*
- * Make GOST keytransport blob message, encapsulate it into sequence.
- */
- msglen = 255;
- if (EVP_PKEY_encrypt(pkey_ctx, tmp, &msglen, premaster_secret,
- sizeof(premaster_secret)) < 0) {
- SSLerror(s, SSL_R_LIBRARY_BUG);
- goto err;
- }
-
- if (!CBB_add_asn1(cbb, &gostblob, CBS_ASN1_SEQUENCE))
- goto err;
- if (!CBB_add_bytes(&gostblob, tmp, msglen))
- goto err;
- if (!CBB_flush(cbb))
- goto err;
-
- /* Check if pubkey from client certificate was used. */
- if (EVP_PKEY_CTX_ctrl(pkey_ctx, -1, -1, EVP_PKEY_CTRL_PEER_KEY, 2,
- NULL) > 0)
- s->s3->flags |= TLS1_FLAGS_SKIP_CERT_VERIFY;
-
- if (!tls12_derive_master_secret(s, premaster_secret, 32))
- goto err;
-
- ret = 1;
-
- err:
- explicit_bzero(premaster_secret, sizeof(premaster_secret));
- EVP_PKEY_CTX_free(pkey_ctx);
- EVP_MD_CTX_free(ukm_hash);
-
- return ret;
-}
-
-static int
ssl3_send_client_key_exchange(SSL *s)
{
unsigned long alg_k;
@@ -2067,9 +1948,6 @@ ssl3_send_client_key_exchange(SSL *s)
} else if (alg_k & SSL_kECDHE) {
if (!ssl3_send_client_kex_ecdhe(s, &kex))
goto err;
- } else if (alg_k & SSL_kGOST) {
- if (!ssl3_send_client_kex_gost(s, &kex))
- goto err;
} else {
ssl3_send_alert(s, SSL3_AL_FATAL,
SSL_AD_HANDSHAKE_FAILURE);
@@ -2115,14 +1993,6 @@ ssl3_send_client_verify_sigalgs(SSL *s, EVP_PKEY *pkey,
SSLerror(s, ERR_R_EVP_LIB);
goto err;
}
-#ifndef OPENSSL_NO_GOST
- if (sigalg->key_type == EVP_PKEY_GOSTR01 &&
- EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_SIGN,
- EVP_PKEY_CTRL_GOST_SIG_FORMAT, GOST_SIG_FORMAT_RS_LE, NULL) <= 0) {
- SSLerror(s, ERR_R_EVP_LIB);
- goto err;
- }
-#endif
if ((sigalg->flags & SIGALG_FLAG_RSA_PSS) &&
(!EVP_PKEY_CTX_set_rsa_padding(pctx, RSA_PKCS1_PSS_PADDING) ||
!EVP_PKEY_CTX_set_rsa_pss_saltlen(pctx, -1))) {
@@ -2230,72 +2100,6 @@ ssl3_send_client_verify_ec(SSL *s, EVP_PKEY *pkey, CBB *cert_verify)
return ret;
}
-#ifndef OPENSSL_NO_GOST
-static int
-ssl3_send_client_verify_gost(SSL *s, EVP_PKEY *pkey, CBB *cert_verify)
-{
- CBB cbb_signature;
- EVP_MD_CTX *mctx;
- EVP_PKEY_CTX *pctx;
- const EVP_MD *md;
- const unsigned char *hdata;
- unsigned char *signature = NULL;
- size_t signature_len;
- size_t hdata_len;
- int nid;
- int ret = 0;
-
- if ((mctx = EVP_MD_CTX_new()) == NULL)
- goto err;
-
- if (!tls1_transcript_data(s, &hdata, &hdata_len)) {
- SSLerror(s, ERR_R_INTERNAL_ERROR);
- goto err;
- }
- if (!EVP_PKEY_get_default_digest_nid(pkey, &nid) ||
- (md = EVP_get_digestbynid(nid)) == NULL) {
- SSLerror(s, ERR_R_EVP_LIB);
- goto err;
- }
- if (!EVP_DigestSignInit(mctx, &pctx, md, NULL, pkey)) {
- SSLerror(s, ERR_R_EVP_LIB);
- goto err;
- }
-#ifndef OPENSSL_NO_GOST
- if (EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_SIGN,
- EVP_PKEY_CTRL_GOST_SIG_FORMAT, GOST_SIG_FORMAT_RS_LE, NULL) <= 0) {
- SSLerror(s, ERR_R_EVP_LIB);
- goto err;
- }
-#endif
- if (!EVP_DigestSign(mctx, NULL, &signature_len, hdata, hdata_len)) {
- SSLerror(s, ERR_R_EVP_LIB);
- goto err;
- }
- if ((signature = calloc(1, signature_len)) == NULL) {
- SSLerror(s, ERR_R_MALLOC_FAILURE);
- goto err;
- }
- if (!EVP_DigestSign(mctx, signature, &signature_len, hdata, hdata_len)) {
- SSLerror(s, ERR_R_EVP_LIB);
- goto err;
- }
-
- if (!CBB_add_u16_length_prefixed(cert_verify, &cbb_signature))
- goto err;
- if (!CBB_add_bytes(&cbb_signature, signature, signature_len))
- goto err;
- if (!CBB_flush(cert_verify))
- goto err;
-
- ret = 1;
- err:
- EVP_MD_CTX_free(mctx);
- free(signature);
- return ret;
-}
-#endif
-
static int
ssl3_send_client_verify(SSL *s)
{
@@ -2331,12 +2135,6 @@ ssl3_send_client_verify(SSL *s)
} else if (EVP_PKEY_id(pkey) == EVP_PKEY_EC) {
if (!ssl3_send_client_verify_ec(s, pkey, &cert_verify))
goto err;
-#ifndef OPENSSL_NO_GOST
- } else if (EVP_PKEY_id(pkey) == NID_id_GostR3410_94 ||
- EVP_PKEY_id(pkey) == NID_id_GostR3410_2001) {
- if (!ssl3_send_client_verify_gost(s, pkey, &cert_verify))
- goto err;
-#endif
} else {
SSLerror(s, ERR_R_INTERNAL_ERROR);
goto err;
diff --git a/lib/libssl/ssl_err.c b/lib/libssl/ssl_err.c
index 28097ea70a9..30ca96b2fa4 100644
--- a/lib/libssl/ssl_err.c
+++ b/lib/libssl/ssl_err.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_err.c,v 1.46 2023/07/08 16:40:13 beck Exp $ */
+/* $OpenBSD: ssl_err.c,v 1.47 2024/02/03 15:58:33 beck Exp $ */
/* ====================================================================
* Copyright (c) 1999-2011 The OpenSSL Project. All rights reserved.
*
@@ -306,7 +306,6 @@ static ERR_STRING_DATA SSL_str_reasons[]= {
{ERR_REASON(SSL_R_NO_CLIENT_CERT_METHOD) , "no client cert method"},
{ERR_REASON(SSL_R_NO_CLIENT_CERT_RECEIVED), "no client cert received"},
{ERR_REASON(SSL_R_NO_COMPRESSION_SPECIFIED), "no compression specified"},
- {ERR_REASON(SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER), "Peer haven't sent GOST certificate, required for selected ciphersuite"},
{ERR_REASON(SSL_R_NO_METHOD_SPECIFIED) , "no method specified"},
{ERR_REASON(SSL_R_NO_PRIVATEKEY) , "no privatekey"},
{ERR_REASON(SSL_R_NO_PRIVATE_KEY_ASSIGNED), "no private key assigned"},
diff --git a/lib/libssl/ssl_lib.c b/lib/libssl/ssl_lib.c
index c97441c9c01..0277202de3b 100644
--- a/lib/libssl/ssl_lib.c
+++ b/lib/libssl/ssl_lib.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_lib.c,v 1.318 2023/12/29 12:24:33 tb Exp $ */
+/* $OpenBSD: ssl_lib.c,v 1.319 2024/02/03 15:58:34 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -2297,12 +2297,6 @@ ssl_set_cert_masks(SSL_CERT *c, const SSL_CIPHER *cipher)
mask_a |= SSL_aECDSA;
}
- cpk = &(c->pkeys[SSL_PKEY_GOST01]);
- if (cpk->x509 != NULL && cpk->privatekey != NULL) {
- mask_k |= SSL_kGOST;
- mask_a |= SSL_aGOST01;
- }
-
cpk = &(c->pkeys[SSL_PKEY_RSA]);
if (cpk->x509 != NULL && cpk->privatekey != NULL) {
mask_a |= SSL_aRSA;
@@ -2363,8 +2357,6 @@ ssl_get_server_send_pkey(const SSL *s)
i = SSL_PKEY_ECC;
} else if (alg_a & SSL_aRSA) {
i = SSL_PKEY_RSA;
- } else if (alg_a & SSL_aGOST01) {
- i = SSL_PKEY_GOST01;
} else { /* if (alg_a & SSL_aNULL) */
SSLerror(s, ERR_R_INTERNAL_ERROR);
return (NULL);
diff --git a/lib/libssl/ssl_local.h b/lib/libssl/ssl_local.h
index bd6275fac7e..b4d093b2262 100644
--- a/lib/libssl/ssl_local.h
+++ b/lib/libssl/ssl_local.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_local.h,v 1.12 2023/12/29 12:24:33 tb Exp $ */
+/* $OpenBSD: ssl_local.h,v 1.13 2024/02/03 15:58:34 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -197,7 +197,6 @@ __BEGIN_HIDDEN_DECLS
#define SSL_kRSA 0x00000001L /* RSA key exchange */
#define SSL_kDHE 0x00000008L /* tmp DH key no DH cert */
#define SSL_kECDHE 0x00000080L /* ephemeral ECDH */
-#define SSL_kGOST 0x00000200L /* GOST key exchange */
#define SSL_kTLS1_3 0x00000400L /* TLSv1.3 key exchange */
/* Bits for algorithm_auth (server authentication) */
@@ -205,7 +204,6 @@ __BEGIN_HIDDEN_DECLS
#define SSL_aDSS 0x00000002L /* DSS auth */
#define SSL_aNULL 0x00000004L /* no auth (i.e. use ADH or AECDH) */
#define SSL_aECDSA 0x00000040L /* ECDSA auth*/
-#define SSL_aGOST01 0x00000200L /* GOST R 34.10-2001 signature auth */
#define SSL_aTLS1_3 0x00000400L /* TLSv1.3 authentication */
/* Bits for algorithm_enc (symmetric encryption) */
@@ -218,7 +216,6 @@ __BEGIN_HIDDEN_DECLS
#define SSL_AES256 0x00000040L
#define SSL_CAMELLIA128 0x00000080L
#define SSL_CAMELLIA256 0x00000100L
-#define SSL_eGOST2814789CNT 0x00000200L
#define SSL_AES128GCM 0x00000400L
#define SSL_AES256GCM 0x00000800L
#define SSL_CHACHA20POLY1305 0x00001000L
@@ -231,8 +228,6 @@ __BEGIN_HIDDEN_DECLS
#define SSL_MD5 0x00000001L
#define SSL_SHA1 0x00000002L
-#define SSL_GOST94 0x00000004L
-#define SSL_GOST89MAC 0x00000008L
#define SSL_SHA256 0x00000010L
#define SSL_SHA384 0x00000020L
/* Not a real MAC, just an indication it is part of cipher */
@@ -251,10 +246,8 @@ __BEGIN_HIDDEN_DECLS
#define SSL_HANDSHAKE_MAC_MASK 0xff0
#define SSL_HANDSHAKE_MAC_MD5 0x010
#define SSL_HANDSHAKE_MAC_SHA 0x020
-#define SSL_HANDSHAKE_MAC_GOST94 0x040
#define SSL_HANDSHAKE_MAC_SHA256 0x080
#define SSL_HANDSHAKE_MAC_SHA384 0x100
-#define SSL_HANDSHAKE_MAC_STREEBOG256 0x200
#define SSL_HANDSHAKE_MAC_DEFAULT (SSL_HANDSHAKE_MAC_MD5 | SSL_HANDSHAKE_MAC_SHA)
#define SSL3_CK_ID 0x03000000
@@ -267,17 +260,9 @@ __BEGIN_HIDDEN_DECLS
#define TLS1_PRF_SHA1 (SSL_HANDSHAKE_MAC_SHA << TLS1_PRF_DGST_SHIFT)
#define TLS1_PRF_SHA256 (SSL_HANDSHAKE_MAC_SHA256 << TLS1_PRF_DGST_SHIFT)
#define TLS1_PRF_SHA384 (SSL_HANDSHAKE_MAC_SHA384 << TLS1_PRF_DGST_SHIFT)
-#define TLS1_PRF_GOST94 (SSL_HANDSHAKE_MAC_GOST94 << TLS1_PRF_DGST_SHIFT)
-#define TLS1_PRF_STREEBOG256 (SSL_HANDSHAKE_MAC_STREEBOG256 << TLS1_PRF_DGST_SHIFT)
#define TLS1_PRF (TLS1_PRF_MD5 | TLS1_PRF_SHA1)
/*
- * Stream MAC for GOST ciphersuites from cryptopro draft
- * (currently this also goes into algorithm2).
- */
-#define TLS1_STREAM_MAC 0x04
-
-/*
* SSL_CIPHER_ALGORITHM2_VARIABLE_NONCE_IN_RECORD is an algorithm2 flag that
* indicates that the variable part of the nonce is included as a prefix of
* the record (AES-GCM, for example, does this with an 8-byte variable nonce.)
@@ -324,8 +309,7 @@ __BEGIN_HIDDEN_DECLS
#define SSL_PKEY_RSA 0
#define SSL_PKEY_ECC 1
-#define SSL_PKEY_GOST01 2
-#define SSL_PKEY_NUM 3
+#define SSL_PKEY_NUM 2
#define SSL_MAX_EMPTY_RECORDS 32
diff --git a/lib/libssl/ssl_sigalgs.c b/lib/libssl/ssl_sigalgs.c
index f59beb4320a..9876e82a6f9 100644
--- a/lib/libssl/ssl_sigalgs.c
+++ b/lib/libssl/ssl_sigalgs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_sigalgs.c,v 1.48 2022/11/26 16:08:56 tb Exp $ */
+/* $OpenBSD: ssl_sigalgs.c,v 1.49 2024/02/03 15:58:34 beck Exp $ */
/*
* Copyright (c) 2018-2020 Bob Beck <beck@openbsd.org>
* Copyright (c) 2021 Joel Sing <jsing@openbsd.org>
@@ -41,14 +41,6 @@ const struct ssl_sigalg sigalgs[] = {
.security_level = 5,
.group_nid = NID_secp521r1,
},
-#ifndef OPENSSL_NO_GOST
- {
- .value = SIGALG_GOSTR12_512_STREEBOG_512,
- .key_type = EVP_PKEY_GOSTR12_512,
- .md = EVP_streebog512,
- .security_level = 0,
- },
-#endif
{
.value = SIGALG_RSA_PKCS1_SHA384,
.key_type = EVP_PKEY_RSA,
@@ -75,20 +67,6 @@ const struct ssl_sigalg sigalgs[] = {
.security_level = 3,
.group_nid = NID_X9_62_prime256v1,
},
-#ifndef OPENSSL_NO_GOST
- {
- .value = SIGALG_GOSTR12_256_STREEBOG_256,
- .key_type = EVP_PKEY_GOSTR12_256,
- .md = EVP_streebog256,
- .security_level = 0,
- },
- {
- .value = SIGALG_GOSTR01_GOST94,
- .key_type = EVP_PKEY_GOSTR01,
- .md = EVP_gostr341194,
- .security_level = 0, /* XXX */
- },
-#endif
{
.value = SIGALG_RSA_PSS_RSAE_SHA256,
.key_type = EVP_PKEY_RSA,
@@ -283,10 +261,6 @@ ssl_sigalg_for_legacy(SSL *s, EVP_PKEY *pkey)
return ssl_sigalg_lookup(SIGALG_RSA_PKCS1_SHA1);
case EVP_PKEY_EC:
return ssl_sigalg_lookup(SIGALG_ECDSA_SHA1);
-#ifndef OPENSSL_NO_GOST
- case EVP_PKEY_GOSTR01:
- return ssl_sigalg_lookup(SIGALG_GOSTR01_GOST94);
-#endif
}
SSLerror(s, SSL_R_UNKNOWN_PKEY_TYPE);
return NULL;
diff --git a/lib/libssl/ssl_sigalgs.h b/lib/libssl/ssl_sigalgs.h
index 21a54d642bc..5211ec6b628 100644
--- a/lib/libssl/ssl_sigalgs.h
+++ b/lib/libssl/ssl_sigalgs.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_sigalgs.h,v 1.26 2022/07/02 16:00:12 tb Exp $ */
+/* $OpenBSD: ssl_sigalgs.h,v 1.27 2024/02/03 15:58:34 beck Exp $ */
/*
* Copyright (c) 2018-2019 Bob Beck <beck@openbsd.org>
*
@@ -47,14 +47,6 @@ __BEGIN_HIDDEN_DECLS
#define SIGALG_PRIVATE_START 0xFE00
#define SIGALG_PRIVATE_END 0xFFFF
-/*
- * If Russia can elect the US President, surely
- * IANA could fix this problem.
- */
-#define SIGALG_GOSTR12_512_STREEBOG_512 0xEFEF
-#define SIGALG_GOSTR12_256_STREEBOG_256 0xEEEE
-#define SIGALG_GOSTR01_GOST94 0xEDED
-
/* Legacy sigalg for < TLSv1.2 same value as BoringSSL uses. */
#define SIGALG_RSA_PKCS1_MD5_SHA1 0xFF01
diff --git a/lib/libssl/ssl_srvr.c b/lib/libssl/ssl_srvr.c
index f26fde50610..117afac85e6 100644
--- a/lib/libssl/ssl_srvr.c
+++ b/lib/libssl/ssl_srvr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssl_srvr.c,v 1.158 2023/12/29 12:24:33 tb Exp $ */
+/* $OpenBSD: ssl_srvr.c,v 1.159 2024/02/03 15:58:34 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -162,10 +162,6 @@
#include <openssl/opensslconf.h>
#include <openssl/x509.h>
-#ifndef OPENSSL_NO_GOST
-#include <openssl/gost.h>
-#endif
-
#include "bytestring.h"
#include "dtls_local.h"
#include "ssl_local.h"
@@ -564,15 +560,7 @@ ssl3_accept(SSL *s)
}
alg_k = s->s3->hs.cipher->algorithm_mkey;
- if (s->s3->flags & TLS1_FLAGS_SKIP_CERT_VERIFY) {
- /*
- * A GOST client may use the key from its
- * certificate for key exchange, in which case
- * the CertificateVerify message is not sent.
- */
- s->s3->hs.state = SSL3_ST_SR_FINISHED_A;
- s->init_num = 0;
- } else if (SSL_USE_SIGALGS(s) || (alg_k & SSL_kGOST)) {
+ if (SSL_USE_SIGALGS(s)) {
s->s3->hs.state = SSL3_ST_SR_CERT_VRFY_A;
s->init_num = 0;
if (!s->session->peer_cert)
@@ -795,7 +783,6 @@ ssl3_get_client_hello(SSL *s)
unsigned long id;
SSL_CIPHER *c;
STACK_OF(SSL_CIPHER) *ciphers = NULL;
- unsigned long alg_k;
const SSL_METHOD *method;
uint16_t shared_version;
@@ -1138,10 +1125,8 @@ ssl3_get_client_hello(SSL *s)
if (!tls1_transcript_hash_init(s))
goto err;
- alg_k = s->s3->hs.cipher->algorithm_mkey;
- if (!(SSL_USE_SIGALGS(s) || (alg_k & SSL_kGOST)) ||
- !(s->verify_mode & SSL_VERIFY_PEER))
- tls1_transcript_free(s);
+ if (!SSL_USE_SIGALGS(s) || !(s->verify_mode & SSL_VERIFY_PEER))
+ tls1_transcript_free(s);
/*
* We now have the following setup.
@@ -1816,75 +1801,6 @@ ssl3_get_client_kex_ecdhe(SSL *s, CBS *cbs)
}
static int
-ssl3_get_client_kex_gost(SSL *s, CBS *cbs)
-{
- unsigned char premaster_secret[32];
- EVP_PKEY_CTX *pkey_ctx = NULL;
- EVP_PKEY *client_pubkey;
- EVP_PKEY *pkey = NULL;
- size_t outlen;
- CBS gostblob;
-
- /* Get our certificate private key*/
-#ifndef OPENSSL_NO_GOST
- if ((s->s3->hs.cipher->algorithm_auth & SSL_aGOST01) != 0)
- pkey = s->cert->pkeys[SSL_PKEY_GOST01].privatekey;
-#endif
-
- if ((pkey_ctx = EVP_PKEY_CTX_new(pkey, NULL)) == NULL)
- goto err;
- if (EVP_PKEY_decrypt_init(pkey_ctx) <= 0)
- goto err;
-
- /*
- * If client certificate is present and is of the same type,
- * maybe use it for key exchange.
- * Don't mind errors from EVP_PKEY_derive_set_peer, because
- * it is completely valid to use a client certificate for
- * authorization only.
- */
- if ((client_pubkey = X509_get0_pubkey(s->session->peer_cert)) != NULL) {
- if (EVP_PKEY_derive_set_peer(pkey_ctx, client_pubkey) <= 0)
- ERR_clear_error();
- }
-
- /* Decrypt session key */
- if (!CBS_get_asn1(cbs, &gostblob, CBS_ASN1_SEQUENCE))
- goto decode_err;
- if (CBS_len(cbs) != 0)
- goto decode_err;
- outlen = sizeof(premaster_secret);
- if (EVP_PKEY_decrypt(pkey_ctx, premaster_secret, &outlen,
- CBS_data(&gostblob), CBS_len(&gostblob)) <= 0) {
- SSLerror(s, SSL_R_DECRYPTION_FAILED);
- goto err;
- }
-
- if (!tls12_derive_master_secret(s, premaster_secret,
- sizeof(premaster_secret)))
- goto err;
-
- /* Check if pubkey from client certificate was used */
- if (EVP_PKEY_CTX_ctrl(pkey_ctx, -1, -1, EVP_PKEY_CTRL_PEER_KEY,
- 2, NULL) > 0)
- s->s3->flags |= TLS1_FLAGS_SKIP_CERT_VERIFY;
-
- explicit_bzero(premaster_secret, sizeof(premaster_secret));
- EVP_PKEY_CTX_free(pkey_ctx);
-
- return 1;
-
- decode_err:
- SSLerror(s, SSL_R_BAD_PACKET_LENGTH);
- ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR);
- err:
- explicit_bzero(premaster_secret, sizeof(premaster_secret));
- EVP_PKEY_CTX_free(pkey_ctx);
-
- return 0;
-}
-
-static int
ssl3_get_client_key_exchange(SSL *s)
{
unsigned long alg_k;
@@ -1912,9 +1828,6 @@ ssl3_get_client_key_exchange(SSL *s)
} else if (alg_k & SSL_kECDHE) {
if (!ssl3_get_client_kex_ecdhe(s, &cbs))
goto err;
- } else if (alg_k & SSL_kGOST) {
- if (!ssl3_get_client_kex_gost(s, &cbs))
- goto err;
} else {
al = SSL_AD_HANDSHAKE_FAILURE;
SSLerror(s, SSL_R_UNKNOWN_CIPHER_TYPE);
@@ -2043,15 +1956,6 @@ ssl3_get_cert_verify(SSL *s)
al = SSL_AD_INTERNAL_ERROR;
goto fatal_err;
}
-#ifndef OPENSSL_NO_GOST
- if (sigalg->key_type == EVP_PKEY_GOSTR01 &&
- EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_VERIFY,
- EVP_PKEY_CTRL_GOST_SIG_FORMAT, GOST_SIG_FORMAT_RS_LE,
- NULL) <= 0) {
- al = SSL_AD_INTERNAL_ERROR;
- goto fatal_err;
- }
-#endif
if (EVP_DigestVerify(mctx, CBS_data(&signature),
CBS_len(&signature), hdata, hdatalen) <= 0) {
SSLerror(s, ERR_R_EVP_LIB);
@@ -2096,54 +2000,6 @@ ssl3_get_cert_verify(SSL *s)
SSLerror(s, SSL_R_BAD_ECDSA_SIGNATURE);
goto fatal_err;
}
-#ifndef OPENSSL_NO_GOST
- } else if (EVP_PKEY_id(pkey) == NID_id_GostR3410_94 ||
- EVP_PKEY_id(pkey) == NID_id_GostR3410_2001) {
- unsigned char sigbuf[128];
- unsigned int siglen = sizeof(sigbuf);
- EVP_PKEY_CTX *pctx;
- const EVP_MD *md;
- int nid;
-
- if (!tls1_transcript_data(s, &hdata, &hdatalen)) {
- SSLerror(s, ERR_R_INTERNAL_ERROR);
- al = SSL_AD_INTERNAL_ERROR;
- goto fatal_err;
- }
- if (!EVP_PKEY_get_default_digest_nid(pkey, &nid) ||
- !(md = EVP_get_digestbynid(nid))) {
- SSLerror(s, ERR_R_EVP_LIB);
- al = SSL_AD_INTERNAL_ERROR;
- goto fatal_err;
- }
- if ((pctx = EVP_PKEY_CTX_new(pkey, NULL)) == NULL) {
- SSLerror(s, ERR_R_EVP_LIB);
- al = SSL_AD_INTERNAL_ERROR;
- goto fatal_err;
- }
- if (!EVP_DigestInit_ex(mctx, md, NULL) ||
- !EVP_DigestUpdate(mctx, hdata, hdatalen) ||
- !EVP_DigestFinal(mctx, sigbuf, &siglen) ||
- (EVP_PKEY_verify_init(pctx) <= 0) ||
- (EVP_PKEY_CTX_set_signature_md(pctx, md) <= 0) ||
- (EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_VERIFY,
- EVP_PKEY_CTRL_GOST_SIG_FORMAT,
- GOST_SIG_FORMAT_RS_LE, NULL) <= 0)) {
- SSLerror(s, ERR_R_EVP_LIB);
- al = SSL_AD_INTERNAL_ERROR;
- EVP_PKEY_CTX_free(pctx);
- goto fatal_err;
- }
- if (EVP_PKEY_verify(pctx, CBS_data(&signature),
- CBS_len(&signature), sigbuf, siglen) <= 0) {
- al = SSL_AD_DECRYPT_ERROR;
- SSLerror(s, SSL_R_BAD_SIGNATURE);
- EVP_PKEY_CTX_free(pctx);
- goto fatal_err;
- }
-
- EVP_PKEY_CTX_free(pctx);
-#endif
} else {
SSLerror(s, ERR_R_INTERNAL_ERROR);
al = SSL_AD_UNSUPPORTED_CERTIFICATE;
diff --git a/lib/libssl/tls1.h b/lib/libssl/tls1.h
index 2bdbd3c1843..daf6cba6faf 100644
--- a/lib/libssl/tls1.h
+++ b/lib/libssl/tls1.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: tls1.h,v 1.56 2022/07/17 14:39:09 jsing Exp $ */
+/* $OpenBSD: tls1.h,v 1.57 2024/02/03 15:58:34 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -741,18 +741,12 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb)
#define TLS_CT_DSS_SIGN 2
#define TLS_CT_RSA_FIXED_DH 3
#define TLS_CT_DSS_FIXED_DH 4
-#define TLS_CT_GOST94_SIGN 21
-#define TLS_CT_GOST01_SIGN 22
#define TLS_CT_ECDSA_SIGN 64
#define TLS_CT_RSA_FIXED_ECDH 65
#define TLS_CT_ECDSA_FIXED_ECDH 66
-#define TLS_CT_GOST12_256_SIGN 67
-#define TLS_CT_GOST12_512_SIGN 68
-#define TLS_CT_GOST12_256_SIGN_COMPAT 238 /* pre-IANA, for compat */
-#define TLS_CT_GOST12_512_SIGN_COMPAT 239 /* pre-IANA, for compat */
/* when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see
* comment there) */
-#define TLS_CT_NUMBER 13
+#define TLS_CT_NUMBER 7
#define TLS1_FINISH_MAC_LENGTH 12
diff --git a/lib/libssl/tls12_key_schedule.c b/lib/libssl/tls12_key_schedule.c
index 6d714c1183a..1ac003329e3 100644
--- a/lib/libssl/tls12_key_schedule.c
+++ b/lib/libssl/tls12_key_schedule.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tls12_key_schedule.c,v 1.3 2022/11/26 16:08:56 tb Exp $ */
+/* $OpenBSD: tls12_key_schedule.c,v 1.4 2024/02/03 15:58:34 beck Exp $ */
/*
* Copyright (c) 2021 Joel Sing <jsing@openbsd.org>
*
@@ -124,10 +124,6 @@ tls12_key_block_generate(struct tls12_key_block *kb, SSL *s,
mac_key_len = EVP_MD_size(mac_hash);
key_len = EVP_CIPHER_key_length(cipher);
iv_len = EVP_CIPHER_iv_length(cipher);
-
- /* Special handling for GOST... */
- if (EVP_MD_type(mac_hash) == NID_id_Gost28147_89_MAC)
- mac_key_len = 32;
}
if (mac_key_len > EVP_MAX_MD_SIZE)
diff --git a/lib/libssl/tls12_record_layer.c b/lib/libssl/tls12_record_layer.c
index 3f2fe71e210..9786d7d0bda 100644
--- a/lib/libssl/tls12_record_layer.c
+++ b/lib/libssl/tls12_record_layer.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tls12_record_layer.c,v 1.41 2024/01/18 16:30:43 tb Exp $ */
+/* $OpenBSD: tls12_record_layer.c,v 1.42 2024/02/03 15:58:34 beck Exp $ */
/*
* Copyright (c) 2020 Joel Sing <jsing@openbsd.org>
*
@@ -468,7 +468,6 @@ tls12_record_layer_ccs_cipher(struct tls12_record_layer *rl,
CBS *iv)
{
EVP_PKEY *mac_pkey = NULL;
- int gost_param_nid;
int mac_type;
int ret = 0;
@@ -484,25 +483,10 @@ tls12_record_layer_ccs_cipher(struct tls12_record_layer *rl,
goto err;
if (EVP_CIPHER_key_length(rl->cipher) != CBS_len(key))
goto err;
-
-#ifndef OPENSSL_NO_GOST
- /* XXX die die die */
- /* Special handling for GOST... */
- if (EVP_MD_type(rl->mac_hash) == NID_id_Gost28147_89_MAC) {
- if (CBS_len(mac_key) != 32)
- goto err;
- mac_type = EVP_PKEY_GOSTIMIT;
- rp->stream_mac = 1;
- } else {
-#endif
- if (CBS_len(mac_key) > INT_MAX)
- goto err;
- if (EVP_MD_size(rl->mac_hash) != CBS_len(mac_key))
- goto err;
-#ifndef OPENSSL_NO_GOST
- }
-#endif
-
+ if (CBS_len(mac_key) > INT_MAX)
+ goto err;
+ if (EVP_MD_size(rl->mac_hash) != CBS_len(mac_key))
+ goto err;
if ((rp->cipher_ctx = EVP_CIPHER_CTX_new()) == NULL)
goto err;
if ((rp->hash_ctx = EVP_MD_CTX_new()) == NULL)
@@ -524,23 +508,6 @@ tls12_record_layer_ccs_cipher(struct tls12_record_layer *rl,
mac_pkey) <= 0)
goto err;
- /* More special handling for GOST... */
- if (EVP_CIPHER_nid(rl->cipher) == NID_gost89_cnt) {
- gost_param_nid = NID_id_tc26_gost_28147_param_Z;
- if (EVP_MD_type(rl->handshake_hash) == NID_id_GostR3411_94)
- gost_param_nid = NID_id_Gost28147_89_CryptoPro_A_ParamSet;
-
- if (EVP_CIPHER_CTX_ctrl(rp->cipher_ctx, EVP_CTRL_GOST_SET_SBOX,
- gost_param_nid, 0) <= 0)
- goto err;
-
- if (EVP_MD_type(rl->mac_hash) == NID_id_Gost28147_89_MAC) {
- if (EVP_MD_CTX_ctrl(rp->hash_ctx, EVP_MD_CTRL_GOST_SET_SBOX,
- gost_param_nid, 0) <= 0)
- goto err;
- }
- }
-
ret = 1;
err:
diff --git a/regress/lib/libssl/client/clienttest.c b/regress/lib/libssl/client/clienttest.c
index 8fb5a1da7f5..18cf2d0c957 100644
--- a/regress/lib/libssl/client/clienttest.c
+++ b/regress/lib/libssl/client/clienttest.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: clienttest.c,v 1.42 2023/07/11 17:03:44 tb Exp $ */
+/* $OpenBSD: clienttest.c,v 1.43 2024/02/03 15:58:34 beck Exp $ */
/*
* Copyright (c) 2015 Joel Sing <jsing@openbsd.org>
*
@@ -36,7 +36,7 @@
#define TLS13_RANDOM_OFFSET (TLS13_HM_OFFSET + 2)
#define TLS13_SESSION_OFFSET (TLS13_HM_OFFSET + 34)
#define TLS13_CIPHER_OFFSET (TLS13_HM_OFFSET + 69)
-#define TLS13_KEY_SHARE_OFFSET (TLS13_HM_OFFSET + 188)
+#define TLS13_KEY_SHARE_OFFSET (TLS13_HM_OFFSET + 184)
#define TLS13_ONLY_KEY_SHARE_OFFSET (TLS13_HM_OFFSET + 98)
#define TLS1_3_VERSION_ONLY (TLS1_3_VERSION | 0x10000)
@@ -75,57 +75,54 @@ static const uint8_t cipher_list_dtls12_aes[] = {
0xc0, 0x30, 0xc0, 0x2c, 0xc0, 0x28, 0xc0, 0x24,
0xc0, 0x14, 0xc0, 0x0a, 0x00, 0x9f, 0x00, 0x6b,
0x00, 0x39, 0xcc, 0xa9, 0xcc, 0xa8, 0xcc, 0xaa,
- 0xff, 0x85, 0x00, 0xc4, 0x00, 0x88, 0x00, 0x81,
- 0x00, 0x9d, 0x00, 0x3d, 0x00, 0x35, 0x00, 0xc0,
- 0x00, 0x84, 0xc0, 0x2f, 0xc0, 0x2b, 0xc0, 0x27,
- 0xc0, 0x23, 0xc0, 0x13, 0xc0, 0x09, 0x00, 0x9e,
- 0x00, 0x67, 0x00, 0x33, 0x00, 0xbe, 0x00, 0x45,
- 0x00, 0x9c, 0x00, 0x3c, 0x00, 0x2f, 0x00, 0xba,
- 0x00, 0x41, 0xc0, 0x12, 0xc0, 0x08, 0x00, 0x16,
- 0x00, 0x0a, 0x00, 0xff
+ 0x00, 0xc4, 0x00, 0x88, 0x00, 0x9d, 0x00, 0x3d,
+ 0x00, 0x35, 0x00, 0xc0, 0x00, 0x84, 0xc0, 0x2f,
+ 0xc0, 0x2b, 0xc0, 0x27, 0xc0, 0x23, 0xc0, 0x13,
+ 0xc0, 0x09, 0x00, 0x9e, 0x00, 0x67, 0x00, 0x33,
+ 0x00, 0xbe, 0x00, 0x45, 0x00, 0x9c, 0x00, 0x3c,
+ 0x00, 0x2f, 0x00, 0xba, 0x00, 0x41, 0xc0, 0x12,
+ 0xc0, 0x08, 0x00, 0x16, 0x00, 0x0a, 0x00, 0xff,
};
static const uint8_t cipher_list_dtls12_chacha[] = {
0xcc, 0xa9, 0xcc, 0xa8, 0xcc, 0xaa, 0xc0, 0x30,
0xc0, 0x2c, 0xc0, 0x28, 0xc0, 0x24, 0xc0, 0x14,
0xc0, 0x0a, 0x00, 0x9f, 0x00, 0x6b, 0x00, 0x39,
- 0xff, 0x85, 0x00, 0xc4, 0x00, 0x88, 0x00, 0x81,
- 0x00, 0x9d, 0x00, 0x3d, 0x00, 0x35, 0x00, 0xc0,
- 0x00, 0x84, 0xc0, 0x2f, 0xc0, 0x2b, 0xc0, 0x27,
- 0xc0, 0x23, 0xc0, 0x13, 0xc0, 0x09, 0x00, 0x9e,
- 0x00, 0x67, 0x00, 0x33, 0x00, 0xbe, 0x00, 0x45,
- 0x00, 0x9c, 0x00, 0x3c, 0x00, 0x2f, 0x00, 0xba,
- 0x00, 0x41, 0xc0, 0x12, 0xc0, 0x08, 0x00, 0x16,
- 0x00, 0x0a, 0x00, 0xff,
+ 0x00, 0xc4, 0x00, 0x88, 0x00, 0x9d, 0x00, 0x3d,
+ 0x00, 0x35, 0x00, 0xc0, 0x00, 0x84, 0xc0, 0x2f,
+ 0xc0, 0x2b, 0xc0, 0x27, 0xc0, 0x23, 0xc0, 0x13,
+ 0xc0, 0x09, 0x00, 0x9e, 0x00, 0x67, 0x00, 0x33,
+ 0x00, 0xbe, 0x00, 0x45, 0x00, 0x9c, 0x00, 0x3c,
+ 0x00, 0x2f, 0x00, 0xba, 0x00, 0x41, 0xc0, 0x12,
+ 0xc0, 0x08, 0x00, 0x16, 0x00, 0x0a, 0x00, 0xff,
};
static const uint8_t client_hello_dtls12[] = {
0x16, 0xfe, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbe, 0x01, 0x00, 0x00,
- 0xb2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xb2, 0xfe, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xba, 0x01, 0x00, 0x00,
+ 0xae, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xae, 0xfe, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0xc0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc0,
0x30, 0xc0, 0x2c, 0xc0, 0x28, 0xc0, 0x24, 0xc0,
0x14, 0xc0, 0x0a, 0x00, 0x9f, 0x00, 0x6b, 0x00,
- 0x39, 0xcc, 0xa9, 0xcc, 0xa8, 0xcc, 0xaa, 0xff,
- 0x85, 0x00, 0xc4, 0x00, 0x88, 0x00, 0x81, 0x00,
- 0x9d, 0x00, 0x3d, 0x00, 0x35, 0x00, 0xc0, 0x00,
- 0x84, 0xc0, 0x2f, 0xc0, 0x2b, 0xc0, 0x27, 0xc0,
- 0x23, 0xc0, 0x13, 0xc0, 0x09, 0x00, 0x9e, 0x00,
- 0x67, 0x00, 0x33, 0x00, 0xbe, 0x00, 0x45, 0x00,
- 0x9c, 0x00, 0x3c, 0x00, 0x2f, 0x00, 0xba, 0x00,
- 0x41, 0xc0, 0x12, 0xc0, 0x08, 0x00, 0x16, 0x00,
- 0x0a, 0x00, 0xff, 0x01, 0x00, 0x00, 0x34, 0x00,
- 0x0b, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0a, 0x00,
- 0x0a, 0x00, 0x08, 0x00, 0x1d, 0x00, 0x17, 0x00,
- 0x18, 0x00, 0x19, 0x00, 0x23, 0x00, 0x00, 0x00,
- 0x0d, 0x00, 0x18, 0x00, 0x16, 0x08, 0x06, 0x06,
- 0x01, 0x06, 0x03, 0x08, 0x05, 0x05, 0x01, 0x05,
- 0x03, 0x08, 0x04, 0x04, 0x01, 0x04, 0x03, 0x02,
- 0x01, 0x02, 0x03,
+ 0x39, 0xcc, 0xa9, 0xcc, 0xa8, 0xcc, 0xaa, 0x00,
+ 0xc4, 0x00, 0x88, 0x00, 0x9d, 0x00, 0x3d, 0x00,
+ 0x35, 0x00, 0xc0, 0x00, 0x84, 0xc0, 0x2f, 0xc0,
+ 0x2b, 0xc0, 0x27, 0xc0, 0x23, 0xc0, 0x13, 0xc0,
+ 0x09, 0x00, 0x9e, 0x00, 0x67, 0x00, 0x33, 0x00,
+ 0xbe, 0x00, 0x45, 0x00, 0x9c, 0x00, 0x3c, 0x00,
+ 0x2f, 0x00, 0xba, 0x00, 0x41, 0xc0, 0x12, 0xc0,
+ 0x08, 0x00, 0x16, 0x00, 0x0a, 0x00, 0xff, 0x01,
+ 0x00, 0x00, 0x34, 0x00, 0x0b, 0x00, 0x02, 0x01,
+ 0x00, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x08, 0x00,
+ 0x1d, 0x00, 0x17, 0x00, 0x18, 0x00, 0x19, 0x00,
+ 0x23, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x18, 0x00,
+ 0x16, 0x08, 0x06, 0x06, 0x01, 0x06, 0x03, 0x08,
+ 0x05, 0x05, 0x01, 0x05, 0x03, 0x08, 0x04, 0x04,
+ 0x01, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03,
};
static const uint8_t cipher_list_tls10[] = {
@@ -186,92 +183,90 @@ static const uint8_t cipher_list_tls12_aes[] = {
0xc0, 0x30, 0xc0, 0x2c, 0xc0, 0x28, 0xc0, 0x24,
0xc0, 0x14, 0xc0, 0x0a, 0x00, 0x9f, 0x00, 0x6b,
0x00, 0x39, 0xcc, 0xa9, 0xcc, 0xa8, 0xcc, 0xaa,
- 0xff, 0x85, 0x00, 0xc4, 0x00, 0x88, 0x00, 0x81,
- 0x00, 0x9d, 0x00, 0x3d, 0x00, 0x35, 0x00, 0xc0,
- 0x00, 0x84, 0xc0, 0x2f, 0xc0, 0x2b, 0xc0, 0x27,
- 0xc0, 0x23, 0xc0, 0x13, 0xc0, 0x09, 0x00, 0x9e,
- 0x00, 0x67, 0x00, 0x33, 0x00, 0xbe, 0x00, 0x45,
- 0x00, 0x9c, 0x00, 0x3c, 0x00, 0x2f, 0x00, 0xba,
- 0x00, 0x41, 0xc0, 0x11, 0xc0, 0x07, 0x00, 0x05,
- 0xc0, 0x12, 0xc0, 0x08, 0x00, 0x16, 0x00, 0x0a,
- 0x00, 0xff,
+ 0x00, 0xc4, 0x00, 0x88, 0x00, 0x9d, 0x00, 0x3d,
+ 0x00, 0x35, 0x00, 0xc0, 0x00, 0x84, 0xc0, 0x2f,
+ 0xc0, 0x2b, 0xc0, 0x27, 0xc0, 0x23, 0xc0, 0x13,
+ 0xc0, 0x09, 0x00, 0x9e, 0x00, 0x67, 0x00, 0x33,
+ 0x00, 0xbe, 0x00, 0x45, 0x00, 0x9c, 0x00, 0x3c,
+ 0x00, 0x2f, 0x00, 0xba, 0x00, 0x41, 0xc0, 0x11,
+ 0xc0, 0x07, 0x00, 0x05, 0xc0, 0x12, 0xc0, 0x08,
+ 0x00, 0x16, 0x00, 0x0a, 0x00, 0xff,
};
static const uint8_t cipher_list_tls12_chacha[] = {
0xcc, 0xa9, 0xcc, 0xa8, 0xcc, 0xaa, 0xc0, 0x30,
0xc0, 0x2c, 0xc0, 0x28, 0xc0, 0x24, 0xc0, 0x14,
0xc0, 0x0a, 0x00, 0x9f, 0x00, 0x6b, 0x00, 0x39,
- 0xff, 0x85, 0x00, 0xc4, 0x00, 0x88, 0x00, 0x81,
- 0x00, 0x9d, 0x00, 0x3d, 0x00, 0x35, 0x00, 0xc0,
- 0x00, 0x84, 0xc0, 0x2f, 0xc0, 0x2b, 0xc0, 0x27,
- 0xc0, 0x23, 0xc0, 0x13, 0xc0, 0x09, 0x00, 0x9e,
- 0x00, 0x67, 0x00, 0x33, 0x00, 0xbe, 0x00, 0x45,
- 0x00, 0x9c, 0x00, 0x3c, 0x00, 0x2f, 0x00, 0xba,
- 0x00, 0x41, 0xc0, 0x11, 0xc0, 0x07, 0x00, 0x05,
- 0xc0, 0x12, 0xc0, 0x08, 0x00, 0x16, 0x00, 0x0a,
- 0x00, 0xff,
+ 0x00, 0xc4, 0x00, 0x88, 0x00, 0x9d, 0x00, 0x3d,
+ 0x00, 0x35, 0x00, 0xc0, 0x00, 0x84, 0xc0, 0x2f,
+ 0xc0, 0x2b, 0xc0, 0x27, 0xc0, 0x23, 0xc0, 0x13,
+ 0xc0, 0x09, 0x00, 0x9e, 0x00, 0x67, 0x00, 0x33,
+ 0x00, 0xbe, 0x00, 0x45, 0x00, 0x9c, 0x00, 0x3c,
+ 0x00, 0x2f, 0x00, 0xba, 0x00, 0x41, 0xc0, 0x11,
+ 0xc0, 0x07, 0x00, 0x05, 0xc0, 0x12, 0xc0, 0x08,
+ 0x00, 0x16, 0x00, 0x0a, 0x00, 0xff,
};
static const uint8_t client_hello_tls12[] = {
- 0x16, 0x03, 0x03, 0x00, 0xbb, 0x01, 0x00, 0x00,
- 0xb7, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x16, 0x03, 0x03, 0x00, 0xb7, 0x01, 0x00, 0x00,
+ 0xb3, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xc0, 0x30,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0xc0, 0x30,
0xc0, 0x2c, 0xc0, 0x28, 0xc0, 0x24, 0xc0, 0x14,
0xc0, 0x0a, 0x00, 0x9f, 0x00, 0x6b, 0x00, 0x39,
- 0xcc, 0xa9, 0xcc, 0xa8, 0xcc, 0xaa, 0xff, 0x85,
- 0x00, 0xc4, 0x00, 0x88, 0x00, 0x81, 0x00, 0x9d,
- 0x00, 0x3d, 0x00, 0x35, 0x00, 0xc0, 0x00, 0x84,
- 0xc0, 0x2f, 0xc0, 0x2b, 0xc0, 0x27, 0xc0, 0x23,
- 0xc0, 0x13, 0xc0, 0x09, 0x00, 0x9e, 0x00, 0x67,
- 0x00, 0x33, 0x00, 0xbe, 0x00, 0x45, 0x00, 0x9c,
- 0x00, 0x3c, 0x00, 0x2f, 0x00, 0xba, 0x00, 0x41,
- 0xc0, 0x11, 0xc0, 0x07, 0x00, 0x05, 0xc0, 0x12,
- 0xc0, 0x08, 0x00, 0x16, 0x00, 0x0a, 0x00, 0xff,
- 0x01, 0x00, 0x00, 0x34, 0x00, 0x0b, 0x00, 0x02,
- 0x01, 0x00, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x08,
- 0x00, 0x1d, 0x00, 0x17, 0x00, 0x18, 0x00, 0x19,
- 0x00, 0x23, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x18,
- 0x00, 0x16, 0x08, 0x06, 0x06, 0x01, 0x06, 0x03,
- 0x08, 0x05, 0x05, 0x01, 0x05, 0x03, 0x08, 0x04,
- 0x04, 0x01, 0x04, 0x03, 0x02, 0x01, 0x02, 0x03,
+ 0xcc, 0xa9, 0xcc, 0xa8, 0xcc, 0xaa, 0x00, 0xc4,
+ 0x00, 0x88, 0x00, 0x9d, 0x00, 0x3d, 0x00, 0x35,
+ 0x00, 0xc0, 0x00, 0x84, 0xc0, 0x2f, 0xc0, 0x2b,
+ 0xc0, 0x27, 0xc0, 0x23, 0xc0, 0x13, 0xc0, 0x09,
+ 0x00, 0x9e, 0x00, 0x67, 0x00, 0x33, 0x00, 0xbe,
+ 0x00, 0x45, 0x00, 0x9c, 0x00, 0x3c, 0x00, 0x2f,
+ 0x00, 0xba, 0x00, 0x41, 0xc0, 0x11, 0xc0, 0x07,
+ 0x00, 0x05, 0xc0, 0x12, 0xc0, 0x08, 0x00, 0x16,
+ 0x00, 0x0a, 0x00, 0xff, 0x01, 0x00, 0x00, 0x34,
+ 0x00, 0x0b, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0a,
+ 0x00, 0x0a, 0x00, 0x08, 0x00, 0x1d, 0x00, 0x17,
+ 0x00, 0x18, 0x00, 0x19, 0x00, 0x23, 0x00, 0x00,
+ 0x00, 0x0d, 0x00, 0x18, 0x00, 0x16, 0x08, 0x06,
+ 0x06, 0x01, 0x06, 0x03, 0x08, 0x05, 0x05, 0x01,
+ 0x05, 0x03, 0x08, 0x04, 0x04, 0x01, 0x04, 0x03,
+ 0x02, 0x01, 0x02, 0x03,
};
static const uint8_t cipher_list_tls13_aes[] = {
0x13, 0x02, 0x13, 0x03, 0x13, 0x01, 0xc0, 0x30,
0xc0, 0x2c, 0xc0, 0x28, 0xc0, 0x24, 0xc0, 0x14,
0xc0, 0x0a, 0x00, 0x9f, 0x00, 0x6b, 0x00, 0x39,
- 0xcc, 0xa9, 0xcc, 0xa8, 0xcc, 0xaa, 0xff, 0x85,
- 0x00, 0xc4, 0x00, 0x88, 0x00, 0x81, 0x00, 0x9d,
- 0x00, 0x3d, 0x00, 0x35, 0x00, 0xc0, 0x00, 0x84,
- 0xc0, 0x2f, 0xc0, 0x2b, 0xc0, 0x27, 0xc0, 0x23,
- 0xc0, 0x13, 0xc0, 0x09, 0x00, 0x9e, 0x00, 0x67,
- 0x00, 0x33, 0x00, 0xbe, 0x00, 0x45, 0x00, 0x9c,
- 0x00, 0x3c, 0x00, 0x2f, 0x00, 0xba, 0x00, 0x41,
- 0xc0, 0x11, 0xc0, 0x07, 0x00, 0x05, 0xc0, 0x12,
- 0xc0, 0x08, 0x00, 0x16, 0x00, 0x0a, 0x00, 0xff,
+ 0xcc, 0xa9, 0xcc, 0xa8, 0xcc, 0xaa, 0x00, 0xc4,
+ 0x00, 0x88, 0x00, 0x9d, 0x00, 0x3d, 0x00, 0x35,
+ 0x00, 0xc0, 0x00, 0x84, 0xc0, 0x2f, 0xc0, 0x2b,
+ 0xc0, 0x27, 0xc0, 0x23, 0xc0, 0x13, 0xc0, 0x09,
+ 0x00, 0x9e, 0x00, 0x67, 0x00, 0x33, 0x00, 0xbe,
+ 0x00, 0x45, 0x00, 0x9c, 0x00, 0x3c, 0x00, 0x2f,
+ 0x00, 0xba, 0x00, 0x41, 0xc0, 0x11, 0xc0, 0x07,
+ 0x00, 0x05, 0xc0, 0x12, 0xc0, 0x08, 0x00, 0x16,
+ 0x00, 0x0a, 0x00, 0xff,
};
static const uint8_t cipher_list_tls13_chacha[] = {
0x13, 0x03, 0x13, 0x02, 0x13, 0x01, 0xcc, 0xa9,
0xcc, 0xa8, 0xcc, 0xaa, 0xc0, 0x30, 0xc0, 0x2c,
0xc0, 0x28, 0xc0, 0x24, 0xc0, 0x14, 0xc0, 0x0a,
- 0x00, 0x9f, 0x00, 0x6b, 0x00, 0x39, 0xff, 0x85,
- 0x00, 0xc4, 0x00, 0x88, 0x00, 0x81, 0x00, 0x9d,
- 0x00, 0x3d, 0x00, 0x35, 0x00, 0xc0, 0x00, 0x84,
- 0xc0, 0x2f, 0xc0, 0x2b, 0xc0, 0x27, 0xc0, 0x23,
- 0xc0, 0x13, 0xc0, 0x09, 0x00, 0x9e, 0x00, 0x67,
- 0x00, 0x33, 0x00, 0xbe, 0x00, 0x45, 0x00, 0x9c,
- 0x00, 0x3c, 0x00, 0x2f, 0x00, 0xba, 0x00, 0x41,
- 0xc0, 0x11, 0xc0, 0x07, 0x00, 0x05, 0xc0, 0x12,
- 0xc0, 0x08, 0x00, 0x16, 0x00, 0x0a, 0x00, 0xff,
+ 0x00, 0x9f, 0x00, 0x6b, 0x00, 0x39, 0x00, 0xc4,
+ 0x00, 0x88, 0x00, 0x9d, 0x00, 0x3d, 0x00, 0x35,
+ 0x00, 0xc0, 0x00, 0x84, 0xc0, 0x2f, 0xc0, 0x2b,
+ 0xc0, 0x27, 0xc0, 0x23, 0xc0, 0x13, 0xc0, 0x09,
+ 0x00, 0x9e, 0x00, 0x67, 0x00, 0x33, 0x00, 0xbe,
+ 0x00, 0x45, 0x00, 0x9c, 0x00, 0x3c, 0x00, 0x2f,
+ 0x00, 0xba, 0x00, 0x41, 0xc0, 0x11, 0xc0, 0x07,
+ 0x00, 0x05, 0xc0, 0x12, 0xc0, 0x08, 0x00, 0x16,
+ 0x00, 0x0a, 0x00, 0xff,
};
static const uint8_t client_hello_tls13[] = {
- 0x16, 0x03, 0x03, 0x01, 0x14, 0x01, 0x00, 0x01,
- 0x10, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x16, 0x03, 0x03, 0x01, 0x10, 0x01, 0x00, 0x01,
+ 0x0c, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -279,33 +274,32 @@ static const uint8_t client_hello_tls13[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x13, 0x03,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x13, 0x03,
0x13, 0x02, 0x13, 0x01, 0xcc, 0xa9, 0xcc, 0xa8,
0xcc, 0xaa, 0xc0, 0x30, 0xc0, 0x2c, 0xc0, 0x28,
0xc0, 0x24, 0xc0, 0x14, 0xc0, 0x0a, 0x00, 0x9f,
- 0x00, 0x6b, 0x00, 0x39, 0xff, 0x85, 0x00, 0xc4,
- 0x00, 0x88, 0x00, 0x81, 0x00, 0x9d, 0x00, 0x3d,
- 0x00, 0x35, 0x00, 0xc0, 0x00, 0x84, 0xc0, 0x2f,
- 0xc0, 0x2b, 0xc0, 0x27, 0xc0, 0x23, 0xc0, 0x13,
- 0xc0, 0x09, 0x00, 0x9e, 0x00, 0x67, 0x00, 0x33,
- 0x00, 0xbe, 0x00, 0x45, 0x00, 0x9c, 0x00, 0x3c,
- 0x00, 0x2f, 0x00, 0xba, 0x00, 0x41, 0xc0, 0x11,
- 0xc0, 0x07, 0x00, 0x05, 0xc0, 0x12, 0xc0, 0x08,
- 0x00, 0x16, 0x00, 0x0a, 0x00, 0xff, 0x01, 0x00,
- 0x00, 0x67, 0x00, 0x2b, 0x00, 0x05, 0x04, 0x03,
- 0x04, 0x03, 0x03, 0x00, 0x33, 0x00, 0x26, 0x00,
- 0x24, 0x00, 0x1d, 0x00, 0x20, 0x00, 0x00, 0x00,
+ 0x00, 0x6b, 0x00, 0x39, 0x00, 0xc4, 0x00, 0x88,
+ 0x00, 0x81, 0x00, 0x9d, 0x00, 0x3d, 0x00, 0x35,
+ 0x00, 0xc0, 0x00, 0x84, 0xc0, 0x2f, 0xc0, 0x2b,
+ 0xc0, 0x27, 0xc0, 0x23, 0xc0, 0x13, 0xc0, 0x09,
+ 0x00, 0x9e, 0x00, 0x67, 0x00, 0x33, 0x00, 0xbe,
+ 0x00, 0x45, 0x00, 0x9c, 0x00, 0x3c, 0x00, 0x2f,
+ 0x00, 0xba, 0x00, 0x41, 0xc0, 0x11, 0xc0, 0x07,
+ 0x00, 0x05, 0xc0, 0x12, 0xc0, 0x08, 0x00, 0x16,
+ 0x00, 0x0a, 0x01, 0x00, 0x00, 0x67, 0x00, 0x2b,
+ 0x00, 0x05, 0x04, 0x03, 0x04, 0x03, 0x03, 0x00,
+ 0x33, 0x00, 0x26, 0x00, 0x24, 0x00, 0x1d, 0x00,
+ 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00,
- 0x02, 0x01, 0x00, 0x00, 0x0a, 0x00, 0x0a, 0x00,
- 0x08, 0x00, 0x1d, 0x00, 0x17, 0x00, 0x18, 0x00,
- 0x19, 0x00, 0x23, 0x00, 0x00, 0x00, 0x0d, 0x00,
- 0x18, 0x00, 0x16, 0x08, 0x06, 0x06, 0x01, 0x06,
- 0x03, 0x08, 0x05, 0x05, 0x01, 0x05, 0x03, 0x08,
- 0x04, 0x04, 0x01, 0x04, 0x03, 0x02, 0x01, 0x02,
- 0x03,
+ 0x00, 0x00, 0x0b, 0x00, 0x02, 0x01, 0x00, 0x00,
+ 0x0a, 0x00, 0x0a, 0x00, 0x08, 0x00, 0x1d, 0x00,
+ 0x17, 0x00, 0x18, 0x00, 0x19, 0x00, 0x23, 0x00,
+ 0x00, 0x00, 0x0d, 0x00, 0x18, 0x00, 0x16, 0x08,
+ 0x06, 0x06, 0x01, 0x06, 0x03, 0x08, 0x05, 0x05,
+ 0x01, 0x05, 0x03, 0x08, 0x04, 0x04, 0x01, 0x04,
+ 0x03, 0x02, 0x01, 0x02, 0x03,
};
static const uint8_t cipher_list_tls13_only_aes[] = {
diff --git a/regress/lib/libssl/interop/Makefile.inc b/regress/lib/libssl/interop/Makefile.inc
index 4a66390cbd8..fa22fb8514c 100644
--- a/regress/lib/libssl/interop/Makefile.inc
+++ b/regress/lib/libssl/interop/Makefile.inc
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile.inc,v 1.9 2023/10/18 19:14:32 anton Exp $
+# $OpenBSD: Makefile.inc,v 1.10 2024/02/03 15:58:34 beck Exp $
.PATH: ${.CURDIR}/..
@@ -39,7 +39,7 @@ run-self-client-server: client server 127.0.0.1.crt
CLEANFILES += 127.0.0.1.{crt,key} \
ca.{crt,key,srl} fake-ca.{crt,key} \
{client,server}.{req,crt,key} \
- {dsa,ec,gost,rsa}.{key,req,crt} \
+ {dsa,ec,rsa}.{key,req,crt} \
dh.param
127.0.0.1.crt:
@@ -70,10 +70,6 @@ dsa.key:
ec.key:
openssl ecparam -genkey -name secp256r1 -out $@
-gost.key:
- openssl genpkey -algorithm gost2001 \
- -pkeyopt paramset:A -pkeyopt dgst:md_gost94 -out $@
-
rsa.key:
openssl genrsa -out $@ 2048
@@ -82,11 +78,6 @@ dsa.req ec.req rsa.req: ${@:R}.key
-subj /L=OpenBSD/O=tls-regress/OU=${@:R}/CN=localhost/ \
-nodes -key ${@:R}.key -out $@
-gost.req: ${@:R}.key
- openssl req -batch -new -md_gost94 \
- -subj /L=OpenBSD/O=tls-regress/OU=${@:R}/CN=localhost/ \
- -nodes -key ${@:R}.key -out $@
-
-dsa.crt ec.crt gost.crt rsa.crt: ca.crt ${@:R}.req
+dsa.crt ec.crt rsa.crt: ca.crt ${@:R}.req
openssl x509 -CAcreateserial -CAkey ca.key -CA ca.crt \
-req -in ${@:R}.req -out $@
diff --git a/regress/lib/libssl/interop/cipher/Makefile b/regress/lib/libssl/interop/cipher/Makefile
index 627cfc8f9f0..3a116d5ed59 100644
--- a/regress/lib/libssl/interop/cipher/Makefile
+++ b/regress/lib/libssl/interop/cipher/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.13 2023/10/30 17:15:21 tb Exp $
+# $OpenBSD: Makefile,v 1.14 2024/02/03 15:58:34 beck Exp $
# Connect a client to a server. Both can be current libressl, or
# openssl 1.1 or 3.0. Create lists of supported ciphers
@@ -6,17 +6,6 @@
# certificate with compatible type. Check that client and server
# have used correct cipher by grepping in their session print out.
-run-cipher-GOST2001-GOST89-GOST89-client-libressl-server-libressl \
-run-cipher-GOST2012256-GOST89-GOST89-client-libressl-server-libressl \
-client-cipher-GOST2012256-GOST89-GOST89-client-libressl-server-libressl.out \
-client-cipher-GOST2001-GOST89-GOST89-client-libressl-server-libressl.out \
-server-cipher-GOST2001-GOST89-GOST89-client-libressl-server-libressl.out \
-server-cipher-GOST2012256-GOST89-GOST89-client-libressl-server-libressl.out \
-check-cipher-GOST2001-GOST89-GOST89-client-libressl-server-libressl \
-check-cipher-GOST2012256-GOST89-GOST89-client-libressl-server-libressl:
- # gost does not work with libressl TLS 1.3 right now
- @echo DISABLED
-
LIBRARIES = libressl
.if exists(/usr/local/bin/eopenssl11)
LIBRARIES += openssl11
@@ -96,8 +85,6 @@ LEVEL_openssl30 = ,@SECLEVEL=0
TYPE_${cipher} = dsa
.elif "${cipher:M*-ECDSA-*}" != ""
TYPE_${cipher} = ec
-.elif "${cipher:M*-GOST89-*}" != ""
-TYPE_${cipher} = gost
.elif "${cipher:M*-RSA-*}" != ""
TYPE_${cipher} = rsa
.else
diff --git a/regress/lib/libssl/unit/tls_prf.c b/regress/lib/libssl/unit/tls_prf.c
index a22d0e70d08..b6836da167e 100644
--- a/regress/lib/libssl/unit/tls_prf.c
+++ b/regress/lib/libssl/unit/tls_prf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tls_prf.c,v 1.8 2022/11/26 16:08:57 tb Exp $ */
+/* $OpenBSD: tls_prf.c,v 1.9 2024/02/03 15:58:34 beck Exp $ */
/*
* Copyright (c) 2017 Joel Sing <jsing@openbsd.org>
*
@@ -58,29 +58,6 @@ static struct tls_prf_test tls_prf_tests[] = {
},
},
{
- .desc = "GOST94",
- .ssl_method = TLSv1_2_method,
- .cipher_value = 0x0081,
- .out = {
- 0xcc, 0xd4, 0x89, 0x5f, 0x52, 0x08, 0x9b, 0xc7,
- 0xf9, 0xb5, 0x83, 0x58, 0xe8, 0xc7, 0x71, 0x49,
- 0x39, 0x99, 0x1f, 0x14, 0x8f, 0x85, 0xbe, 0x64,
- 0xee, 0x40, 0x5c, 0xe7, 0x5f, 0x68, 0xaf, 0xf2,
- 0xcd, 0x3a, 0x94, 0x52, 0x33, 0x53, 0x46, 0x7d,
- 0xb6, 0xc5, 0xe1, 0xb8, 0xa4, 0x04, 0x69, 0x91,
- 0x0a, 0x9c, 0x88, 0x86, 0xd9, 0x60, 0x63, 0xdd,
- 0xd8, 0xe7, 0x2e, 0xee, 0xce, 0xe2, 0x20, 0xd8,
- 0x9a, 0xfa, 0x9c, 0x63, 0x0c, 0x9c, 0xa1, 0x76,
- 0xed, 0x78, 0x9a, 0x84, 0x70, 0xb4, 0xd1, 0x51,
- 0x1f, 0xde, 0x44, 0xe8, 0x90, 0x21, 0x3f, 0xeb,
- 0x05, 0xf4, 0x77, 0x59, 0xf3, 0xad, 0xdd, 0x34,
- 0x3d, 0x3a, 0x7c, 0xd0, 0x59, 0x40, 0xe1, 0x3f,
- 0x04, 0x4b, 0x8b, 0xd6, 0x95, 0x46, 0xb4, 0x9e,
- 0x4c, 0x2d, 0xf7, 0xee, 0xbd, 0xbc, 0xcb, 0x5c,
- 0x3a, 0x36, 0x0c, 0xd0, 0x27, 0xcb, 0x45, 0x06,
- },
- },
- {
.desc = "SHA256 (via TLSv1.2)",
.ssl_method = TLSv1_2_method,
.cipher_value = 0x0033,
@@ -126,29 +103,6 @@ static struct tls_prf_test tls_prf_tests[] = {
0x05, 0x76, 0x4b, 0xe4, 0x28, 0x50, 0x4a, 0xf2,
},
},
- {
- .desc = "STREEBOG256",
- .ssl_method = TLSv1_2_method,
- .cipher_value = 0xff87,
- .out = {
- 0x3e, 0x13, 0xb9, 0xeb, 0x85, 0x8c, 0xb4, 0x21,
- 0x23, 0x40, 0x9b, 0x73, 0x04, 0x56, 0xe2, 0xff,
- 0xce, 0x52, 0x1f, 0x82, 0x7f, 0x17, 0x5b, 0x80,
- 0x23, 0x71, 0xca, 0x30, 0xdf, 0xfc, 0xdc, 0x2d,
- 0xc0, 0xfc, 0x5d, 0x23, 0x5a, 0x54, 0x7f, 0xae,
- 0xf5, 0x7d, 0x52, 0x1e, 0x86, 0x95, 0xe1, 0x2d,
- 0x28, 0xe7, 0xbe, 0xd7, 0xd0, 0xbf, 0xa9, 0x96,
- 0x13, 0xd0, 0x9c, 0x0c, 0x1c, 0x16, 0x05, 0xbb,
- 0x26, 0xd7, 0x30, 0x39, 0xb9, 0x53, 0x28, 0x98,
- 0x4f, 0x1b, 0x83, 0xc3, 0xce, 0x1c, 0x7c, 0x34,
- 0xa2, 0xc4, 0x7a, 0x54, 0x16, 0xc6, 0xa7, 0x9e,
- 0xed, 0x4b, 0x7b, 0x83, 0xa6, 0xae, 0xe2, 0x5b,
- 0x96, 0xf5, 0x6c, 0xad, 0x1f, 0xa3, 0x83, 0xb2,
- 0x84, 0x32, 0xed, 0xe3, 0x2c, 0xf6, 0xd4, 0x73,
- 0x30, 0xef, 0x9d, 0xbe, 0xe7, 0x23, 0x9a, 0xbf,
- 0x4d, 0x1c, 0xe7, 0xef, 0x3d, 0xea, 0x46, 0xe2,
- },
- },
};
#define N_TLS_PRF_TESTS \
diff --git a/usr.bin/openssl/openssl.c b/usr.bin/openssl/openssl.c
index e5ff31a2c5a..7a42b70f2bc 100644
--- a/usr.bin/openssl/openssl.c
+++ b/usr.bin/openssl/openssl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: openssl.c,v 1.35 2023/06/11 13:02:10 jsg Exp $ */
+/* $OpenBSD: openssl.c,v 1.36 2024/02/03 15:58:34 beck Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -211,12 +211,6 @@ FUNCTION functions[] = {
#endif
/* Message Digests. */
-#ifndef OPENSSL_NO_GOST
- { FUNC_TYPE_MD, "gost-mac", dgst_main },
- { FUNC_TYPE_MD, "md_gost94", dgst_main },
- { FUNC_TYPE_MD, "streebog256", dgst_main },
- { FUNC_TYPE_MD, "streebog512", dgst_main },
-#endif
#ifndef OPENSSL_NO_MD4
{ FUNC_TYPE_MD, "md4", dgst_main },
#endif