Adding in curl and openssl repos

This commit is contained in:
2025-08-14 12:09:30 -04:00
parent af2117b574
commit 0ace93e303
21174 changed files with 3607720 additions and 2 deletions

View File

@@ -0,0 +1,37 @@
test/helpers/asynciotest-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

View File

@@ -0,0 +1,33 @@
test/helpers/cmp_asn_test-bin-cmp_testlib.o: test/helpers/cmp_testlib.c \
test/helpers/cmp_testlib.h include/openssl/cmp.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/macros.h include/openssl/opensslv.h \
include/openssl/crmf.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/e_os2.h \
include/openssl/crmferr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/x509v3.h \
include/openssl/bio.h include/openssl/crypto.h include/openssl/types.h \
include/openssl/cryptoerr.h include/openssl/core.h \
include/openssl/bioerr.h include/openssl/x509.h include/openssl/buffer.h \
include/openssl/buffererr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/params.h include/openssl/bn.h include/openssl/bnerr.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/asn1.h \
include/openssl/asn1err.h include/openssl/objectserr.h \
include/openssl/ec.h include/openssl/ecerr.h include/openssl/rsa.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/sha.h \
include/openssl/x509err.h include/openssl/x509_vfy.h \
include/openssl/lhash.h include/openssl/pkcs7.h \
include/openssl/pkcs7err.h include/openssl/http.h include/openssl/conf.h \
include/openssl/conferr.h include/openssl/conftypes.h \
include/openssl/x509v3err.h include/openssl/cmperr.h \
include/openssl/cmp_util.h include/openssl/trace.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/rand.h \
include/openssl/randerr.h test/helpers/../../crypto/cmp/cmp_local.h \
include/internal/cryptlib.h include/internal/common.h \
include/internal/e_os.h include/internal/numbers.h \
include/internal/nelem.h include/openssl/err.h include/crypto/x509.h \
include/internal/refcount.h include/crypto/types.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,34 @@
test/helpers/cmp_client_test-bin-cmp_testlib.o: \
test/helpers/cmp_testlib.c test/helpers/cmp_testlib.h \
include/openssl/cmp.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/macros.h \
include/openssl/opensslv.h include/openssl/crmf.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/e_os2.h include/openssl/crmferr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/x509v3.h include/openssl/bio.h include/openssl/crypto.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/core.h include/openssl/bioerr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/x509v3err.h \
include/openssl/cmperr.h include/openssl/cmp_util.h \
include/openssl/trace.h include/openssl/pem.h include/openssl/pemerr.h \
include/openssl/rand.h include/openssl/randerr.h \
test/helpers/../../crypto/cmp/cmp_local.h include/internal/cryptlib.h \
include/internal/common.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
include/openssl/err.h include/crypto/x509.h include/internal/refcount.h \
include/crypto/types.h test/helpers/../testutil.h \
include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,33 @@
test/helpers/cmp_ctx_test-bin-cmp_testlib.o: test/helpers/cmp_testlib.c \
test/helpers/cmp_testlib.h include/openssl/cmp.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/macros.h include/openssl/opensslv.h \
include/openssl/crmf.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/e_os2.h \
include/openssl/crmferr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/x509v3.h \
include/openssl/bio.h include/openssl/crypto.h include/openssl/types.h \
include/openssl/cryptoerr.h include/openssl/core.h \
include/openssl/bioerr.h include/openssl/x509.h include/openssl/buffer.h \
include/openssl/buffererr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/params.h include/openssl/bn.h include/openssl/bnerr.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/asn1.h \
include/openssl/asn1err.h include/openssl/objectserr.h \
include/openssl/ec.h include/openssl/ecerr.h include/openssl/rsa.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/sha.h \
include/openssl/x509err.h include/openssl/x509_vfy.h \
include/openssl/lhash.h include/openssl/pkcs7.h \
include/openssl/pkcs7err.h include/openssl/http.h include/openssl/conf.h \
include/openssl/conferr.h include/openssl/conftypes.h \
include/openssl/x509v3err.h include/openssl/cmperr.h \
include/openssl/cmp_util.h include/openssl/trace.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/rand.h \
include/openssl/randerr.h test/helpers/../../crypto/cmp/cmp_local.h \
include/internal/cryptlib.h include/internal/common.h \
include/internal/e_os.h include/internal/numbers.h \
include/internal/nelem.h include/openssl/err.h include/crypto/x509.h \
include/internal/refcount.h include/crypto/types.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,33 @@
test/helpers/cmp_hdr_test-bin-cmp_testlib.o: test/helpers/cmp_testlib.c \
test/helpers/cmp_testlib.h include/openssl/cmp.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/macros.h include/openssl/opensslv.h \
include/openssl/crmf.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/e_os2.h \
include/openssl/crmferr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/x509v3.h \
include/openssl/bio.h include/openssl/crypto.h include/openssl/types.h \
include/openssl/cryptoerr.h include/openssl/core.h \
include/openssl/bioerr.h include/openssl/x509.h include/openssl/buffer.h \
include/openssl/buffererr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/params.h include/openssl/bn.h include/openssl/bnerr.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/asn1.h \
include/openssl/asn1err.h include/openssl/objectserr.h \
include/openssl/ec.h include/openssl/ecerr.h include/openssl/rsa.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/sha.h \
include/openssl/x509err.h include/openssl/x509_vfy.h \
include/openssl/lhash.h include/openssl/pkcs7.h \
include/openssl/pkcs7err.h include/openssl/http.h include/openssl/conf.h \
include/openssl/conferr.h include/openssl/conftypes.h \
include/openssl/x509v3err.h include/openssl/cmperr.h \
include/openssl/cmp_util.h include/openssl/trace.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/rand.h \
include/openssl/randerr.h test/helpers/../../crypto/cmp/cmp_local.h \
include/internal/cryptlib.h include/internal/common.h \
include/internal/e_os.h include/internal/numbers.h \
include/internal/nelem.h include/openssl/err.h include/crypto/x509.h \
include/internal/refcount.h include/crypto/types.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,33 @@
test/helpers/cmp_msg_test-bin-cmp_testlib.o: test/helpers/cmp_testlib.c \
test/helpers/cmp_testlib.h include/openssl/cmp.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/macros.h include/openssl/opensslv.h \
include/openssl/crmf.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/e_os2.h \
include/openssl/crmferr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/x509v3.h \
include/openssl/bio.h include/openssl/crypto.h include/openssl/types.h \
include/openssl/cryptoerr.h include/openssl/core.h \
include/openssl/bioerr.h include/openssl/x509.h include/openssl/buffer.h \
include/openssl/buffererr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/params.h include/openssl/bn.h include/openssl/bnerr.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/asn1.h \
include/openssl/asn1err.h include/openssl/objectserr.h \
include/openssl/ec.h include/openssl/ecerr.h include/openssl/rsa.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/sha.h \
include/openssl/x509err.h include/openssl/x509_vfy.h \
include/openssl/lhash.h include/openssl/pkcs7.h \
include/openssl/pkcs7err.h include/openssl/http.h include/openssl/conf.h \
include/openssl/conferr.h include/openssl/conftypes.h \
include/openssl/x509v3err.h include/openssl/cmperr.h \
include/openssl/cmp_util.h include/openssl/trace.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/rand.h \
include/openssl/randerr.h test/helpers/../../crypto/cmp/cmp_local.h \
include/internal/cryptlib.h include/internal/common.h \
include/internal/e_os.h include/internal/numbers.h \
include/internal/nelem.h include/openssl/err.h include/crypto/x509.h \
include/internal/refcount.h include/crypto/types.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,34 @@
test/helpers/cmp_protect_test-bin-cmp_testlib.o: \
test/helpers/cmp_testlib.c test/helpers/cmp_testlib.h \
include/openssl/cmp.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/macros.h \
include/openssl/opensslv.h include/openssl/crmf.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/e_os2.h include/openssl/crmferr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/x509v3.h include/openssl/bio.h include/openssl/crypto.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/core.h include/openssl/bioerr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/x509v3err.h \
include/openssl/cmperr.h include/openssl/cmp_util.h \
include/openssl/trace.h include/openssl/pem.h include/openssl/pemerr.h \
include/openssl/rand.h include/openssl/randerr.h \
test/helpers/../../crypto/cmp/cmp_local.h include/internal/cryptlib.h \
include/internal/common.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
include/openssl/err.h include/crypto/x509.h include/internal/refcount.h \
include/crypto/types.h test/helpers/../testutil.h \
include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,34 @@
test/helpers/cmp_server_test-bin-cmp_testlib.o: \
test/helpers/cmp_testlib.c test/helpers/cmp_testlib.h \
include/openssl/cmp.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/macros.h \
include/openssl/opensslv.h include/openssl/crmf.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/e_os2.h include/openssl/crmferr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/x509v3.h include/openssl/bio.h include/openssl/crypto.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/core.h include/openssl/bioerr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/x509v3err.h \
include/openssl/cmperr.h include/openssl/cmp_util.h \
include/openssl/trace.h include/openssl/pem.h include/openssl/pemerr.h \
include/openssl/rand.h include/openssl/randerr.h \
test/helpers/../../crypto/cmp/cmp_local.h include/internal/cryptlib.h \
include/internal/common.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
include/openssl/err.h include/crypto/x509.h include/internal/refcount.h \
include/crypto/types.h test/helpers/../testutil.h \
include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,34 @@
test/helpers/cmp_status_test-bin-cmp_testlib.o: \
test/helpers/cmp_testlib.c test/helpers/cmp_testlib.h \
include/openssl/cmp.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/macros.h \
include/openssl/opensslv.h include/openssl/crmf.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/e_os2.h include/openssl/crmferr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/x509v3.h include/openssl/bio.h include/openssl/crypto.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/core.h include/openssl/bioerr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/x509v3err.h \
include/openssl/cmperr.h include/openssl/cmp_util.h \
include/openssl/trace.h include/openssl/pem.h include/openssl/pemerr.h \
include/openssl/rand.h include/openssl/randerr.h \
test/helpers/../../crypto/cmp/cmp_local.h include/internal/cryptlib.h \
include/internal/common.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
include/openssl/err.h include/crypto/x509.h include/internal/refcount.h \
include/crypto/types.h test/helpers/../testutil.h \
include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,81 @@
/*
* Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved.
* Copyright Nokia 2007-2019
* Copyright Siemens AG 2015-2019
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#include "cmp_testlib.h"
#include <openssl/rsa.h> /* needed in case config no-deprecated */
OSSL_CMP_MSG *load_pkimsg(const char *file, OSSL_LIB_CTX *libctx)
{
OSSL_CMP_MSG *msg;
(void)TEST_ptr((msg = OSSL_CMP_MSG_read(file, libctx, NULL)));
return msg;
}
/*
* Checks whether the syntax of msg conforms to ASN.1
*/
int valid_asn1_encoding(const OSSL_CMP_MSG *msg)
{
return msg != NULL ? i2d_OSSL_CMP_MSG(msg, NULL) > 0 : 0;
}
/*
* Compares two stacks of certificates in the order of their elements.
* Returns 0 if sk1 and sk2 are equal and another value otherwise
*/
int STACK_OF_X509_cmp(const STACK_OF(X509) *sk1, const STACK_OF(X509) *sk2)
{
int i, res;
X509 *a, *b;
if (sk1 == sk2)
return 0;
if (sk1 == NULL)
return -1;
if (sk2 == NULL)
return 1;
if ((res = sk_X509_num(sk1) - sk_X509_num(sk2)))
return res;
for (i = 0; i < sk_X509_num(sk1); i++) {
a = sk_X509_value(sk1, i);
b = sk_X509_value(sk2, i);
if (a != b)
if ((res = X509_cmp(a, b)) != 0)
return res;
}
return 0;
}
/*
* Up refs and push a cert onto sk.
* Returns the number of certificates on the stack on success
* Returns -1 or 0 on error
*/
int STACK_OF_X509_push1(STACK_OF(X509) *sk, X509 *cert)
{
int res;
if (sk == NULL || cert == NULL)
return -1;
if (!X509_up_ref(cert))
return -1;
res = sk_X509_push(sk, cert);
if (res <= 0)
X509_free(cert); /* down-ref */
return res;
}
int print_to_bio_out(const char *func, const char *file, int line,
OSSL_CMP_severity level, const char *msg)
{
return OSSL_CMP_print_to_bio(bio_out, func, file, line, level, msg);
}

View File

@@ -0,0 +1,32 @@
/*
* Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved.
* Copyright Nokia 2007-2019
* Copyright Siemens AG 2015-2019
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#ifndef OSSL_TEST_CMP_TESTLIB_H
# define OSSL_TEST_CMP_TESTLIB_H
# include <openssl/cmp.h>
# include <openssl/pem.h>
# include <openssl/rand.h>
# include "../../crypto/cmp/cmp_local.h"
# include "../testutil.h"
# ifndef OPENSSL_NO_CMP
# define CMP_TEST_REFVALUE_LENGTH 15 /* arbitrary value */
OSSL_CMP_MSG *load_pkimsg(const char *file, OSSL_LIB_CTX *libctx);
int valid_asn1_encoding(const OSSL_CMP_MSG *msg);
int STACK_OF_X509_cmp(const STACK_OF(X509) *sk1, const STACK_OF(X509) *sk2);
int STACK_OF_X509_push1(STACK_OF(X509) *sk, X509 *cert);
int print_to_bio_out(const char *func, const char *file, int line,
OSSL_CMP_severity level, const char *msg);
# endif
#endif /* OSSL_TEST_CMP_TESTLIB_H */

View File

@@ -0,0 +1,33 @@
test/helpers/cmp_vfy_test-bin-cmp_testlib.o: test/helpers/cmp_testlib.c \
test/helpers/cmp_testlib.h include/openssl/cmp.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/macros.h include/openssl/opensslv.h \
include/openssl/crmf.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/e_os2.h \
include/openssl/crmferr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/x509v3.h \
include/openssl/bio.h include/openssl/crypto.h include/openssl/types.h \
include/openssl/cryptoerr.h include/openssl/core.h \
include/openssl/bioerr.h include/openssl/x509.h include/openssl/buffer.h \
include/openssl/buffererr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/params.h include/openssl/bn.h include/openssl/bnerr.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/asn1.h \
include/openssl/asn1err.h include/openssl/objectserr.h \
include/openssl/ec.h include/openssl/ecerr.h include/openssl/rsa.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/sha.h \
include/openssl/x509err.h include/openssl/x509_vfy.h \
include/openssl/lhash.h include/openssl/pkcs7.h \
include/openssl/pkcs7err.h include/openssl/http.h include/openssl/conf.h \
include/openssl/conferr.h include/openssl/conftypes.h \
include/openssl/x509v3err.h include/openssl/cmperr.h \
include/openssl/cmp_util.h include/openssl/trace.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/rand.h \
include/openssl/randerr.h test/helpers/../../crypto/cmp/cmp_local.h \
include/internal/cryptlib.h include/internal/common.h \
include/internal/e_os.h include/internal/numbers.h \
include/internal/nelem.h include/openssl/err.h include/crypto/x509.h \
include/internal/refcount.h include/crypto/types.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,37 @@
test/helpers/dtls_mtu_test-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

View File

@@ -0,0 +1,37 @@
test/helpers/dtlstest-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

View File

@@ -0,0 +1,16 @@
test/helpers/endecode_test-bin-predefined_dhparams.o: \
test/helpers/predefined_dhparams.c include/openssl/evp.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/types.h include/openssl/e_os2.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/core.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/bnerr.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/core_names.h \
include/openssl/param_build.h test/helpers/predefined_dhparams.h

View File

@@ -0,0 +1,37 @@
test/helpers/fatalerrtest-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,98 @@
/*
* Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#ifndef OSSL_TEST_HANDSHAKE_HELPER_H
#define OSSL_TEST_HANDSHAKE_HELPER_H
#include "ssl_test_ctx.h"
typedef struct ctx_data_st {
unsigned char *npn_protocols;
size_t npn_protocols_len;
unsigned char *alpn_protocols;
size_t alpn_protocols_len;
char *srp_user;
char *srp_password;
char *session_ticket_app_data;
} CTX_DATA;
typedef struct handshake_result {
ssl_test_result_t result;
/* These alerts are in the 2-byte format returned by the info_callback. */
/* (Latest) alert sent by the client; 0 if no alert. */
int client_alert_sent;
/* Number of fatal or close_notify alerts sent. */
int client_num_fatal_alerts_sent;
/* (Latest) alert received by the server; 0 if no alert. */
int client_alert_received;
/* (Latest) alert sent by the server; 0 if no alert. */
int server_alert_sent;
/* Number of fatal or close_notify alerts sent. */
int server_num_fatal_alerts_sent;
/* (Latest) alert received by the client; 0 if no alert. */
int server_alert_received;
/* Negotiated protocol. On success, these should always match. */
int server_protocol;
int client_protocol;
/* Server connection */
ssl_servername_t servername;
/* Session ticket status */
ssl_session_ticket_t session_ticket;
int compression;
/* Was this called on the second context? */
int session_ticket_do_not_call;
char *client_npn_negotiated;
char *server_npn_negotiated;
char *client_alpn_negotiated;
char *server_alpn_negotiated;
/* Was the handshake resumed? */
int client_resumed;
int server_resumed;
/* Temporary key type */
int tmp_key_type;
/* server certificate key type */
int server_cert_type;
/* server signing hash */
int server_sign_hash;
/* server signature type */
int server_sign_type;
/* server CA names */
STACK_OF(X509_NAME) *server_ca_names;
/* client certificate key type */
int client_cert_type;
/* client signing hash */
int client_sign_hash;
/* client signature type */
int client_sign_type;
/* Client CA names */
STACK_OF(X509_NAME) *client_ca_names;
/* Session id status */
ssl_session_id_t session_id;
char *cipher;
/* session ticket application data */
char *result_session_ticket_app_data;
} HANDSHAKE_RESULT;
HANDSHAKE_RESULT *HANDSHAKE_RESULT_new(void);
void HANDSHAKE_RESULT_free(HANDSHAKE_RESULT *result);
/* Do a handshake and report some information about the result. */
HANDSHAKE_RESULT *do_handshake(SSL_CTX *server_ctx, SSL_CTX *server2_ctx,
SSL_CTX *client_ctx, SSL_CTX *resume_server_ctx,
SSL_CTX *resume_client_ctx,
const SSL_TEST_CTX *test_ctx);
int configure_handshake_ctx_for_srp(SSL_CTX *server_ctx, SSL_CTX *server2_ctx,
SSL_CTX *client_ctx,
const SSL_TEST_EXTRA_CONF *extra,
CTX_DATA *server_ctx_data,
CTX_DATA *server2_ctx_data,
CTX_DATA *client_ctx_data);
#endif /* OSSL_TEST_HANDSHAKE_HELPER_H */

View File

@@ -0,0 +1,88 @@
/*
* Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
/*
* SRP is deprecated and there is no replacement. When SRP is removed,
* the code in this file can be removed too. Until then we have to use
* the deprecated APIs.
*/
#define OPENSSL_SUPPRESS_DEPRECATED
#include <openssl/srp.h>
#include <openssl/ssl.h>
#include "handshake.h"
#include "../testutil.h"
static char *client_srp_cb(SSL *s, void *arg)
{
CTX_DATA *ctx_data = (CTX_DATA*)(arg);
return OPENSSL_strdup(ctx_data->srp_password);
}
static int server_srp_cb(SSL *s, int *ad, void *arg)
{
CTX_DATA *ctx_data = (CTX_DATA*)(arg);
if (strcmp(ctx_data->srp_user, SSL_get_srp_username(s)) != 0)
return SSL3_AL_FATAL;
if (SSL_set_srp_server_param_pw(s, ctx_data->srp_user,
ctx_data->srp_password,
"2048" /* known group */) < 0) {
*ad = SSL_AD_INTERNAL_ERROR;
return SSL3_AL_FATAL;
}
return SSL_ERROR_NONE;
}
int configure_handshake_ctx_for_srp(SSL_CTX *server_ctx, SSL_CTX *server2_ctx,
SSL_CTX *client_ctx,
const SSL_TEST_EXTRA_CONF *extra,
CTX_DATA *server_ctx_data,
CTX_DATA *server2_ctx_data,
CTX_DATA *client_ctx_data)
{
if (extra->server.srp_user != NULL) {
SSL_CTX_set_srp_username_callback(server_ctx, server_srp_cb);
server_ctx_data->srp_user = OPENSSL_strdup(extra->server.srp_user);
server_ctx_data->srp_password = OPENSSL_strdup(extra->server.srp_password);
if (server_ctx_data->srp_user == NULL || server_ctx_data->srp_password == NULL) {
OPENSSL_free(server_ctx_data->srp_user);
OPENSSL_free(server_ctx_data->srp_password);
server_ctx_data->srp_user = NULL;
server_ctx_data->srp_password = NULL;
return 0;
}
SSL_CTX_set_srp_cb_arg(server_ctx, server_ctx_data);
}
if (extra->server2.srp_user != NULL) {
if (!TEST_ptr(server2_ctx))
return 0;
SSL_CTX_set_srp_username_callback(server2_ctx, server_srp_cb);
server2_ctx_data->srp_user = OPENSSL_strdup(extra->server2.srp_user);
server2_ctx_data->srp_password = OPENSSL_strdup(extra->server2.srp_password);
if (server2_ctx_data->srp_user == NULL || server2_ctx_data->srp_password == NULL) {
OPENSSL_free(server2_ctx_data->srp_user);
OPENSSL_free(server2_ctx_data->srp_password);
server2_ctx_data->srp_user = NULL;
server2_ctx_data->srp_password = NULL;
return 0;
}
SSL_CTX_set_srp_cb_arg(server2_ctx, server2_ctx_data);
}
if (extra->client.srp_user != NULL) {
if (!TEST_true(SSL_CTX_set_srp_username(client_ctx,
extra->client.srp_user)))
return 0;
SSL_CTX_set_srp_client_pwd_callback(client_ctx, client_srp_cb);
client_ctx_data->srp_password = OPENSSL_strdup(extra->client.srp_password);
if (client_ctx_data->srp_password == NULL)
return 0;
SSL_CTX_set_srp_cb_arg(client_ctx, client_ctx_data);
}
return 1;
}

View File

@@ -0,0 +1,48 @@
test/helpers/json_test-bin-noisydgrambio.o: test/helpers/noisydgrambio.c \
include/openssl/bio.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/e_os2.h \
include/openssl/crypto.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/types.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bioerr.h test/helpers/quictestlib.h \
include/openssl/ssl.h include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/e_os.h \
include/internal/numbers.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,48 @@
test/helpers/json_test-bin-pktsplitbio.o: test/helpers/pktsplitbio.c \
include/openssl/bio.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/e_os2.h \
include/openssl/crypto.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/types.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bioerr.h test/helpers/quictestlib.h \
include/openssl/ssl.h include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/e_os.h \
include/internal/numbers.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,53 @@
test/helpers/json_test-bin-quictestlib.o: test/helpers/quictestlib.c \
include/openssl/configuration.h include/openssl/bio.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/opensslv.h include/openssl/e_os2.h \
include/openssl/crypto.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/types.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bioerr.h include/internal/e_os.h \
include/internal/numbers.h test/helpers/quictestlib.h \
include/openssl/ssl.h include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/ssltestlib.h test/helpers/../testutil.h \
include/openssl/provider.h apps/include/opt.h \
test/helpers/../threadstest.h test/helpers/../testutil.h \
include/internal/quic_ssl.h include/internal/quic_ackm.h \
include/internal/quic_cc.h include/internal/quic_error.h \
include/internal/tsan_assist.h

View File

@@ -0,0 +1,37 @@
test/helpers/json_test-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

View File

@@ -0,0 +1,541 @@
/*
* Copyright 2023-2024 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#include <openssl/bio.h>
#include "quictestlib.h"
#include "../testutil.h"
#define MSG_DATA_LEN_MAX 1472
#define SAMPLING_WINDOW_PERIOD 10 /* in milliseconds */
#define MAX_PKTS_PER_WINDOW 1024
struct pkt_info_st {
size_t size;
OSSL_TIME timestamp;
};
struct bw_limiter_st {
struct pkt_info_st pinfos[MAX_PKTS_PER_WINDOW]; /* ring buffer */
size_t start, num; /* ring buffer start and number of items */
size_t size_sum; /* sum of packet sizes in window */
size_t bw; /* bandwidth in bytes/ms */
};
struct noisy_dgram_st {
uint64_t this_dgram;
BIO_MSG msg;
uint64_t reinject_dgram;
int backoff;
int noise_rate; /* 1 in noise_rate packets will get noise */
struct bw_limiter_st recv_limit, send_limit;
OSSL_TIME (*now_cb)(void *arg);
void *now_cb_arg;
};
static long noisy_dgram_ctrl(BIO *bio, int cmd, long num, void *ptr)
{
long ret;
BIO *next = BIO_next(bio);
if (next == NULL)
return 0;
switch (cmd) {
case BIO_CTRL_DUP:
ret = 0L;
break;
case BIO_CTRL_NOISE_BACK_OFF: {
struct noisy_dgram_st *data;
data = BIO_get_data(bio);
if (!TEST_ptr(data))
return 0;
data->backoff = 1;
ret = 1;
break;
}
case BIO_CTRL_NOISE_RATE: {
struct noisy_dgram_st *data;
data = BIO_get_data(bio);
if (!TEST_ptr(data))
return 0;
data->noise_rate = (int)num;
ret = 1;
break;
}
case BIO_CTRL_NOISE_RECV_BANDWIDTH: {
struct noisy_dgram_st *data;
data = BIO_get_data(bio);
if (!TEST_ptr(data))
return 0;
data->recv_limit.bw = (size_t)num;
ret = 1;
break;
}
case BIO_CTRL_NOISE_SEND_BANDWIDTH: {
struct noisy_dgram_st *data;
data = BIO_get_data(bio);
if (!TEST_ptr(data))
return 0;
data->send_limit.bw = (size_t)num;
ret = 1;
break;
}
case BIO_CTRL_NOISE_SET_NOW_CB: {
struct noisy_dgram_st *data;
struct bio_noise_now_cb_st *now_cb = ptr;
data = BIO_get_data(bio);
if (!TEST_ptr(data))
return 0;
data->now_cb = now_cb->now_cb;
data->now_cb_arg = now_cb->now_cb_arg;
ret = 1;
break;
}
default:
ret = BIO_ctrl(next, cmd, num, ptr);
break;
}
return ret;
}
static size_t bandwidth_limit(struct bw_limiter_st *limit, OSSL_TIME now,
BIO_MSG *msg, size_t num_msg)
{
size_t i;
OSSL_TIME sampling_start
= ossl_time_subtract(now, ossl_ms2time(SAMPLING_WINDOW_PERIOD));
if (limit->bw == 0) /* 0 -> no limit */
return num_msg;
if (num_msg > MAX_PKTS_PER_WINDOW)
num_msg = MAX_PKTS_PER_WINDOW;
/* trim the start of the ring buffer */
for (i = 0; i < limit->num; i++) {
size_t idx = (limit->start + i) % MAX_PKTS_PER_WINDOW;
if (ossl_time_compare(limit->pinfos[idx].timestamp, sampling_start) >= 0)
break;
limit->size_sum -= limit->pinfos[idx].size;
}
limit->start = (limit->start + i) % MAX_PKTS_PER_WINDOW;
limit->num -= i;
for (i = 0; i < num_msg; ++i) {
size_t end;
size_t pktsize = msg[i].data_len;
if ((limit->size_sum + pktsize) / SAMPLING_WINDOW_PERIOD > limit->bw) {
/*
* Throw out all the packets once reaching the limit,
* although some following packets could still fit.
* This is accurate enough.
*/
#ifdef OSSL_NOISY_DGRAM_DEBUG
printf("**BW limit applied: now: %llu orig packets %u new packets %u\n",
(unsigned long long)ossl_time2ms(now),
(unsigned int)num_msg, (unsigned int) i);
#endif
num_msg = i;
break;
}
if (limit->num >= MAX_PKTS_PER_WINDOW) {
limit->size_sum -= limit->pinfos[limit->start].size;
limit->start = (limit->start + 1) % MAX_PKTS_PER_WINDOW;
} else {
++limit->num;
}
end = (limit->start + limit->num) % MAX_PKTS_PER_WINDOW;
limit->pinfos[end].size = pktsize;
limit->pinfos[end].timestamp = now;
limit->size_sum += pktsize;
}
return num_msg;
}
static int noisy_dgram_sendmmsg(BIO *bio, BIO_MSG *msg, size_t stride,
size_t num_msg, uint64_t flags,
size_t *msgs_processed)
{
BIO *next = BIO_next(bio);
struct noisy_dgram_st *data;
OSSL_TIME now;
if (next == NULL)
return 0;
data = BIO_get_data(bio);
if (!TEST_ptr(data))
return 0;
now = data->now_cb != NULL ? data->now_cb(data->now_cb_arg)
: ossl_time_now();
/* bandwidth limit can be applied on both sides */
num_msg = bandwidth_limit(&data->send_limit, now, msg, num_msg);
if (num_msg == 0) {
*msgs_processed = 0;
ERR_raise(ERR_LIB_BIO, BIO_R_NON_FATAL);
return 0;
}
/*
* We only introduce noise when receiving messages. We just pass this on
* to the underlying BIO.
*/
return BIO_sendmmsg(next, msg, stride, num_msg, flags, msgs_processed);
}
/* Default noise_rate value. With a value of 5 that is 20% packets. */
#define NOISE_RATE 5
/*
* We have 3 different types of noise: drop, duplicate and delay
* Each of these have equal probability.
*/
#define NOISE_TYPE_DROP 0
#define NOISE_TYPE_DUPLICATE 1
#define NOISE_TYPE_DELAY 2
#define NOISE_TYPE_BITFLIPS 3
#define NUM_NOISE_TYPES 4
/*
* When a duplicate occurs we reinject the new datagram after up to
* MAX_DGRAM_REINJECT datagrams have been sent. A reinject of 1 means that the
* duplicate follows immediately after the original datagram. A reinject of 4
* means that original datagram plus 3 other datagrams are sent before the
* reinjected datagram is inserted.
* This also controls when a delay (not a duplicate) occurs. In that case
* we add 1 to the number because there is no point in skipping the current
* datagram only to immediately reinject it in the next datagram.
*/
#define MAX_DGRAM_REINJECT 4
static void get_noise(int noise_rate, int long_header, uint64_t *reinject,
int *should_drop, uint16_t *flip, size_t *flip_offset)
{
uint32_t type;
*flip = 0;
if (test_random() % noise_rate != 0) {
*reinject = 0;
*should_drop = 0;
return;
}
type = test_random() % NUM_NOISE_TYPES;
/*
* Of noisy datagrams, 25% drop, 25% duplicate, 25% delay, 25% flip bits
* A duplicated datagram keeps the current datagram and reinjects a new
* identical one after up to MAX_DGRAM_DELAY datagrams have been sent.
* A delayed datagram is implemented as both a reinject and a drop, i.e. an
* identical datagram is reinjected after the given number of datagrams have
* been sent and the current datagram is dropped.
*/
*should_drop = (type == NOISE_TYPE_DROP || type == NOISE_TYPE_DELAY);
/*
* Where a duplicate occurs we reinject the copy of the datagram up to
* MAX_DGRAM_DELAY datagrams later
*/
*reinject = (type == NOISE_TYPE_DUPLICATE || type == NOISE_TYPE_DELAY)
? (uint64_t)((test_random() % MAX_DGRAM_REINJECT) + 1)
: 0;
/*
* No point in reinjecting after 1 datagram if the current datagram is also
* dropped (i.e. this is a delay not a duplicate), so we reinject after an
* extra datagram in that case
*/
*reinject += type == NOISE_TYPE_DELAY;
/* flip some bits in the header */
if (type == NOISE_TYPE_BITFLIPS) {
/* we flip at most 8 bits of the 16 bit value at once */
*flip = (test_random() % 255 + 1) << (test_random() % 8);
/*
* 25/50 bytes of guesstimated header size (it depends on CID length)
* It does not matter much if it is overestimated.
*/
*flip_offset = test_random() % (25 * (1 + long_header));
}
}
static void flip_bits(unsigned char *msg, size_t msg_len, uint16_t flip,
size_t flip_offset)
{
if (flip == 0)
return;
/* None of these border conditions should happen but check them anyway */
if (msg_len < 2)
return;
if (msg_len < flip_offset + 2)
flip_offset = msg_len - 2;
#ifdef OSSL_NOISY_DGRAM_DEBUG
printf("**Flipping bits in a datagram at offset %u\n",
(unsigned int)flip_offset);
BIO_dump_fp(stdout, msg, msg_len);
printf("\n");
#endif
msg[flip_offset] ^= flip >> 8;
msg[flip_offset + 1] ^= flip & 0xff;
}
static int noisy_dgram_recvmmsg(BIO *bio, BIO_MSG *msg, size_t stride,
size_t num_msg, uint64_t flags,
size_t *msgs_processed)
{
BIO *next = BIO_next(bio);
size_t i, j, data_len = 0, msg_cnt = 0;
BIO_MSG *thismsg;
struct noisy_dgram_st *data;
OSSL_TIME now;
if (!TEST_ptr(next))
return 0;
data = BIO_get_data(bio);
if (!TEST_ptr(data))
return 0;
/*
* For simplicity we assume that all elements in the msg array have the
* same data_len. They are not required to by the API, but it would be quite
* strange for that not to be the case - and our code that calls
* BIO_recvmmsg does do this (which is all that is important for this test
* code). We test the invariant here.
*/
for (i = 0; i < num_msg; i++) {
if (i == 0) {
data_len = msg[i].data_len;
if (!TEST_size_t_le(data_len, MSG_DATA_LEN_MAX))
return 0;
} else if (!TEST_size_t_eq(msg[i].data_len, data_len)) {
return 0;
}
}
if (!BIO_recvmmsg(next, msg, stride, num_msg, flags, msgs_processed))
return 0;
#ifdef OSSL_NOISY_DGRAM_DEBUG
printf("Pre-filter datagram list:\n");
for (i = 0; i < *msgs_processed; i++) {
printf("Pre-filter Datagram:\n");
BIO_dump_fp(stdout, msg[i].data, msg[i].data_len);
printf("\n");
}
printf("End of pre-filter datagram list\nApplying noise filters:\n");
#endif
now = data->now_cb != NULL ? data->now_cb(data->now_cb_arg)
: ossl_time_now();
msg_cnt = *msgs_processed;
msg_cnt = bandwidth_limit(&data->recv_limit, now, msg, msg_cnt);
if (msg_cnt == 0)
goto end;
if (data->noise_rate == 0)
goto end;
/* Introduce noise */
for (i = 0, thismsg = msg;
i < msg_cnt;
i++, thismsg++, data->this_dgram++) {
uint64_t reinject;
int should_drop;
uint16_t flip;
size_t flip_offset;
/* If we have a message to reinject then insert it now */
if (data->reinject_dgram > 0
&& data->reinject_dgram == data->this_dgram) {
if (msg_cnt < num_msg) {
/* Make space for the injected message */
for (j = msg_cnt; j > i; j--) {
if (!bio_msg_copy(&msg[j], &msg[j - 1]))
return 0;
}
if (!bio_msg_copy(thismsg, &data->msg))
return 0;
msg_cnt++;
data->reinject_dgram = 0;
#ifdef OSSL_NOISY_DGRAM_DEBUG
printf("**Injecting a datagram\n");
BIO_dump_fp(stdout, thismsg->data, thismsg->data_len);
printf("\n");
#endif
continue;
} /* else we have no space for the injection, so just drop it */
data->reinject_dgram = 0;
}
get_noise(data->noise_rate,
/* long header */ (((uint8_t *)thismsg->data)[0] & 0x80) != 0,
&reinject, &should_drop, &flip, &flip_offset);
if (data->backoff) {
/*
* We might be asked to back off on introducing too much noise if
* there is a danger that the connection will fail. In that case
* we always ensure that the next datagram does not get dropped so
* that the connection always survives. After that we can resume
* with normal noise
*/
#ifdef OSSL_NOISY_DGRAM_DEBUG
printf("**Back off applied\n");
#endif
should_drop = 0;
flip = 0;
data->backoff = 0;
}
flip_bits(thismsg->data, thismsg->data_len, flip, flip_offset);
/*
* We ignore reinjection if a message is already waiting to be
* reinjected
*/
if (reinject > 0 && data->reinject_dgram == 0) {
/*
* Both duplicated and delayed datagrams get reintroduced after the
* delay period. Datagrams that are delayed only (not duplicated)
* will also have the current copy of the datagram dropped (i.e
* should_drop below will be true).
*/
if (!bio_msg_copy(&data->msg, thismsg))
return 0;
data->reinject_dgram = data->this_dgram + reinject;
#ifdef OSSL_NOISY_DGRAM_DEBUG
printf("**Scheduling a reinject after %u messages%s\n",
(unsigned int)reinject, should_drop ? "" : "(duplicating)");
BIO_dump_fp(stdout, thismsg->data, thismsg->data_len);
printf("\n");
#endif
}
if (should_drop) {
#ifdef OSSL_NOISY_DGRAM_DEBUG
printf("**Dropping a datagram\n");
BIO_dump_fp(stdout, thismsg->data, thismsg->data_len);
printf("\n");
#endif
for (j = i + 1; j < msg_cnt; j++) {
if (!bio_msg_copy(&msg[j - 1], &msg[j]))
return 0;
}
msg_cnt--;
}
}
#ifdef OSSL_NOISY_DGRAM_DEBUG
printf("End of noise filters\nPost-filter datagram list:\n");
for (i = 0; i < msg_cnt; i++) {
printf("Post-filter Datagram:\n");
BIO_dump_fp(stdout, msg[i].data, msg[i].data_len);
printf("\n");
}
printf("End of post-filter datagram list\n");
#endif
end:
*msgs_processed = msg_cnt;
if (msg_cnt == 0) {
ERR_raise(ERR_LIB_BIO, BIO_R_NON_FATAL);
return 0;
}
return 1;
}
static void data_free(struct noisy_dgram_st *data)
{
if (data == NULL)
return;
OPENSSL_free(data->msg.data);
BIO_ADDR_free(data->msg.peer);
BIO_ADDR_free(data->msg.local);
OPENSSL_free(data);
}
static int noisy_dgram_new(BIO *bio)
{
struct noisy_dgram_st *data = OPENSSL_zalloc(sizeof(*data));
if (!TEST_ptr(data))
return 0;
data->noise_rate = NOISE_RATE;
data->msg.data = OPENSSL_malloc(MSG_DATA_LEN_MAX);
data->msg.peer = BIO_ADDR_new();
data->msg.local = BIO_ADDR_new();
if (data->msg.data == NULL
|| data->msg.peer == NULL
|| data->msg.local == NULL) {
data_free(data);
return 0;
}
BIO_set_data(bio, data);
BIO_set_init(bio, 1);
return 1;
}
static int noisy_dgram_free(BIO *bio)
{
data_free(BIO_get_data(bio));
BIO_set_data(bio, NULL);
BIO_set_init(bio, 0);
return 1;
}
/* Choose a sufficiently large type likely to be unused for this custom BIO */
#define BIO_TYPE_NOISY_DGRAM_FILTER (0x80 | BIO_TYPE_FILTER)
static BIO_METHOD *method_noisy_dgram = NULL;
/* Note: Not thread safe! */
const BIO_METHOD *bio_f_noisy_dgram_filter(void)
{
if (method_noisy_dgram == NULL) {
method_noisy_dgram = BIO_meth_new(BIO_TYPE_NOISY_DGRAM_FILTER,
"Noisy datagram filter");
if (method_noisy_dgram == NULL
|| !BIO_meth_set_ctrl(method_noisy_dgram, noisy_dgram_ctrl)
|| !BIO_meth_set_sendmmsg(method_noisy_dgram, noisy_dgram_sendmmsg)
|| !BIO_meth_set_recvmmsg(method_noisy_dgram, noisy_dgram_recvmmsg)
|| !BIO_meth_set_create(method_noisy_dgram, noisy_dgram_new)
|| !BIO_meth_set_destroy(method_noisy_dgram, noisy_dgram_free))
return NULL;
}
return method_noisy_dgram;
}
void bio_f_noisy_dgram_filter_free(void)
{
BIO_meth_free(method_noisy_dgram);
}

View File

@@ -0,0 +1,796 @@
/*
* Copyright 2020-2024 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "internal/nelem.h"
#include <openssl/pkcs12.h>
#include <openssl/x509.h>
#include <openssl/x509v3.h>
#include <openssl/pem.h>
#include "../testutil.h"
#include "pkcs12.h" /* from the same directory */
/* Set this to > 0 write test data to file */
static int write_files = 0;
static int legacy = 0;
static OSSL_LIB_CTX *test_ctx = NULL;
static const char *test_propq = NULL;
/* -------------------------------------------------------------------------
* Local function declarations
*/
static int add_attributes(PKCS12_SAFEBAG *bag, const PKCS12_ATTR *attrs);
static void generate_p12(PKCS12_BUILDER *pb, const PKCS12_ENC *mac);
static int write_p12(PKCS12 *p12, const char *outfile);
static PKCS12 *from_bio_p12(BIO *bio, const PKCS12_ENC *mac);
static PKCS12 *read_p12(const char *infile, const PKCS12_ENC *mac);
static int check_p12_mac(PKCS12 *p12, const PKCS12_ENC *mac);
static int check_asn1_string(const ASN1_TYPE *av, const char *txt);
static int check_attrs(const STACK_OF(X509_ATTRIBUTE) *bag_attrs, const PKCS12_ATTR *attrs);
/* --------------------------------------------------------------------------
* Global settings
*/
void PKCS12_helper_set_write_files(int enable)
{
write_files = enable;
}
void PKCS12_helper_set_legacy(int enable)
{
legacy = enable;
}
void PKCS12_helper_set_libctx(OSSL_LIB_CTX *libctx)
{
test_ctx = libctx;
}
void PKCS12_helper_set_propq(const char *propq)
{
test_propq = propq;
}
/* --------------------------------------------------------------------------
* Test data load functions
*/
static X509 *load_cert_asn1(const unsigned char *bytes, int len)
{
X509 *cert = NULL;
cert = d2i_X509(NULL, &bytes, len);
if (!TEST_ptr(cert))
goto err;
err:
return cert;
}
static EVP_PKEY *load_pkey_asn1(const unsigned char *bytes, int len)
{
EVP_PKEY *pkey = NULL;
pkey = d2i_AutoPrivateKey(NULL, &bytes, len);
if (!TEST_ptr(pkey))
goto err;
err:
return pkey;
}
/* -------------------------------------------------------------------------
* PKCS12 builder
*/
PKCS12_BUILDER *new_pkcs12_builder(const char *filename)
{
PKCS12_BUILDER *pb = OPENSSL_malloc(sizeof(PKCS12_BUILDER));
if (!TEST_ptr(pb))
return NULL;
pb->filename = filename;
pb->success = 1;
return pb;
}
int end_pkcs12_builder(PKCS12_BUILDER *pb)
{
int result = pb->success;
OPENSSL_free(pb);
return result;
}
void start_pkcs12(PKCS12_BUILDER *pb)
{
pb->safes = NULL;
}
void end_pkcs12(PKCS12_BUILDER *pb)
{
if (!pb->success)
return;
generate_p12(pb, NULL);
}
void end_pkcs12_with_mac(PKCS12_BUILDER *pb, const PKCS12_ENC *mac)
{
if (!pb->success)
return;
generate_p12(pb, mac);
}
/* Generate the PKCS12 encoding and write to memory bio */
static void generate_p12(PKCS12_BUILDER *pb, const PKCS12_ENC *mac)
{
PKCS12 *p12;
EVP_MD *md = NULL;
if (!pb->success)
return;
pb->p12bio = BIO_new(BIO_s_mem());
if (!TEST_ptr(pb->p12bio)) {
pb->success = 0;
return;
}
if (legacy)
p12 = PKCS12_add_safes(pb->safes, 0);
else
p12 = PKCS12_add_safes_ex(pb->safes, 0, test_ctx, test_propq);
if (!TEST_ptr(p12)) {
pb->success = 0;
goto err;
}
sk_PKCS7_pop_free(pb->safes, PKCS7_free);
if (mac != NULL) {
if (legacy)
md = (EVP_MD *)EVP_get_digestbynid(mac->nid);
else
md = EVP_MD_fetch(test_ctx, OBJ_nid2sn(mac->nid), test_propq);
if (!TEST_true(PKCS12_set_mac(p12, mac->pass, strlen(mac->pass),
NULL, 0, mac->iter, md))) {
pb->success = 0;
goto err;
}
}
i2d_PKCS12_bio(pb->p12bio, p12);
/* Can write to file here for debug */
if (write_files)
write_p12(p12, pb->filename);
err:
if (!legacy && md != NULL)
EVP_MD_free(md);
PKCS12_free(p12);
}
static int write_p12(PKCS12 *p12, const char *outfile)
{
int ret = 0;
BIO *out = BIO_new_file(outfile, "w");
if (out == NULL)
goto err;
if (!TEST_int_eq(i2d_PKCS12_bio(out, p12), 1))
goto err;
ret = 1;
err:
BIO_free(out);
return ret;
}
static PKCS12 *from_bio_p12(BIO *bio, const PKCS12_ENC *mac)
{
PKCS12 *p12 = NULL;
/* Supply a p12 with library context/propq to the d2i decoder*/
if (!legacy) {
p12 = PKCS12_init_ex(NID_pkcs7_data, test_ctx, test_propq);
if (!TEST_ptr(p12))
goto err;
}
p12 = d2i_PKCS12_bio(bio, &p12);
BIO_free(bio);
if (!TEST_ptr(p12))
goto err;
if (mac == NULL) {
if (!TEST_false(PKCS12_mac_present(p12)))
goto err;
} else {
if (!check_p12_mac(p12, mac))
goto err;
}
return p12;
err:
PKCS12_free(p12);
return NULL;
}
/* For use with existing files */
static PKCS12 *read_p12(const char *infile, const PKCS12_ENC *mac)
{
PKCS12 *p12 = NULL;
BIO *in = BIO_new_file(infile, "r");
if (in == NULL)
goto err;
p12 = d2i_PKCS12_bio(in, NULL);
BIO_free(in);
if (!TEST_ptr(p12))
goto err;
if (mac == NULL) {
if (!TEST_false(PKCS12_mac_present(p12)))
goto err;
} else {
if (!check_p12_mac(p12, mac))
goto err;
}
return p12;
err:
PKCS12_free(p12);
return NULL;
}
static int check_p12_mac(PKCS12 *p12, const PKCS12_ENC *mac)
{
return TEST_true(PKCS12_mac_present(p12))
&& TEST_true(PKCS12_verify_mac(p12, mac->pass, strlen(mac->pass)));
}
/* -------------------------------------------------------------------------
* PKCS7 content info builder
*/
void start_contentinfo(PKCS12_BUILDER *pb)
{
pb->bags = NULL;
}
void end_contentinfo(PKCS12_BUILDER *pb)
{
if (pb->success && pb->bags != NULL) {
if (!TEST_true(PKCS12_add_safe(&pb->safes, pb->bags, -1, 0, NULL)))
pb->success = 0;
}
sk_PKCS12_SAFEBAG_pop_free(pb->bags, PKCS12_SAFEBAG_free);
pb->bags = NULL;
}
void end_contentinfo_encrypted(PKCS12_BUILDER *pb, const PKCS12_ENC *enc)
{
if (pb->success && pb->bags != NULL) {
if (legacy) {
if (!TEST_true(PKCS12_add_safe(&pb->safes, pb->bags, enc->nid,
enc->iter, enc->pass)))
pb->success = 0;
} else {
if (!TEST_true(PKCS12_add_safe_ex(&pb->safes, pb->bags, enc->nid,
enc->iter, enc->pass, test_ctx,
test_propq)))
pb->success = 0;
}
}
sk_PKCS12_SAFEBAG_pop_free(pb->bags, PKCS12_SAFEBAG_free);
pb->bags = NULL;
}
static STACK_OF(PKCS12_SAFEBAG) *decode_contentinfo(STACK_OF(PKCS7) *safes, int idx, const PKCS12_ENC *enc)
{
STACK_OF(PKCS12_SAFEBAG) *bags = NULL;
int bagnid;
PKCS7 *p7 = sk_PKCS7_value(safes, idx);
if (!TEST_ptr(p7))
goto err;
bagnid = OBJ_obj2nid(p7->type);
if (enc) {
if (!TEST_int_eq(bagnid, NID_pkcs7_encrypted))
goto err;
bags = PKCS12_unpack_p7encdata(p7, enc->pass, strlen(enc->pass));
} else {
if (!TEST_int_eq(bagnid, NID_pkcs7_data))
goto err;
bags = PKCS12_unpack_p7data(p7);
}
if (!TEST_ptr(bags))
goto err;
return bags;
err:
return NULL;
}
/* -------------------------------------------------------------------------
* PKCS12 safeBag/attribute builder
*/
static int add_attributes(PKCS12_SAFEBAG *bag, const PKCS12_ATTR *attr)
{
int ret = 0;
int attr_nid;
const PKCS12_ATTR *p_attr = attr;
STACK_OF(X509_ATTRIBUTE)* attrs = NULL;
X509_ATTRIBUTE *x509_attr = NULL;
if (attr == NULL)
return 1;
while (p_attr->oid != NULL) {
TEST_info("Adding attribute %s = %s", p_attr->oid, p_attr->value);
attr_nid = OBJ_txt2nid(p_attr->oid);
if (attr_nid == NID_friendlyName) {
if (!TEST_true(PKCS12_add_friendlyname(bag, p_attr->value, -1)))
goto err;
} else if (attr_nid == NID_localKeyID) {
if (!TEST_true(PKCS12_add_localkeyid(bag, (unsigned char *)p_attr->value,
strlen(p_attr->value))))
goto err;
} else if (attr_nid == NID_oracle_jdk_trustedkeyusage) {
attrs = (STACK_OF(X509_ATTRIBUTE)*)PKCS12_SAFEBAG_get0_attrs(bag);
x509_attr = X509_ATTRIBUTE_create(attr_nid, V_ASN1_OBJECT, OBJ_txt2obj(p_attr->value, 0));
X509at_add1_attr(&attrs, x509_attr);
PKCS12_SAFEBAG_set0_attrs(bag, attrs);
X509_ATTRIBUTE_free(x509_attr);
} else {
/* Custom attribute values limited to ASCII in these tests */
if (!TEST_true(PKCS12_add1_attr_by_txt(bag, p_attr->oid, MBSTRING_ASC,
(unsigned char *)p_attr->value,
strlen(p_attr->value))))
goto err;
}
p_attr++;
}
ret = 1;
err:
return ret;
}
void add_certbag(PKCS12_BUILDER *pb, const unsigned char *bytes, int len,
const PKCS12_ATTR *attrs)
{
PKCS12_SAFEBAG *bag = NULL;
X509 *cert = NULL;
char *name;
if (!pb->success)
return;
cert = load_cert_asn1(bytes, len);
if (!TEST_ptr(cert)) {
pb->success = 0;
return;
}
name = X509_NAME_oneline(X509_get_subject_name(cert), NULL, 0);
TEST_info("Adding certificate <%s>", name);
OPENSSL_free(name);
bag = PKCS12_add_cert(&pb->bags, cert);
if (!TEST_ptr(bag)) {
pb->success = 0;
goto err;
}
if (!TEST_true(add_attributes(bag, attrs))) {
pb->success = 0;
goto err;
}
err:
X509_free(cert);
}
void add_keybag(PKCS12_BUILDER *pb, const unsigned char *bytes, int len,
const PKCS12_ATTR *attrs, const PKCS12_ENC *enc)
{
PKCS12_SAFEBAG *bag = NULL;
EVP_PKEY *pkey = NULL;
if (!pb->success)
return;
TEST_info("Adding key");
pkey = load_pkey_asn1(bytes, len);
if (!TEST_ptr(pkey)) {
pb->success = 0;
return;
}
if (legacy)
bag = PKCS12_add_key(&pb->bags, pkey, 0 /*keytype*/, enc->iter, enc->nid, enc->pass);
else
bag = PKCS12_add_key_ex(&pb->bags, pkey, 0 /*keytype*/, enc->iter, enc->nid, enc->pass,
test_ctx, test_propq);
if (!TEST_ptr(bag)) {
pb->success = 0;
goto err;
}
if (!add_attributes(bag, attrs))
pb->success = 0;
err:
EVP_PKEY_free(pkey);
}
void add_secretbag(PKCS12_BUILDER *pb, int secret_nid, const char *secret,
const PKCS12_ATTR *attrs)
{
PKCS12_SAFEBAG *bag = NULL;
if (!pb->success)
return;
TEST_info("Adding secret <%s>", secret);
bag = PKCS12_add_secret(&pb->bags, secret_nid, (const unsigned char *)secret, strlen(secret));
if (!TEST_ptr(bag)) {
pb->success = 0;
return;
}
if (!add_attributes(bag, attrs))
pb->success = 0;
}
/* -------------------------------------------------------------------------
* PKCS12 structure checking
*/
static int check_asn1_string(const ASN1_TYPE *av, const char *txt)
{
int ret = 0;
char *value = NULL;
if (!TEST_ptr(av))
goto err;
switch (av->type) {
case V_ASN1_BMPSTRING:
value = OPENSSL_uni2asc(av->value.bmpstring->data,
av->value.bmpstring->length);
if (!TEST_str_eq(txt, (char *)value))
goto err;
break;
case V_ASN1_UTF8STRING:
if (!TEST_mem_eq(txt, strlen(txt), (char *)av->value.utf8string->data,
av->value.utf8string->length))
goto err;
break;
case V_ASN1_OCTET_STRING:
if (!TEST_mem_eq(txt, strlen(txt),
(char *)av->value.octet_string->data,
av->value.octet_string->length))
goto err;
break;
default:
/* Tests do not support other attribute types currently */
goto err;
}
ret = 1;
err:
OPENSSL_free(value);
return ret;
}
static int check_attrs(const STACK_OF(X509_ATTRIBUTE) *bag_attrs, const PKCS12_ATTR *attrs)
{
int ret = 0;
X509_ATTRIBUTE *attr;
ASN1_TYPE *av;
int i, j;
char attr_txt[100];
for (i = 0; i < sk_X509_ATTRIBUTE_num(bag_attrs); i++) {
const PKCS12_ATTR *p_attr = attrs;
ASN1_OBJECT *attr_obj;
attr = sk_X509_ATTRIBUTE_value(bag_attrs, i);
attr_obj = X509_ATTRIBUTE_get0_object(attr);
OBJ_obj2txt(attr_txt, 100, attr_obj, 0);
while (p_attr->oid != NULL) {
/* Find a matching attribute type */
if (strcmp(p_attr->oid, attr_txt) == 0) {
if (!TEST_int_eq(X509_ATTRIBUTE_count(attr), 1))
goto err;
for (j = 0; j < X509_ATTRIBUTE_count(attr); j++) {
av = X509_ATTRIBUTE_get0_type(attr, j);
if (!TEST_true(check_asn1_string(av, p_attr->value)))
goto err;
}
break;
}
p_attr++;
}
}
ret = 1;
err:
return ret;
}
void check_certbag(PKCS12_BUILDER *pb, const unsigned char *bytes, int len,
const PKCS12_ATTR *attrs)
{
X509 *x509 = NULL;
X509 *ref_x509 = NULL;
const PKCS12_SAFEBAG *bag;
if (!pb->success)
return;
bag = sk_PKCS12_SAFEBAG_value(pb->bags, pb->bag_idx++);
if (!TEST_ptr(bag)) {
pb->success = 0;
return;
}
if (!check_attrs(PKCS12_SAFEBAG_get0_attrs(bag), attrs)
|| !TEST_int_eq(PKCS12_SAFEBAG_get_nid(bag), NID_certBag)
|| !TEST_int_eq(PKCS12_SAFEBAG_get_bag_nid(bag), NID_x509Certificate)) {
pb->success = 0;
return;
}
x509 = PKCS12_SAFEBAG_get1_cert(bag);
if (!TEST_ptr(x509)) {
pb->success = 0;
goto err;
}
ref_x509 = load_cert_asn1(bytes, len);
if (!TEST_false(X509_cmp(x509, ref_x509)))
pb->success = 0;
err:
X509_free(x509);
X509_free(ref_x509);
}
void check_keybag(PKCS12_BUILDER *pb, const unsigned char *bytes, int len,
const PKCS12_ATTR *attrs, const PKCS12_ENC *enc)
{
EVP_PKEY *pkey = NULL;
EVP_PKEY *ref_pkey = NULL;
PKCS8_PRIV_KEY_INFO *p8;
const PKCS8_PRIV_KEY_INFO *p8c;
const PKCS12_SAFEBAG *bag;
if (!pb->success)
return;
bag = sk_PKCS12_SAFEBAG_value(pb->bags, pb->bag_idx++);
if (!TEST_ptr(bag)) {
pb->success = 0;
return;
}
if (!check_attrs(PKCS12_SAFEBAG_get0_attrs(bag), attrs)) {
pb->success = 0;
return;
}
switch (PKCS12_SAFEBAG_get_nid(bag)) {
case NID_keyBag:
p8c = PKCS12_SAFEBAG_get0_p8inf(bag);
if (!TEST_ptr(pkey = EVP_PKCS82PKEY(p8c))) {
pb->success = 0;
goto err;
}
break;
case NID_pkcs8ShroudedKeyBag:
if (legacy)
p8 = PKCS12_decrypt_skey(bag, enc->pass, strlen(enc->pass));
else
p8 = PKCS12_decrypt_skey_ex(bag, enc->pass, strlen(enc->pass), test_ctx, test_propq);
if (!TEST_ptr(p8)) {
pb->success = 0;
goto err;
}
if (!TEST_ptr(pkey = EVP_PKCS82PKEY(p8))) {
PKCS8_PRIV_KEY_INFO_free(p8);
pb->success = 0;
goto err;
}
PKCS8_PRIV_KEY_INFO_free(p8);
break;
default:
pb->success = 0;
goto err;
}
/* PKEY compare returns 1 for match */
ref_pkey = load_pkey_asn1(bytes, len);
if (!TEST_true(EVP_PKEY_eq(pkey, ref_pkey)))
pb->success = 0;
err:
EVP_PKEY_free(pkey);
EVP_PKEY_free(ref_pkey);
}
void check_secretbag(PKCS12_BUILDER *pb, int secret_nid, const char *secret, const PKCS12_ATTR *attrs)
{
const PKCS12_SAFEBAG *bag;
if (!pb->success)
return;
bag = sk_PKCS12_SAFEBAG_value(pb->bags, pb->bag_idx++);
if (!TEST_ptr(bag)) {
pb->success = 0;
return;
}
if (!check_attrs(PKCS12_SAFEBAG_get0_attrs(bag), attrs)
|| !TEST_int_eq(PKCS12_SAFEBAG_get_nid(bag), NID_secretBag)
|| !TEST_int_eq(PKCS12_SAFEBAG_get_bag_nid(bag), secret_nid)
|| !TEST_true(check_asn1_string(PKCS12_SAFEBAG_get0_bag_obj(bag), secret)))
pb->success = 0;
}
void start_check_pkcs12(PKCS12_BUILDER *pb)
{
PKCS12 *p12;
if (!pb->success)
return;
p12 = from_bio_p12(pb->p12bio, NULL);
if (!TEST_ptr(p12)) {
pb->success = 0;
return;
}
pb->safes = PKCS12_unpack_authsafes(p12);
if (!TEST_ptr(pb->safes))
pb->success = 0;
pb->safe_idx = 0;
PKCS12_free(p12);
}
void start_check_pkcs12_with_mac(PKCS12_BUILDER *pb, const PKCS12_ENC *mac)
{
PKCS12 *p12;
if (!pb->success)
return;
p12 = from_bio_p12(pb->p12bio, mac);
if (!TEST_ptr(p12)) {
pb->success = 0;
return;
}
pb->safes = PKCS12_unpack_authsafes(p12);
if (!TEST_ptr(pb->safes))
pb->success = 0;
pb->safe_idx = 0;
PKCS12_free(p12);
}
void start_check_pkcs12_file(PKCS12_BUILDER *pb)
{
PKCS12 *p12;
if (!pb->success)
return;
p12 = read_p12(pb->filename, NULL);
if (!TEST_ptr(p12)) {
pb->success = 0;
return;
}
pb->safes = PKCS12_unpack_authsafes(p12);
if (!TEST_ptr(pb->safes))
pb->success = 0;
pb->safe_idx = 0;
PKCS12_free(p12);
}
void start_check_pkcs12_file_with_mac(PKCS12_BUILDER *pb, const PKCS12_ENC *mac)
{
PKCS12 *p12;
if (!pb->success)
return;
p12 = read_p12(pb->filename, mac);
if (!TEST_ptr(p12)) {
pb->success = 0;
return;
}
pb->safes = PKCS12_unpack_authsafes(p12);
if (!TEST_ptr(pb->safes))
pb->success = 0;
pb->safe_idx = 0;
PKCS12_free(p12);
}
void end_check_pkcs12(PKCS12_BUILDER *pb)
{
if (!pb->success)
return;
sk_PKCS7_pop_free(pb->safes, PKCS7_free);
}
void start_check_contentinfo(PKCS12_BUILDER *pb)
{
if (!pb->success)
return;
pb->bag_idx = 0;
pb->bags = decode_contentinfo(pb->safes, pb->safe_idx++, NULL);
if (!TEST_ptr(pb->bags)) {
pb->success = 0;
return;
}
TEST_info("Decoding %d bags", sk_PKCS12_SAFEBAG_num(pb->bags));
}
void start_check_contentinfo_encrypted(PKCS12_BUILDER *pb, const PKCS12_ENC *enc)
{
if (!pb->success)
return;
pb->bag_idx = 0;
pb->bags = decode_contentinfo(pb->safes, pb->safe_idx++, enc);
if (!TEST_ptr(pb->bags)) {
pb->success = 0;
return;
}
TEST_info("Decoding %d bags", sk_PKCS12_SAFEBAG_num(pb->bags));
}
void end_check_contentinfo(PKCS12_BUILDER *pb)
{
if (!pb->success)
return;
if (!TEST_int_eq(sk_PKCS12_SAFEBAG_num(pb->bags), pb->bag_idx))
pb->success = 0;
sk_PKCS12_SAFEBAG_pop_free(pb->bags, PKCS12_SAFEBAG_free);
pb->bags = NULL;
}

View File

@@ -0,0 +1,104 @@
/*
* Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "internal/nelem.h"
#include <openssl/pkcs12.h>
#include <openssl/x509.h>
#include <openssl/x509v3.h>
#include <openssl/pem.h>
#include "../testutil.h"
/* -------------------------------------------------------------------------
* PKCS#12 Test structures
*/
/* Holds a set of Attributes */
typedef struct pkcs12_attr {
char *oid;
char *value;
} PKCS12_ATTR;
/* Holds encryption parameters */
typedef struct pkcs12_enc {
int nid;
const char *pass;
int iter;
} PKCS12_ENC;
/* Set of variables required for constructing the PKCS#12 structure */
typedef struct pkcs12_builder {
const char *filename;
int success;
BIO *p12bio;
STACK_OF(PKCS7) *safes;
int safe_idx;
STACK_OF(PKCS12_SAFEBAG) *bags;
int bag_idx;
} PKCS12_BUILDER;
/* -------------------------------------------------------------------------
* PKCS#12 Test function declarations
*/
/* Global settings */
void PKCS12_helper_set_write_files(int enable);
void PKCS12_helper_set_legacy(int enable);
void PKCS12_helper_set_libctx(OSSL_LIB_CTX *libctx);
void PKCS12_helper_set_propq(const char *propq);
/* Allocate and initialise a PKCS#12 builder object */
PKCS12_BUILDER *new_pkcs12_builder(const char *filename);
/* Finalise and free the PKCS#12 builder object, returning the success/fail flag */
int end_pkcs12_builder(PKCS12_BUILDER *pb);
/* Encode/build functions */
void start_pkcs12(PKCS12_BUILDER *pb);
void end_pkcs12(PKCS12_BUILDER *pb);
void end_pkcs12_with_mac(PKCS12_BUILDER *pb, const PKCS12_ENC *mac);
void start_contentinfo(PKCS12_BUILDER *pb);
void end_contentinfo(PKCS12_BUILDER *pb);
void end_contentinfo_encrypted(PKCS12_BUILDER *pb, const PKCS12_ENC *enc);
void add_certbag(PKCS12_BUILDER *pb, const unsigned char *bytes, int len,
const PKCS12_ATTR *attrs);
void add_keybag(PKCS12_BUILDER *pb, const unsigned char *bytes, int len,
const PKCS12_ATTR *attrs, const PKCS12_ENC *enc);
void add_secretbag(PKCS12_BUILDER *pb, int secret_nid, const char *secret,
const PKCS12_ATTR *attrs);
void add_extra_attr(PKCS12_BUILDER *pb);
/* Decode/check functions */
void start_check_pkcs12(PKCS12_BUILDER *pb);
void start_check_pkcs12_with_mac(PKCS12_BUILDER *pb, const PKCS12_ENC *mac);
void start_check_pkcs12_file(PKCS12_BUILDER *pb);
void start_check_pkcs12_file_with_mac(PKCS12_BUILDER *pb, const PKCS12_ENC *mac);
void end_check_pkcs12(PKCS12_BUILDER *pb);
void start_check_contentinfo(PKCS12_BUILDER *pb);
void start_check_contentinfo_encrypted(PKCS12_BUILDER *pb, const PKCS12_ENC *enc);
void end_check_contentinfo(PKCS12_BUILDER *pb);
void check_certbag(PKCS12_BUILDER *pb, const unsigned char *bytes, int len,
const PKCS12_ATTR *attrs);
void check_keybag(PKCS12_BUILDER *pb, const unsigned char *bytes, int len,
const PKCS12_ATTR *attrs, const PKCS12_ENC *enc);
void check_secretbag(PKCS12_BUILDER *pb, int secret_nid, const char *secret,
const PKCS12_ATTR *attrs);

View File

@@ -0,0 +1,29 @@
test/helpers/pkcs12_api_test-bin-pkcs12.o: test/helpers/pkcs12.c \
include/internal/nelem.h include/openssl/pkcs12.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/bio.h include/openssl/e_os2.h include/openssl/crypto.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bioerr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pkcs12err.h \
include/openssl/x509v3.h include/openssl/x509v3err.h \
include/openssl/pem.h include/openssl/pemerr.h \
test/helpers/../testutil.h include/internal/common.h \
include/internal/e_os.h include/internal/numbers.h \
include/openssl/provider.h include/openssl/err.h apps/include/opt.h \
test/helpers/pkcs12.h

View File

@@ -0,0 +1,29 @@
test/helpers/pkcs12_format_test-bin-pkcs12.o: test/helpers/pkcs12.c \
include/internal/nelem.h include/openssl/pkcs12.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/bio.h include/openssl/e_os2.h include/openssl/crypto.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bioerr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pkcs12err.h \
include/openssl/x509v3.h include/openssl/x509v3err.h \
include/openssl/pem.h include/openssl/pemerr.h \
test/helpers/../testutil.h include/internal/common.h \
include/internal/e_os.h include/internal/numbers.h \
include/openssl/provider.h include/openssl/err.h apps/include/opt.h \
test/helpers/pkcs12.h

View File

@@ -0,0 +1,141 @@
/*
* Copyright 2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#include <openssl/bio.h>
#include "quictestlib.h"
#include "../testutil.h"
static long pkt_split_dgram_ctrl(BIO *bio, int cmd, long num, void *ptr)
{
long ret;
BIO *next = BIO_next(bio);
if (next == NULL)
return 0;
switch (cmd) {
case BIO_CTRL_DUP:
ret = 0L;
break;
default:
ret = BIO_ctrl(next, cmd, num, ptr);
break;
}
return ret;
}
static int pkt_split_dgram_sendmmsg(BIO *bio, BIO_MSG *msg, size_t stride,
size_t num_msg, uint64_t flags,
size_t *msgs_processed)
{
BIO *next = BIO_next(bio);
if (next == NULL)
return 0;
/*
* We only introduce noise when receiving messages. We just pass this on
* to the underlying BIO.
*/
return BIO_sendmmsg(next, msg, stride, num_msg, flags, msgs_processed);
}
static int pkt_split_dgram_recvmmsg(BIO *bio, BIO_MSG *msg, size_t stride,
size_t num_msg, uint64_t flags,
size_t *msgs_processed)
{
BIO *next = BIO_next(bio);
size_t i, j, data_len = 0, msg_cnt = 0;
BIO_MSG *thismsg;
if (!TEST_ptr(next))
return 0;
/*
* For simplicity we assume that all elements in the msg array have the
* same data_len. They are not required to by the API, but it would be quite
* strange for that not to be the case - and our code that calls
* BIO_recvmmsg does do this (which is all that is important for this test
* code). We test the invariant here.
*/
for (i = 0; i < num_msg; i++) {
if (i == 0)
data_len = msg[i].data_len;
else if (!TEST_size_t_eq(msg[i].data_len, data_len))
return 0;
}
if (!BIO_recvmmsg(next, msg, stride, num_msg, flags, msgs_processed))
return 0;
msg_cnt = *msgs_processed;
if (msg_cnt == num_msg)
return 1; /* We've used all our slots and can't split any more */
assert(msg_cnt < num_msg);
for (i = 0, thismsg = msg; i < msg_cnt; i++, thismsg++) {
QUIC_PKT_HDR hdr;
PACKET pkt;
size_t remain;
if (!PACKET_buf_init(&pkt, thismsg->data, thismsg->data_len))
return 0;
/* Decode the packet header */
/*
* TODO(QUIC SERVER): We need to query the short connection id len
* here, e.g. via some API SSL_get_short_conn_id_len()
*/
if (ossl_quic_wire_decode_pkt_hdr(&pkt, 0, 0, 0, &hdr, NULL) != 1)
return 0;
remain = PACKET_remaining(&pkt);
if (remain > 0) {
for (j = msg_cnt; j > i; j--) {
if (!bio_msg_copy(&msg[j], &msg[j - 1]))
return 0;
}
thismsg->data_len -= remain;
msg[i + 1].data_len = remain;
memmove(msg[i + 1].data,
(unsigned char *)msg[i + 1].data + thismsg->data_len,
remain);
msg_cnt++;
}
}
*msgs_processed = msg_cnt;
return 1;
}
/* Choose a sufficiently large type likely to be unused for this custom BIO */
#define BIO_TYPE_PKT_SPLIT_DGRAM_FILTER (0x81 | BIO_TYPE_FILTER)
static BIO_METHOD *method_pkt_split_dgram = NULL;
/* Note: Not thread safe! */
const BIO_METHOD *bio_f_pkt_split_dgram_filter(void)
{
if (method_pkt_split_dgram == NULL) {
method_pkt_split_dgram = BIO_meth_new(BIO_TYPE_PKT_SPLIT_DGRAM_FILTER,
"Packet splitting datagram filter");
if (method_pkt_split_dgram == NULL
|| !BIO_meth_set_ctrl(method_pkt_split_dgram, pkt_split_dgram_ctrl)
|| !BIO_meth_set_sendmmsg(method_pkt_split_dgram,
pkt_split_dgram_sendmmsg)
|| !BIO_meth_set_recvmmsg(method_pkt_split_dgram,
pkt_split_dgram_recvmmsg))
return NULL;
}
return method_pkt_split_dgram;
}
void bio_f_pkt_split_dgram_filter_free(void)
{
BIO_meth_free(method_pkt_split_dgram);
}

View File

@@ -0,0 +1,194 @@
/*
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#include <openssl/evp.h>
#include <openssl/core_names.h>
#include <openssl/param_build.h>
#include "predefined_dhparams.h"
#ifndef OPENSSL_NO_DH
static EVP_PKEY *get_dh_from_pg_bn(OSSL_LIB_CTX *libctx, const char *type,
BIGNUM *p, BIGNUM *g, BIGNUM *q)
{
EVP_PKEY_CTX *pctx = EVP_PKEY_CTX_new_from_name(libctx, type, NULL);
OSSL_PARAM_BLD *tmpl = NULL;
OSSL_PARAM *params = NULL;
EVP_PKEY *dhpkey = NULL;
if (pctx == NULL || EVP_PKEY_fromdata_init(pctx) <= 0)
goto err;
if ((tmpl = OSSL_PARAM_BLD_new()) == NULL
|| !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_P, p)
|| !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_G, g)
|| (q != NULL
&& !OSSL_PARAM_BLD_push_BN(tmpl, OSSL_PKEY_PARAM_FFC_Q, q)))
goto err;
params = OSSL_PARAM_BLD_to_param(tmpl);
if (params == NULL
|| EVP_PKEY_fromdata(pctx, &dhpkey, EVP_PKEY_KEY_PARAMETERS, params) <= 0)
goto err;
err:
EVP_PKEY_CTX_free(pctx);
OSSL_PARAM_free(params);
OSSL_PARAM_BLD_free(tmpl);
return dhpkey;
}
static EVP_PKEY *get_dh_from_pg(OSSL_LIB_CTX *libctx, const char *type,
unsigned char *pdata, size_t plen,
unsigned char *gdata, size_t glen,
unsigned char *qdata, size_t qlen)
{
EVP_PKEY *dhpkey = NULL;
BIGNUM *p = NULL, *g = NULL, *q = NULL;
p = BN_bin2bn(pdata, plen, NULL);
g = BN_bin2bn(gdata, glen, NULL);
if (p == NULL || g == NULL)
goto err;
if (qdata != NULL && (q = BN_bin2bn(qdata, qlen, NULL)) == NULL)
goto err;
dhpkey = get_dh_from_pg_bn(libctx, type, p, g, q);
err:
BN_free(p);
BN_free(g);
BN_free(q);
return dhpkey;
}
EVP_PKEY *get_dh512(OSSL_LIB_CTX *libctx)
{
static unsigned char dh512_p[] = {
0xCB, 0xC8, 0xE1, 0x86, 0xD0, 0x1F, 0x94, 0x17, 0xA6, 0x99, 0xF0, 0xC6,
0x1F, 0x0D, 0xAC, 0xB6, 0x25, 0x3E, 0x06, 0x39, 0xCA, 0x72, 0x04, 0xB0,
0x6E, 0xDA, 0xC0, 0x61, 0xE6, 0x7A, 0x77, 0x25, 0xE8, 0x3B, 0xB9, 0x5F,
0x9A, 0xB6, 0xB5, 0xFE, 0x99, 0x0B, 0xA1, 0x93, 0x4E, 0x35, 0x33, 0xB8,
0xE1, 0xF1, 0x13, 0x4F, 0x59, 0x1A, 0xD2, 0x57, 0xC0, 0x26, 0x21, 0x33,
0x02, 0xC5, 0xAE, 0x23,
};
static unsigned char dh512_g[] = {
0x02,
};
return get_dh_from_pg(libctx, "DH", dh512_p, sizeof(dh512_p),
dh512_g, sizeof(dh512_g), NULL, 0);
}
EVP_PKEY *get_dhx512(OSSL_LIB_CTX *libctx)
{
static unsigned char dhx512_p[] = {
0x00, 0xe8, 0x1a, 0xb7, 0x9a, 0x02, 0x65, 0x64, 0x94, 0x7b, 0xba, 0x09,
0x1c, 0x12, 0x27, 0x1e, 0xea, 0x89, 0x32, 0x64, 0x78, 0xf8, 0x1c, 0x78,
0x8e, 0x96, 0xc3, 0xc6, 0x9f, 0x41, 0x05, 0x41, 0x65, 0xae, 0xe3, 0x05,
0xea, 0x66, 0x21, 0xf7, 0x38, 0xb7, 0x2b, 0x32, 0x40, 0x5a, 0x14, 0x86,
0x51, 0x94, 0xb1, 0xcf, 0x01, 0xe3, 0x27, 0x28, 0xf6, 0x75, 0xa3, 0x15,
0xbb, 0x12, 0x4d, 0x99, 0xe7,
};
static unsigned char dhx512_g[] = {
0x00, 0x91, 0xc1, 0x43, 0x6d, 0x0d, 0xb0, 0xa4, 0xde, 0x41, 0xb7, 0x93,
0xad, 0x51, 0x94, 0x1b, 0x43, 0xd8, 0x42, 0xf1, 0x5e, 0x46, 0x83, 0x5d,
0xf1, 0xd1, 0xf0, 0x41, 0x10, 0xd1, 0x1c, 0x5e, 0xad, 0x9b, 0x68, 0xb1,
0x6f, 0xf5, 0x8e, 0xaa, 0x6d, 0x71, 0x88, 0x37, 0xdf, 0x05, 0xf7, 0x6e,
0x7a, 0xb4, 0x25, 0x10, 0x6c, 0x7f, 0x38, 0xb4, 0xc8, 0xfc, 0xcc, 0x0c,
0x6a, 0x02, 0x08, 0x61, 0xf6,
};
static unsigned char dhx512_q[] = {
0x00, 0xdd, 0xf6, 0x35, 0xad, 0xfa, 0x70, 0xc7, 0xe7, 0xa8, 0xf0, 0xe3,
0xda, 0x79, 0x34, 0x3f, 0x5b, 0xcf, 0x73, 0x82, 0x91,
};
return get_dh_from_pg(libctx, "X9.42 DH",
dhx512_p, sizeof(dhx512_p),
dhx512_g, sizeof(dhx512_g),
dhx512_q, sizeof(dhx512_q));
}
EVP_PKEY *get_dh1024dsa(OSSL_LIB_CTX *libctx)
{
static unsigned char dh1024_p[] = {
0xC8, 0x00, 0xF7, 0x08, 0x07, 0x89, 0x4D, 0x90, 0x53, 0xF3, 0xD5, 0x00,
0x21, 0x1B, 0xF7, 0x31, 0xA6, 0xA2, 0xDA, 0x23, 0x9A, 0xC7, 0x87, 0x19,
0x3B, 0x47, 0xB6, 0x8C, 0x04, 0x6F, 0xFF, 0xC6, 0x9B, 0xB8, 0x65, 0xD2,
0xC2, 0x5F, 0x31, 0x83, 0x4A, 0xA7, 0x5F, 0x2F, 0x88, 0x38, 0xB6, 0x55,
0xCF, 0xD9, 0x87, 0x6D, 0x6F, 0x9F, 0xDA, 0xAC, 0xA6, 0x48, 0xAF, 0xFC,
0x33, 0x84, 0x37, 0x5B, 0x82, 0x4A, 0x31, 0x5D, 0xE7, 0xBD, 0x52, 0x97,
0xA1, 0x77, 0xBF, 0x10, 0x9E, 0x37, 0xEA, 0x64, 0xFA, 0xCA, 0x28, 0x8D,
0x9D, 0x3B, 0xD2, 0x6E, 0x09, 0x5C, 0x68, 0xC7, 0x45, 0x90, 0xFD, 0xBB,
0x70, 0xC9, 0x3A, 0xBB, 0xDF, 0xD4, 0x21, 0x0F, 0xC4, 0x6A, 0x3C, 0xF6,
0x61, 0xCF, 0x3F, 0xD6, 0x13, 0xF1, 0x5F, 0xBC, 0xCF, 0xBC, 0x26, 0x9E,
0xBC, 0x0B, 0xBD, 0xAB, 0x5D, 0xC9, 0x54, 0x39,
};
static unsigned char dh1024_g[] = {
0x3B, 0x40, 0x86, 0xE7, 0xF3, 0x6C, 0xDE, 0x67, 0x1C, 0xCC, 0x80, 0x05,
0x5A, 0xDF, 0xFE, 0xBD, 0x20, 0x27, 0x74, 0x6C, 0x24, 0xC9, 0x03, 0xF3,
0xE1, 0x8D, 0xC3, 0x7D, 0x98, 0x27, 0x40, 0x08, 0xB8, 0x8C, 0x6A, 0xE9,
0xBB, 0x1A, 0x3A, 0xD6, 0x86, 0x83, 0x5E, 0x72, 0x41, 0xCE, 0x85, 0x3C,
0xD2, 0xB3, 0xFC, 0x13, 0xCE, 0x37, 0x81, 0x9E, 0x4C, 0x1C, 0x7B, 0x65,
0xD3, 0xE6, 0xA6, 0x00, 0xF5, 0x5A, 0x95, 0x43, 0x5E, 0x81, 0xCF, 0x60,
0xA2, 0x23, 0xFC, 0x36, 0xA7, 0x5D, 0x7A, 0x4C, 0x06, 0x91, 0x6E, 0xF6,
0x57, 0xEE, 0x36, 0xCB, 0x06, 0xEA, 0xF5, 0x3D, 0x95, 0x49, 0xCB, 0xA7,
0xDD, 0x81, 0xDF, 0x80, 0x09, 0x4A, 0x97, 0x4D, 0xA8, 0x22, 0x72, 0xA1,
0x7F, 0xC4, 0x70, 0x56, 0x70, 0xE8, 0x20, 0x10, 0x18, 0x8F, 0x2E, 0x60,
0x07, 0xE7, 0x68, 0x1A, 0x82, 0x5D, 0x32, 0xA2,
};
return get_dh_from_pg(libctx, "DH", dh1024_p, sizeof(dh1024_p),
dh1024_g, sizeof(dh1024_g), NULL, 0);
}
EVP_PKEY *get_dh2048(OSSL_LIB_CTX *libctx)
{
BIGNUM *p = NULL, *g = NULL;
EVP_PKEY *dhpkey = NULL;
g = BN_new();
if (g == NULL || !BN_set_word(g, 2))
goto err;
p = BN_get_rfc3526_prime_2048(NULL);
if (p == NULL)
goto err;
dhpkey = get_dh_from_pg_bn(libctx, "DH", p, g, NULL);
err:
BN_free(p);
BN_free(g);
return dhpkey;
}
EVP_PKEY *get_dh4096(OSSL_LIB_CTX *libctx)
{
BIGNUM *p = NULL, *g = NULL;
EVP_PKEY *dhpkey = NULL;
g = BN_new();
if (g == NULL || !BN_set_word(g, 2))
goto err;
p = BN_get_rfc3526_prime_4096(NULL);
if (p == NULL)
goto err;
dhpkey = get_dh_from_pg_bn(libctx, "DH", p, g, NULL);
err:
BN_free(p);
BN_free(g);
return dhpkey;
}
#endif

View File

@@ -0,0 +1,18 @@
/*
* Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#include <openssl/evp.h>
#ifndef OPENSSL_NO_DH
EVP_PKEY *get_dh512(OSSL_LIB_CTX *libctx);
EVP_PKEY *get_dhx512(OSSL_LIB_CTX *libctx);
EVP_PKEY *get_dh1024dsa(OSSL_LIB_CTX *libct);
EVP_PKEY *get_dh2048(OSSL_LIB_CTX *libctx);
EVP_PKEY *get_dh4096(OSSL_LIB_CTX *libctx);
#endif

View File

@@ -0,0 +1,49 @@
test/helpers/quic_multistream_test-bin-noisydgrambio.o: \
test/helpers/noisydgrambio.c include/openssl/bio.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/e_os2.h include/openssl/crypto.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bioerr.h \
test/helpers/quictestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/e_os.h \
include/internal/numbers.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,49 @@
test/helpers/quic_multistream_test-bin-pktsplitbio.o: \
test/helpers/pktsplitbio.c include/openssl/bio.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/e_os2.h include/openssl/crypto.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bioerr.h \
test/helpers/quictestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/e_os.h \
include/internal/numbers.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,53 @@
test/helpers/quic_multistream_test-bin-quictestlib.o: \
test/helpers/quictestlib.c include/openssl/configuration.h \
include/openssl/bio.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/opensslv.h \
include/openssl/e_os2.h include/openssl/crypto.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bioerr.h include/internal/e_os.h \
include/internal/numbers.h test/helpers/quictestlib.h \
include/openssl/ssl.h include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/ssltestlib.h test/helpers/../testutil.h \
include/openssl/provider.h apps/include/opt.h \
test/helpers/../threadstest.h test/helpers/../testutil.h \
include/internal/quic_ssl.h include/internal/quic_ackm.h \
include/internal/quic_cc.h include/internal/quic_error.h \
include/internal/tsan_assist.h

View File

@@ -0,0 +1,37 @@
test/helpers/quic_multistream_test-bin-ssltestlib.o: \
test/helpers/ssltestlib.c include/openssl/engine.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/bn.h include/openssl/e_os2.h include/openssl/types.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/crypto.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bnerr.h include/openssl/rsa.h \
include/openssl/asn1.h include/openssl/bio.h include/openssl/bioerr.h \
include/openssl/asn1err.h include/openssl/rsaerr.h include/openssl/dsa.h \
include/openssl/dh.h include/openssl/dherr.h include/openssl/dsaerr.h \
include/openssl/ec.h include/openssl/ecerr.h include/openssl/params.h \
include/openssl/rand.h include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

View File

@@ -0,0 +1,49 @@
test/helpers/quic_newcid_test-bin-noisydgrambio.o: \
test/helpers/noisydgrambio.c include/openssl/bio.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/e_os2.h include/openssl/crypto.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bioerr.h \
test/helpers/quictestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/e_os.h \
include/internal/numbers.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,49 @@
test/helpers/quic_newcid_test-bin-pktsplitbio.o: \
test/helpers/pktsplitbio.c include/openssl/bio.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/e_os2.h include/openssl/crypto.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bioerr.h \
test/helpers/quictestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/e_os.h \
include/internal/numbers.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,53 @@
test/helpers/quic_newcid_test-bin-quictestlib.o: \
test/helpers/quictestlib.c include/openssl/configuration.h \
include/openssl/bio.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/opensslv.h \
include/openssl/e_os2.h include/openssl/crypto.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bioerr.h include/internal/e_os.h \
include/internal/numbers.h test/helpers/quictestlib.h \
include/openssl/ssl.h include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/ssltestlib.h test/helpers/../testutil.h \
include/openssl/provider.h apps/include/opt.h \
test/helpers/../threadstest.h test/helpers/../testutil.h \
include/internal/quic_ssl.h include/internal/quic_ackm.h \
include/internal/quic_cc.h include/internal/quic_error.h \
include/internal/tsan_assist.h

View File

@@ -0,0 +1,37 @@
test/helpers/quic_newcid_test-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

View File

@@ -0,0 +1,49 @@
test/helpers/quic_srt_gen_test-bin-noisydgrambio.o: \
test/helpers/noisydgrambio.c include/openssl/bio.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/e_os2.h include/openssl/crypto.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bioerr.h \
test/helpers/quictestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/e_os.h \
include/internal/numbers.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,49 @@
test/helpers/quic_srt_gen_test-bin-pktsplitbio.o: \
test/helpers/pktsplitbio.c include/openssl/bio.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/e_os2.h include/openssl/crypto.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bioerr.h \
test/helpers/quictestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/e_os.h \
include/internal/numbers.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,53 @@
test/helpers/quic_srt_gen_test-bin-quictestlib.o: \
test/helpers/quictestlib.c include/openssl/configuration.h \
include/openssl/bio.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/opensslv.h \
include/openssl/e_os2.h include/openssl/crypto.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bioerr.h include/internal/e_os.h \
include/internal/numbers.h test/helpers/quictestlib.h \
include/openssl/ssl.h include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/ssltestlib.h test/helpers/../testutil.h \
include/openssl/provider.h apps/include/opt.h \
test/helpers/../threadstest.h test/helpers/../testutil.h \
include/internal/quic_ssl.h include/internal/quic_ackm.h \
include/internal/quic_cc.h include/internal/quic_error.h \
include/internal/tsan_assist.h

View File

@@ -0,0 +1,37 @@
test/helpers/quic_srt_gen_test-bin-ssltestlib.o: \
test/helpers/ssltestlib.c include/openssl/engine.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/bn.h include/openssl/e_os2.h include/openssl/types.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/crypto.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bnerr.h include/openssl/rsa.h \
include/openssl/asn1.h include/openssl/bio.h include/openssl/bioerr.h \
include/openssl/asn1err.h include/openssl/rsaerr.h include/openssl/dsa.h \
include/openssl/dh.h include/openssl/dherr.h include/openssl/dsaerr.h \
include/openssl/ec.h include/openssl/ecerr.h include/openssl/params.h \
include/openssl/rand.h include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

View File

@@ -0,0 +1,49 @@
test/helpers/quicapitest-bin-noisydgrambio.o: \
test/helpers/noisydgrambio.c include/openssl/bio.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/e_os2.h include/openssl/crypto.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bioerr.h \
test/helpers/quictestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/e_os.h \
include/internal/numbers.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,48 @@
test/helpers/quicapitest-bin-pktsplitbio.o: test/helpers/pktsplitbio.c \
include/openssl/bio.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/e_os2.h \
include/openssl/crypto.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/types.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bioerr.h test/helpers/quictestlib.h \
include/openssl/ssl.h include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/e_os.h \
include/internal/numbers.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,53 @@
test/helpers/quicapitest-bin-quictestlib.o: test/helpers/quictestlib.c \
include/openssl/configuration.h include/openssl/bio.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/opensslv.h include/openssl/e_os2.h \
include/openssl/crypto.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/types.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bioerr.h include/internal/e_os.h \
include/internal/numbers.h test/helpers/quictestlib.h \
include/openssl/ssl.h include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/ssltestlib.h test/helpers/../testutil.h \
include/openssl/provider.h apps/include/opt.h \
test/helpers/../threadstest.h test/helpers/../testutil.h \
include/internal/quic_ssl.h include/internal/quic_ackm.h \
include/internal/quic_cc.h include/internal/quic_error.h \
include/internal/tsan_assist.h

View File

@@ -0,0 +1,37 @@
test/helpers/quicapitest-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

View File

@@ -0,0 +1,49 @@
test/helpers/quicfaultstest-bin-noisydgrambio.o: \
test/helpers/noisydgrambio.c include/openssl/bio.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/e_os2.h include/openssl/crypto.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bioerr.h \
test/helpers/quictestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/e_os.h \
include/internal/numbers.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,48 @@
test/helpers/quicfaultstest-bin-pktsplitbio.o: test/helpers/pktsplitbio.c \
include/openssl/bio.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/e_os2.h \
include/openssl/crypto.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/types.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bioerr.h test/helpers/quictestlib.h \
include/openssl/ssl.h include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/e_os.h \
include/internal/numbers.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/../testutil.h include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,53 @@
test/helpers/quicfaultstest-bin-quictestlib.o: test/helpers/quictestlib.c \
include/openssl/configuration.h include/openssl/bio.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/opensslv.h include/openssl/e_os2.h \
include/openssl/crypto.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/types.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bioerr.h include/internal/e_os.h \
include/internal/numbers.h test/helpers/quictestlib.h \
include/openssl/ssl.h include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/internal/quic_tserver.h \
include/internal/quic_stream.h include/internal/time.h \
include/internal/safe_math.h include/internal/quic_types.h \
include/internal/ssl.h include/internal/quic_predef.h \
include/internal/quic_wire.h include/internal/packet_quic.h \
include/internal/packet.h include/internal/quic_vlint.h \
include/internal/quic_record_tx.h include/internal/quic_wire_pkt.h \
include/internal/quic_record_util.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/quic_record_rx.h \
include/internal/quic_demux.h include/internal/bio_addr.h \
include/internal/sockets.h include/internal/list.h \
include/internal/quic_fc.h include/internal/quic_statm.h \
include/internal/quic_channel.h include/internal/thread.h \
include/internal/thread_arch.h include/internal/cryptlib.h \
include/internal/common.h include/internal/nelem.h include/openssl/err.h \
include/crypto/context.h include/internal/statem.h \
test/helpers/ssltestlib.h test/helpers/../testutil.h \
include/openssl/provider.h apps/include/opt.h \
test/helpers/../threadstest.h test/helpers/../testutil.h \
include/internal/quic_ssl.h include/internal/quic_ackm.h \
include/internal/quic_cc.h include/internal/quic_error.h \
include/internal/tsan_assist.h

View File

@@ -0,0 +1,37 @@
test/helpers/quicfaultstest-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,288 @@
/*
* Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#include <openssl/ssl.h>
#include <internal/quic_tserver.h>
/* Type to represent the Fault Injector */
typedef struct qtest_fault QTEST_FAULT;
/*
* Structure representing a parsed EncryptedExtension message. Listeners can
* make changes to the contents of structure objects as required and the fault
* injector will reconstruct the message to be sent on
*/
typedef struct qtest_fault_encrypted_extensions {
/* EncryptedExtension messages just have an extensions block */
unsigned char *extensions;
size_t extensionslen;
} QTEST_ENCRYPTED_EXTENSIONS;
/* Flags for use with qtest_create_quic_objects() */
/* Indicates whether we are using blocking mode or not */
#define QTEST_FLAG_BLOCK (1 << 0)
/* Use fake time rather than real time */
#define QTEST_FLAG_FAKE_TIME (1 << 1)
/* Introduce noise in the BIO */
#define QTEST_FLAG_NOISE (1 << 2)
/* Split datagrams such that each datagram contains one packet */
#define QTEST_FLAG_PACKET_SPLIT (1 << 3)
/* Turn on client side tracing */
#define QTEST_FLAG_CLIENT_TRACE (1 << 4)
/*
* Given an SSL_CTX for the client and filenames for the server certificate and
* keyfile, create a server and client instances as well as a fault injector
* instance. |flags| is the logical or of flags defined above, or 0 if none.
*/
int qtest_create_quic_objects(OSSL_LIB_CTX *libctx, SSL_CTX *clientctx,
SSL_CTX *serverctx, char *certfile, char *keyfile,
int flags, QUIC_TSERVER **qtserv, SSL **cssl,
QTEST_FAULT **fault, BIO **tracebio);
/* Where QTEST_FLAG_FAKE_TIME is used, add millis to the current time */
void qtest_add_time(uint64_t millis);
/* Starts time measurement */
void qtest_start_stopwatch(void);
/* Returns the duration from the start in millis */
uint64_t qtest_get_stopwatch_time(void);
QTEST_FAULT *qtest_create_injector(QUIC_TSERVER *ts);
BIO_METHOD *qtest_get_bio_method(void);
/*
* Free up a Fault Injector instance
*/
void qtest_fault_free(QTEST_FAULT *fault);
/* Returns 1 if the quictestlib supports blocking tests */
int qtest_supports_blocking(void);
/*
* Run the TLS handshake to create a QUIC connection between the client and
* server.
*/
int qtest_create_quic_connection(QUIC_TSERVER *qtserv, SSL *clientssl);
/*
* Check if both client and server have no data to read and are waiting on a
* timeout. If so, wait until the timeout has expired.
*/
int qtest_wait_for_timeout(SSL *s, QUIC_TSERVER *qtserv);
/*
* Same as qtest_create_quic_connection but will stop (successfully) if the
* clientssl indicates SSL_ERROR_WANT_XXX as specified by |wanterr|
*/
int qtest_create_quic_connection_ex(QUIC_TSERVER *qtserv, SSL *clientssl,
int wanterr);
/*
* Shutdown the client SSL object gracefully
*/
int qtest_shutdown(QUIC_TSERVER *qtserv, SSL *clientssl);
/*
* Confirm that the server has received the given transport error code.
*/
int qtest_check_server_transport_err(QUIC_TSERVER *qtserv, uint64_t code);
/*
* Confirm the server has received a protocol error. Equivalent to calling
* qtest_check_server_transport_err with a code of QUIC_ERR_PROTOCOL_VIOLATION
*/
int qtest_check_server_protocol_err(QUIC_TSERVER *qtserv);
/*
* Confirm the server has received a frame encoding error. Equivalent to calling
* qtest_check_server_transport_err with a code of QUIC_ERR_FRAME_ENCODING_ERROR
*/
int qtest_check_server_frame_encoding_err(QUIC_TSERVER *qtserv);
/*
* Enable tests to listen for pre-encryption QUIC packets being sent
*/
typedef int (*qtest_fault_on_packet_plain_cb)(QTEST_FAULT *fault,
QUIC_PKT_HDR *hdr,
unsigned char *buf,
size_t len,
void *cbarg);
int qtest_fault_set_packet_plain_listener(QTEST_FAULT *fault,
qtest_fault_on_packet_plain_cb pplaincb,
void *pplaincbarg);
/*
* Helper function to be called from a packet_plain_listener callback if it
* wants to resize the packet (either to add new data to it, or to truncate it).
* The buf provided to packet_plain_listener is over allocated, so this just
* changes the logical size and never changes the actual address of the buf.
* This will fail if a large resize is attempted that exceeds the over
* allocation.
*/
int qtest_fault_resize_plain_packet(QTEST_FAULT *fault, size_t newlen);
/*
* Prepend frame data into a packet. To be called from a packet_plain_listener
* callback
*/
int qtest_fault_prepend_frame(QTEST_FAULT *fault, const unsigned char *frame,
size_t frame_len);
/*
* The general handshake message listener is sent the entire handshake message
* data block, including the handshake header itself
*/
typedef int (*qtest_fault_on_handshake_cb)(QTEST_FAULT *fault,
unsigned char *msg,
size_t msglen,
void *handshakecbarg);
int qtest_fault_set_handshake_listener(QTEST_FAULT *fault,
qtest_fault_on_handshake_cb handshakecb,
void *handshakecbarg);
/*
* Helper function to be called from a handshake_listener callback if it wants
* to resize the handshake message (either to add new data to it, or to truncate
* it). newlen must include the length of the handshake message header. The
* handshake message buffer is over allocated, so this just changes the logical
* size and never changes the actual address of the buf.
* This will fail if a large resize is attempted that exceeds the over
* allocation.
*/
int qtest_fault_resize_handshake(QTEST_FAULT *fault, size_t newlen);
/*
* Add listeners for specific types of frame here. E.g. we might
* expect to see an "ACK" frame listener which will be passed pre-parsed ack
* data that can be modified as required.
*/
/*
* Handshake message specific listeners. Unlike the general handshake message
* listener these messages are pre-parsed and supplied with message specific
* data and exclude the handshake header
*/
typedef int (*qtest_fault_on_enc_ext_cb)(QTEST_FAULT *fault,
QTEST_ENCRYPTED_EXTENSIONS *ee,
size_t eelen,
void *encextcbarg);
int qtest_fault_set_hand_enc_ext_listener(QTEST_FAULT *fault,
qtest_fault_on_enc_ext_cb encextcb,
void *encextcbarg);
/* Add listeners for other types of handshake message here */
/*
* Helper function to be called from message specific listener callbacks. newlen
* is the new length of the specific message excluding the handshake message
* header. The buffers provided to the message specific listeners are over
* allocated, so this just changes the logical size and never changes the actual
* address of the buffer. This will fail if a large resize is attempted that
* exceeds the over allocation.
*/
int qtest_fault_resize_message(QTEST_FAULT *fault, size_t newlen);
/*
* Helper function to delete an extension from an extension block. |exttype| is
* the type of the extension to be deleted. |ext| points to the extension block.
* On entry |*extlen| contains the length of the extension block. It is updated
* with the new length on exit. If old_ext is non-NULL, the deleted extension
* is appended to the given BUF_MEM.
*/
int qtest_fault_delete_extension(QTEST_FAULT *fault,
unsigned int exttype, unsigned char *ext,
size_t *extlen,
BUF_MEM *old_ext);
/*
* Add additional helper functions for querying extensions here (e.g.
* finding or adding them). We could also provide a "listener" API for listening
* for specific extension types
*/
/*
* Enable tests to listen for post-encryption QUIC packets being sent
*/
typedef int (*qtest_fault_on_packet_cipher_cb)(QTEST_FAULT *fault,
/* The parsed packet header */
QUIC_PKT_HDR *hdr,
/* The packet payload data */
unsigned char *buf,
/* Length of the payload */
size_t len,
void *cbarg);
int qtest_fault_set_packet_cipher_listener(QTEST_FAULT *fault,
qtest_fault_on_packet_cipher_cb pciphercb,
void *picphercbarg);
/*
* Enable tests to listen for datagrams being sent
*/
typedef int (*qtest_fault_on_datagram_cb)(QTEST_FAULT *fault,
BIO_MSG *m,
size_t stride,
void *cbarg);
int qtest_fault_set_datagram_listener(QTEST_FAULT *fault,
qtest_fault_on_datagram_cb datagramcb,
void *datagramcbarg);
/*
* To be called from a datagram_listener callback. The datagram buffer is over
* allocated, so this just changes the logical size and never changes the actual
* address of the buffer. This will fail if a large resize is attempted that
* exceeds the over allocation.
*/
int qtest_fault_resize_datagram(QTEST_FAULT *fault, size_t newlen);
/*
* Set bandwidth and noise rate on noisy dgram filter.
* Arguments with values of 0 mean no limit/no noise.
*/
int qtest_fault_set_bw_limit(QTEST_FAULT *fault,
size_t ctos_bw, size_t stoc_bw,
int noise_rate);
/* Copy a BIO_MSG */
int bio_msg_copy(BIO_MSG *dst, BIO_MSG *src);
#define BIO_CTRL_NOISE_BACK_OFF 1001
#define BIO_CTRL_NOISE_RATE 1002
#define BIO_CTRL_NOISE_RECV_BANDWIDTH 1003
#define BIO_CTRL_NOISE_SEND_BANDWIDTH 1004
#define BIO_CTRL_NOISE_SET_NOW_CB 1005
struct bio_noise_now_cb_st {
OSSL_TIME (*now_cb)(void *);
void *now_cb_arg;
};
/* BIO filter for simulating a noisy UDP socket */
const BIO_METHOD *bio_f_noisy_dgram_filter(void);
/* Free the BIO filter method object */
void bio_f_noisy_dgram_filter_free(void);
/*
* BIO filter for splitting QUIC datagrams containing multiple packets into
* individual datagrams.
*/
const BIO_METHOD *bio_f_pkt_split_dgram_filter(void);
/* Free the BIO filter method object */
void bio_f_pkt_split_dgram_filter_free(void);

View File

@@ -0,0 +1,37 @@
test/helpers/recordlentest-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

View File

@@ -0,0 +1,37 @@
test/helpers/rpktest-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

View File

@@ -0,0 +1,37 @@
test/helpers/servername_test-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

View File

@@ -0,0 +1,37 @@
test/helpers/ssl_handshake_rtt_test-bin-ssltestlib.o: \
test/helpers/ssltestlib.c include/openssl/engine.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/bn.h include/openssl/e_os2.h include/openssl/types.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/crypto.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/openssl/bnerr.h include/openssl/rsa.h \
include/openssl/asn1.h include/openssl/bio.h include/openssl/bioerr.h \
include/openssl/asn1err.h include/openssl/rsaerr.h include/openssl/dsa.h \
include/openssl/dh.h include/openssl/dherr.h include/openssl/dsaerr.h \
include/openssl/ec.h include/openssl/ecerr.h include/openssl/params.h \
include/openssl/rand.h include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

View File

@@ -0,0 +1,16 @@
test/helpers/ssl_old_test-bin-predefined_dhparams.o: \
test/helpers/predefined_dhparams.c include/openssl/evp.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/types.h include/openssl/e_os2.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/core.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/bnerr.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/core_names.h \
include/openssl/param_build.h test/helpers/predefined_dhparams.h

View File

@@ -0,0 +1,61 @@
test/helpers/ssl_test-bin-handshake.o: test/helpers/handshake.c \
include/openssl/bio.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/e_os2.h \
include/openssl/crypto.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/types.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bioerr.h include/openssl/x509_vfy.h \
include/openssl/x509.h include/openssl/buffer.h \
include/openssl/buffererr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/params.h include/openssl/bn.h include/openssl/bnerr.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/asn1.h \
include/openssl/asn1err.h include/openssl/objectserr.h \
include/openssl/ec.h include/openssl/ecerr.h include/openssl/rsa.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/sha.h \
include/openssl/x509err.h include/openssl/pkcs7.h \
include/openssl/pkcs7err.h include/openssl/http.h include/openssl/conf.h \
include/openssl/lhash.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/pem.h include/openssl/pemerr.h \
include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h include/openssl/core_names.h \
test/helpers/../../ssl/ssl_local.h include/internal/e_os.h \
include/internal/numbers.h include/internal/common.h \
include/internal/nelem.h include/openssl/err.h \
include/internal/recordmethod.h include/internal/statem.h \
include/internal/packet.h include/internal/dane.h \
include/internal/refcount.h include/openssl/trace.h \
include/internal/tsan_assist.h include/internal/bio.h \
include/internal/ktls.h include/internal/time.h \
include/internal/safe_math.h include/internal/ssl.h \
include/internal/cryptlib.h test/helpers/../../ssl/record/record.h \
test/helpers/../../ssl/quic/quic_local.h include/internal/quic_ssl.h \
include/internal/quic_record_rx.h include/internal/quic_wire_pkt.h \
include/internal/packet_quic.h include/internal/quic_vlint.h \
include/internal/quic_types.h include/internal/quic_predef.h \
include/internal/quic_record_util.h include/internal/quic_demux.h \
include/internal/bio_addr.h include/internal/sockets.h \
include/internal/list.h include/internal/quic_ackm.h \
include/internal/quic_statm.h include/internal/quic_cc.h \
include/internal/quic_wire.h include/internal/quic_channel.h \
include/internal/quic_record_tx.h include/internal/qlog.h \
include/internal/qlog_events.h include/internal/thread.h \
include/internal/thread_arch.h include/crypto/context.h \
include/internal/quic_txp.h include/internal/quic_cfq.h \
include/internal/quic_txpim.h include/internal/quic_stream.h \
include/internal/quic_fc.h include/internal/quic_stream_map.h \
include/internal/quic_tls.h include/internal/quic_reactor.h \
include/internal/quic_thread_assist.h \
test/helpers/../../ssl/quic/../ssl_local.h test/helpers/handshake.h \
test/helpers/ssl_test_ctx.h test/helpers/../testutil.h \
include/openssl/provider.h apps/include/opt.h

View File

@@ -0,0 +1,34 @@
test/helpers/ssl_test-bin-handshake_srp.o: test/helpers/handshake_srp.c \
include/openssl/srp.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/e_os2.h include/openssl/bn.h \
include/openssl/types.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/ssl.h include/openssl/e_ostime.h \
include/openssl/comp.h include/openssl/comperr.h include/openssl/bio.h \
include/openssl/bioerr.h include/openssl/x509.h include/openssl/buffer.h \
include/openssl/buffererr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/params.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/handshake.h \
test/helpers/ssl_test_ctx.h test/helpers/../testutil.h \
include/internal/common.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
include/openssl/provider.h include/openssl/err.h apps/include/opt.h

View File

@@ -0,0 +1,34 @@
test/helpers/ssl_test-bin-ssl_test_ctx.o: test/helpers/ssl_test_ctx.c \
include/openssl/e_os2.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/crypto.h \
include/openssl/safestack.h include/openssl/stack.h \
include/openssl/types.h include/openssl/cryptoerr.h \
include/openssl/symhacks.h include/openssl/cryptoerr_legacy.h \
include/openssl/core.h include/internal/nelem.h \
test/helpers/ssl_test_ctx.h include/openssl/conf.h include/openssl/bio.h \
include/openssl/bioerr.h include/openssl/lhash.h \
include/openssl/conferr.h include/openssl/conftypes.h \
include/openssl/ssl.h include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/pkcs7.h \
include/openssl/pkcs7err.h include/openssl/http.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/internal/e_os.h \
include/internal/numbers.h include/openssl/provider.h \
include/openssl/err.h apps/include/opt.h

View File

@@ -0,0 +1,922 @@
/*
* Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#include <string.h>
#include <openssl/e_os2.h>
#include <openssl/crypto.h>
#include "internal/nelem.h"
#include "ssl_test_ctx.h"
#include "../testutil.h"
static const int default_app_data_size = 256;
/* Default set to be as small as possible to exercise fragmentation. */
static const int default_max_fragment_size = 512;
static int parse_boolean(const char *value, int *result)
{
if (OPENSSL_strcasecmp(value, "Yes") == 0) {
*result = 1;
return 1;
}
else if (OPENSSL_strcasecmp(value, "No") == 0) {
*result = 0;
return 1;
}
TEST_error("parse_boolean given: '%s'", value);
return 0;
}
#define IMPLEMENT_SSL_TEST_BOOL_OPTION(struct_type, name, field) \
static int parse_##name##_##field(struct_type *ctx, const char *value) \
{ \
return parse_boolean(value, &ctx->field); \
}
#define IMPLEMENT_SSL_TEST_STRING_OPTION(struct_type, name, field) \
static int parse_##name##_##field(struct_type *ctx, const char *value) \
{ \
OPENSSL_free(ctx->field); \
ctx->field = OPENSSL_strdup(value); \
return TEST_ptr(ctx->field); \
}
#define IMPLEMENT_SSL_TEST_INT_OPTION(struct_type, name, field) \
static int parse_##name##_##field(struct_type *ctx, const char *value) \
{ \
ctx->field = atoi(value); \
return 1; \
}
/* True enums and other test configuration values that map to an int. */
typedef struct {
const char *name;
int value;
} test_enum;
__owur static int parse_enum(const test_enum *enums, size_t num_enums,
int *value, const char *name)
{
size_t i;
for (i = 0; i < num_enums; i++) {
if (strcmp(enums[i].name, name) == 0) {
*value = enums[i].value;
return 1;
}
}
return 0;
}
static const char *enum_name(const test_enum *enums, size_t num_enums,
int value)
{
size_t i;
for (i = 0; i < num_enums; i++) {
if (enums[i].value == value) {
return enums[i].name;
}
}
return "InvalidValue";
}
/* ExpectedResult */
static const test_enum ssl_test_results[] = {
{"Success", SSL_TEST_SUCCESS},
{"ServerFail", SSL_TEST_SERVER_FAIL},
{"ClientFail", SSL_TEST_CLIENT_FAIL},
{"InternalError", SSL_TEST_INTERNAL_ERROR},
{"FirstHandshakeFailed", SSL_TEST_FIRST_HANDSHAKE_FAILED},
};
__owur static int parse_expected_result(SSL_TEST_CTX *test_ctx, const char *value)
{
int ret_value;
if (!parse_enum(ssl_test_results, OSSL_NELEM(ssl_test_results),
&ret_value, value)) {
return 0;
}
test_ctx->expected_result = ret_value;
return 1;
}
const char *ssl_test_result_name(ssl_test_result_t result)
{
return enum_name(ssl_test_results, OSSL_NELEM(ssl_test_results), result);
}
/* ExpectedClientAlert / ExpectedServerAlert */
static const test_enum ssl_alerts[] = {
{"UnknownCA", SSL_AD_UNKNOWN_CA},
{"HandshakeFailure", SSL_AD_HANDSHAKE_FAILURE},
{"UnrecognizedName", SSL_AD_UNRECOGNIZED_NAME},
{"NoRenegotiation", SSL_AD_NO_RENEGOTIATION},
{"BadCertificate", SSL_AD_BAD_CERTIFICATE},
{"NoApplicationProtocol", SSL_AD_NO_APPLICATION_PROTOCOL},
{"CertificateRequired", SSL_AD_CERTIFICATE_REQUIRED},
};
__owur static int parse_alert(int *alert, const char *value)
{
return parse_enum(ssl_alerts, OSSL_NELEM(ssl_alerts), alert, value);
}
__owur static int parse_client_alert(SSL_TEST_CTX *test_ctx, const char *value)
{
return parse_alert(&test_ctx->expected_client_alert, value);
}
__owur static int parse_server_alert(SSL_TEST_CTX *test_ctx, const char *value)
{
return parse_alert(&test_ctx->expected_server_alert, value);
}
const char *ssl_alert_name(int alert)
{
return enum_name(ssl_alerts, OSSL_NELEM(ssl_alerts), alert);
}
/* ExpectedProtocol */
static const test_enum ssl_protocols[] = {
{"TLSv1.3", TLS1_3_VERSION},
{"TLSv1.2", TLS1_2_VERSION},
{"TLSv1.1", TLS1_1_VERSION},
{"TLSv1", TLS1_VERSION},
{"SSLv3", SSL3_VERSION},
{"DTLSv1", DTLS1_VERSION},
{"DTLSv1.2", DTLS1_2_VERSION},
};
__owur static int parse_protocol(SSL_TEST_CTX *test_ctx, const char *value)
{
return parse_enum(ssl_protocols, OSSL_NELEM(ssl_protocols),
&test_ctx->expected_protocol, value);
}
const char *ssl_protocol_name(int protocol)
{
return enum_name(ssl_protocols, OSSL_NELEM(ssl_protocols), protocol);
}
/* VerifyCallback */
static const test_enum ssl_verify_callbacks[] = {
{"None", SSL_TEST_VERIFY_NONE},
{"AcceptAll", SSL_TEST_VERIFY_ACCEPT_ALL},
{"RetryOnce", SSL_TEST_VERIFY_RETRY_ONCE},
{"RejectAll", SSL_TEST_VERIFY_REJECT_ALL},
};
__owur static int parse_client_verify_callback(SSL_TEST_CLIENT_CONF *client_conf,
const char *value)
{
int ret_value;
if (!parse_enum(ssl_verify_callbacks, OSSL_NELEM(ssl_verify_callbacks),
&ret_value, value)) {
return 0;
}
client_conf->verify_callback = ret_value;
return 1;
}
const char *ssl_verify_callback_name(ssl_verify_callback_t callback)
{
return enum_name(ssl_verify_callbacks, OSSL_NELEM(ssl_verify_callbacks),
callback);
}
/* ServerName */
static const test_enum ssl_servername[] = {
{"None", SSL_TEST_SERVERNAME_NONE},
{"server1", SSL_TEST_SERVERNAME_SERVER1},
{"server2", SSL_TEST_SERVERNAME_SERVER2},
{"invalid", SSL_TEST_SERVERNAME_INVALID},
};
__owur static int parse_servername(SSL_TEST_CLIENT_CONF *client_conf,
const char *value)
{
int ret_value;
if (!parse_enum(ssl_servername, OSSL_NELEM(ssl_servername),
&ret_value, value)) {
return 0;
}
client_conf->servername = ret_value;
return 1;
}
__owur static int parse_expected_servername(SSL_TEST_CTX *test_ctx,
const char *value)
{
int ret_value;
if (!parse_enum(ssl_servername, OSSL_NELEM(ssl_servername),
&ret_value, value)) {
return 0;
}
test_ctx->expected_servername = ret_value;
return 1;
}
const char *ssl_servername_name(ssl_servername_t server)
{
return enum_name(ssl_servername, OSSL_NELEM(ssl_servername),
server);
}
/* ServerNameCallback */
static const test_enum ssl_servername_callbacks[] = {
{"None", SSL_TEST_SERVERNAME_CB_NONE},
{"IgnoreMismatch", SSL_TEST_SERVERNAME_IGNORE_MISMATCH},
{"RejectMismatch", SSL_TEST_SERVERNAME_REJECT_MISMATCH},
{"ClientHelloIgnoreMismatch",
SSL_TEST_SERVERNAME_CLIENT_HELLO_IGNORE_MISMATCH},
{"ClientHelloRejectMismatch",
SSL_TEST_SERVERNAME_CLIENT_HELLO_REJECT_MISMATCH},
{"ClientHelloNoV12", SSL_TEST_SERVERNAME_CLIENT_HELLO_NO_V12},
};
__owur static int parse_servername_callback(SSL_TEST_SERVER_CONF *server_conf,
const char *value)
{
int ret_value;
if (!parse_enum(ssl_servername_callbacks,
OSSL_NELEM(ssl_servername_callbacks), &ret_value, value)) {
return 0;
}
server_conf->servername_callback = ret_value;
return 1;
}
const char *ssl_servername_callback_name(ssl_servername_callback_t callback)
{
return enum_name(ssl_servername_callbacks,
OSSL_NELEM(ssl_servername_callbacks), callback);
}
/* SessionTicketExpected */
static const test_enum ssl_session_ticket[] = {
{"Ignore", SSL_TEST_SESSION_TICKET_IGNORE},
{"Yes", SSL_TEST_SESSION_TICKET_YES},
{"No", SSL_TEST_SESSION_TICKET_NO},
};
__owur static int parse_session_ticket(SSL_TEST_CTX *test_ctx, const char *value)
{
int ret_value;
if (!parse_enum(ssl_session_ticket, OSSL_NELEM(ssl_session_ticket),
&ret_value, value)) {
return 0;
}
test_ctx->session_ticket_expected = ret_value;
return 1;
}
const char *ssl_session_ticket_name(ssl_session_ticket_t server)
{
return enum_name(ssl_session_ticket,
OSSL_NELEM(ssl_session_ticket),
server);
}
/* CompressionExpected */
IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, compression_expected)
/* SessionIdExpected */
static const test_enum ssl_session_id[] = {
{"Ignore", SSL_TEST_SESSION_ID_IGNORE},
{"Yes", SSL_TEST_SESSION_ID_YES},
{"No", SSL_TEST_SESSION_ID_NO},
};
__owur static int parse_session_id(SSL_TEST_CTX *test_ctx, const char *value)
{
int ret_value;
if (!parse_enum(ssl_session_id, OSSL_NELEM(ssl_session_id),
&ret_value, value)) {
return 0;
}
test_ctx->session_id_expected = ret_value;
return 1;
}
const char *ssl_session_id_name(ssl_session_id_t server)
{
return enum_name(ssl_session_id,
OSSL_NELEM(ssl_session_id),
server);
}
/* Method */
static const test_enum ssl_test_methods[] = {
{"TLS", SSL_TEST_METHOD_TLS},
{"DTLS", SSL_TEST_METHOD_DTLS},
{"QUIC", SSL_TEST_METHOD_QUIC}
};
__owur static int parse_test_method(SSL_TEST_CTX *test_ctx, const char *value)
{
int ret_value;
if (!parse_enum(ssl_test_methods, OSSL_NELEM(ssl_test_methods),
&ret_value, value)) {
return 0;
}
test_ctx->method = ret_value;
return 1;
}
const char *ssl_test_method_name(ssl_test_method_t method)
{
return enum_name(ssl_test_methods, OSSL_NELEM(ssl_test_methods), method);
}
/* NPN and ALPN options */
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CLIENT_CONF, client, npn_protocols)
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_SERVER_CONF, server, npn_protocols)
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CTX, test, expected_npn_protocol)
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CLIENT_CONF, client, alpn_protocols)
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_SERVER_CONF, server, alpn_protocols)
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CTX, test, expected_alpn_protocol)
/* SRP options */
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CLIENT_CONF, client, srp_user)
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_SERVER_CONF, server, srp_user)
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CLIENT_CONF, client, srp_password)
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_SERVER_CONF, server, srp_password)
/* Session Ticket App Data options */
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CTX, test, expected_session_ticket_app_data)
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_SERVER_CONF, server, session_ticket_app_data)
/* Handshake mode */
static const test_enum ssl_handshake_modes[] = {
{"Simple", SSL_TEST_HANDSHAKE_SIMPLE},
{"Resume", SSL_TEST_HANDSHAKE_RESUME},
{"RenegotiateServer", SSL_TEST_HANDSHAKE_RENEG_SERVER},
{"RenegotiateClient", SSL_TEST_HANDSHAKE_RENEG_CLIENT},
{"KeyUpdateServer", SSL_TEST_HANDSHAKE_KEY_UPDATE_SERVER},
{"KeyUpdateClient", SSL_TEST_HANDSHAKE_KEY_UPDATE_CLIENT},
{"PostHandshakeAuth", SSL_TEST_HANDSHAKE_POST_HANDSHAKE_AUTH},
};
__owur static int parse_handshake_mode(SSL_TEST_CTX *test_ctx, const char *value)
{
int ret_value;
if (!parse_enum(ssl_handshake_modes, OSSL_NELEM(ssl_handshake_modes),
&ret_value, value)) {
return 0;
}
test_ctx->handshake_mode = ret_value;
return 1;
}
const char *ssl_handshake_mode_name(ssl_handshake_mode_t mode)
{
return enum_name(ssl_handshake_modes, OSSL_NELEM(ssl_handshake_modes),
mode);
}
/* Renegotiation Ciphersuites */
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CLIENT_CONF, client, reneg_ciphers)
/* KeyUpdateType */
static const test_enum ssl_key_update_types[] = {
{"KeyUpdateRequested", SSL_KEY_UPDATE_REQUESTED},
{"KeyUpdateNotRequested", SSL_KEY_UPDATE_NOT_REQUESTED},
};
__owur static int parse_key_update_type(SSL_TEST_CTX *test_ctx, const char *value)
{
int ret_value;
if (!parse_enum(ssl_key_update_types, OSSL_NELEM(ssl_key_update_types),
&ret_value, value)) {
return 0;
}
test_ctx->key_update_type = ret_value;
return 1;
}
/* CT Validation */
static const test_enum ssl_ct_validation_modes[] = {
{"None", SSL_TEST_CT_VALIDATION_NONE},
{"Permissive", SSL_TEST_CT_VALIDATION_PERMISSIVE},
{"Strict", SSL_TEST_CT_VALIDATION_STRICT},
};
__owur static int parse_ct_validation(SSL_TEST_CLIENT_CONF *client_conf,
const char *value)
{
int ret_value;
if (!parse_enum(ssl_ct_validation_modes, OSSL_NELEM(ssl_ct_validation_modes),
&ret_value, value)) {
return 0;
}
client_conf->ct_validation = ret_value;
return 1;
}
const char *ssl_ct_validation_name(ssl_ct_validation_t mode)
{
return enum_name(ssl_ct_validation_modes, OSSL_NELEM(ssl_ct_validation_modes),
mode);
}
IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, resumption_expected)
IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_SERVER_CONF, server, broken_session_ticket)
IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, use_sctp)
IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, compress_certificates)
IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, enable_client_sctp_label_bug)
IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CTX, test, enable_server_sctp_label_bug)
/* CertStatus */
static const test_enum ssl_certstatus[] = {
{"None", SSL_TEST_CERT_STATUS_NONE},
{"GoodResponse", SSL_TEST_CERT_STATUS_GOOD_RESPONSE},
{"BadResponse", SSL_TEST_CERT_STATUS_BAD_RESPONSE}
};
__owur static int parse_certstatus(SSL_TEST_SERVER_CONF *server_conf,
const char *value)
{
int ret_value;
if (!parse_enum(ssl_certstatus, OSSL_NELEM(ssl_certstatus), &ret_value,
value)) {
return 0;
}
server_conf->cert_status = ret_value;
return 1;
}
const char *ssl_certstatus_name(ssl_cert_status_t cert_status)
{
return enum_name(ssl_certstatus,
OSSL_NELEM(ssl_certstatus), cert_status);
}
/* ApplicationData */
IMPLEMENT_SSL_TEST_INT_OPTION(SSL_TEST_CTX, test, app_data_size)
/* MaxFragmentSize */
IMPLEMENT_SSL_TEST_INT_OPTION(SSL_TEST_CTX, test, max_fragment_size)
/* Maximum-Fragment-Length TLS extension mode */
static const test_enum ssl_max_fragment_len_mode[] = {
{"None", TLSEXT_max_fragment_length_DISABLED},
{ "512", TLSEXT_max_fragment_length_512},
{"1024", TLSEXT_max_fragment_length_1024},
{"2048", TLSEXT_max_fragment_length_2048},
{"4096", TLSEXT_max_fragment_length_4096}
};
__owur static int parse_max_fragment_len_mode(SSL_TEST_CLIENT_CONF *client_conf,
const char *value)
{
int ret_value;
if (!parse_enum(ssl_max_fragment_len_mode,
OSSL_NELEM(ssl_max_fragment_len_mode), &ret_value, value)) {
return 0;
}
client_conf->max_fragment_len_mode = ret_value;
return 1;
}
const char *ssl_max_fragment_len_name(int MFL_mode)
{
return enum_name(ssl_max_fragment_len_mode,
OSSL_NELEM(ssl_max_fragment_len_mode), MFL_mode);
}
/* Expected key and signature types */
__owur static int parse_expected_key_type(int *ptype, const char *value)
{
int nid;
const EVP_PKEY_ASN1_METHOD *ameth;
if (value == NULL)
return 0;
ameth = EVP_PKEY_asn1_find_str(NULL, value, -1);
if (ameth != NULL)
EVP_PKEY_asn1_get0_info(&nid, NULL, NULL, NULL, NULL, ameth);
else
nid = OBJ_sn2nid(value);
if (nid == NID_undef)
nid = OBJ_ln2nid(value);
#ifndef OPENSSL_NO_EC
if (nid == NID_undef)
nid = EC_curve_nist2nid(value);
#endif
switch (nid) {
case NID_brainpoolP256r1tls13:
nid = NID_brainpoolP256r1;
break;
case NID_brainpoolP384r1tls13:
nid = NID_brainpoolP384r1;
break;
case NID_brainpoolP512r1tls13:
nid = NID_brainpoolP512r1;
break;
}
if (nid == NID_undef)
return 0;
*ptype = nid;
return 1;
}
__owur static int parse_expected_tmp_key_type(SSL_TEST_CTX *test_ctx,
const char *value)
{
return parse_expected_key_type(&test_ctx->expected_tmp_key_type, value);
}
__owur static int parse_expected_server_cert_type(SSL_TEST_CTX *test_ctx,
const char *value)
{
return parse_expected_key_type(&test_ctx->expected_server_cert_type,
value);
}
__owur static int parse_expected_server_sign_type(SSL_TEST_CTX *test_ctx,
const char *value)
{
return parse_expected_key_type(&test_ctx->expected_server_sign_type,
value);
}
__owur static int parse_expected_client_cert_type(SSL_TEST_CTX *test_ctx,
const char *value)
{
return parse_expected_key_type(&test_ctx->expected_client_cert_type,
value);
}
__owur static int parse_expected_client_sign_type(SSL_TEST_CTX *test_ctx,
const char *value)
{
return parse_expected_key_type(&test_ctx->expected_client_sign_type,
value);
}
/* Expected signing hash */
__owur static int parse_expected_sign_hash(int *ptype, const char *value)
{
int nid;
if (value == NULL)
return 0;
nid = OBJ_sn2nid(value);
if (nid == NID_undef)
nid = OBJ_ln2nid(value);
if (nid == NID_undef)
return 0;
*ptype = nid;
return 1;
}
__owur static int parse_expected_server_sign_hash(SSL_TEST_CTX *test_ctx,
const char *value)
{
return parse_expected_sign_hash(&test_ctx->expected_server_sign_hash,
value);
}
__owur static int parse_expected_client_sign_hash(SSL_TEST_CTX *test_ctx,
const char *value)
{
return parse_expected_sign_hash(&test_ctx->expected_client_sign_hash,
value);
}
__owur static int parse_expected_ca_names(STACK_OF(X509_NAME) **pnames,
const char *value,
OSSL_LIB_CTX *libctx)
{
if (value == NULL)
return 0;
if (!strcmp(value, "empty"))
*pnames = sk_X509_NAME_new_null();
else
*pnames = SSL_load_client_CA_file_ex(value, libctx, NULL);
return *pnames != NULL;
}
__owur static int parse_expected_server_ca_names(SSL_TEST_CTX *test_ctx,
const char *value)
{
return parse_expected_ca_names(&test_ctx->expected_server_ca_names, value,
test_ctx->libctx);
}
__owur static int parse_expected_client_ca_names(SSL_TEST_CTX *test_ctx,
const char *value)
{
return parse_expected_ca_names(&test_ctx->expected_client_ca_names, value,
test_ctx->libctx);
}
/* ExpectedCipher */
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CTX, test, expected_cipher)
/* Client and Server PHA */
IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CLIENT_CONF, client, enable_pha)
IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_SERVER_CONF, server, force_pha)
IMPLEMENT_SSL_TEST_BOOL_OPTION(SSL_TEST_CLIENT_CONF, client, no_extms_on_reneg)
/* FIPS provider version limiting */
IMPLEMENT_SSL_TEST_STRING_OPTION(SSL_TEST_CTX, test, fips_version)
/* Known test options and their corresponding parse methods. */
/* Top-level options. */
typedef struct {
const char *name;
int (*parse)(SSL_TEST_CTX *test_ctx, const char *value);
} ssl_test_ctx_option;
static const ssl_test_ctx_option ssl_test_ctx_options[] = {
{ "ExpectedResult", &parse_expected_result },
{ "ExpectedClientAlert", &parse_client_alert },
{ "ExpectedServerAlert", &parse_server_alert },
{ "ExpectedProtocol", &parse_protocol },
{ "ExpectedServerName", &parse_expected_servername },
{ "SessionTicketExpected", &parse_session_ticket },
{ "CompressionExpected", &parse_test_compression_expected },
{ "SessionIdExpected", &parse_session_id },
{ "Method", &parse_test_method },
{ "ExpectedNPNProtocol", &parse_test_expected_npn_protocol },
{ "ExpectedALPNProtocol", &parse_test_expected_alpn_protocol },
{ "HandshakeMode", &parse_handshake_mode },
{ "KeyUpdateType", &parse_key_update_type },
{ "ResumptionExpected", &parse_test_resumption_expected },
{ "ApplicationData", &parse_test_app_data_size },
{ "MaxFragmentSize", &parse_test_max_fragment_size },
{ "ExpectedTmpKeyType", &parse_expected_tmp_key_type },
{ "ExpectedServerCertType", &parse_expected_server_cert_type },
{ "ExpectedServerSignHash", &parse_expected_server_sign_hash },
{ "ExpectedServerSignType", &parse_expected_server_sign_type },
{ "ExpectedServerCANames", &parse_expected_server_ca_names },
{ "ExpectedClientCertType", &parse_expected_client_cert_type },
{ "ExpectedClientSignHash", &parse_expected_client_sign_hash },
{ "ExpectedClientSignType", &parse_expected_client_sign_type },
{ "ExpectedClientCANames", &parse_expected_client_ca_names },
{ "UseSCTP", &parse_test_use_sctp },
{ "CompressCertificates", &parse_test_compress_certificates },
{ "EnableClientSCTPLabelBug", &parse_test_enable_client_sctp_label_bug },
{ "EnableServerSCTPLabelBug", &parse_test_enable_server_sctp_label_bug },
{ "ExpectedCipher", &parse_test_expected_cipher },
{ "ExpectedSessionTicketAppData", &parse_test_expected_session_ticket_app_data },
{ "FIPSversion", &parse_test_fips_version },
};
/* Nested client options. */
typedef struct {
const char *name;
int (*parse)(SSL_TEST_CLIENT_CONF *conf, const char *value);
} ssl_test_client_option;
static const ssl_test_client_option ssl_test_client_options[] = {
{ "VerifyCallback", &parse_client_verify_callback },
{ "ServerName", &parse_servername },
{ "NPNProtocols", &parse_client_npn_protocols },
{ "ALPNProtocols", &parse_client_alpn_protocols },
{ "CTValidation", &parse_ct_validation },
{ "RenegotiateCiphers", &parse_client_reneg_ciphers},
{ "SRPUser", &parse_client_srp_user },
{ "SRPPassword", &parse_client_srp_password },
{ "MaxFragmentLenExt", &parse_max_fragment_len_mode },
{ "EnablePHA", &parse_client_enable_pha },
{ "RenegotiateNoExtms", &parse_client_no_extms_on_reneg },
};
/* Nested server options. */
typedef struct {
const char *name;
int (*parse)(SSL_TEST_SERVER_CONF *conf, const char *value);
} ssl_test_server_option;
static const ssl_test_server_option ssl_test_server_options[] = {
{ "ServerNameCallback", &parse_servername_callback },
{ "NPNProtocols", &parse_server_npn_protocols },
{ "ALPNProtocols", &parse_server_alpn_protocols },
{ "BrokenSessionTicket", &parse_server_broken_session_ticket },
{ "CertStatus", &parse_certstatus },
{ "SRPUser", &parse_server_srp_user },
{ "SRPPassword", &parse_server_srp_password },
{ "ForcePHA", &parse_server_force_pha },
{ "SessionTicketAppData", &parse_server_session_ticket_app_data },
};
SSL_TEST_CTX *SSL_TEST_CTX_new(OSSL_LIB_CTX *libctx)
{
SSL_TEST_CTX *ret;
/* The return code is checked by caller */
if ((ret = OPENSSL_zalloc(sizeof(*ret))) != NULL) {
ret->libctx = libctx;
ret->app_data_size = default_app_data_size;
ret->max_fragment_size = default_max_fragment_size;
}
return ret;
}
static void ssl_test_extra_conf_free_data(SSL_TEST_EXTRA_CONF *conf)
{
OPENSSL_free(conf->client.npn_protocols);
OPENSSL_free(conf->server.npn_protocols);
OPENSSL_free(conf->server2.npn_protocols);
OPENSSL_free(conf->client.alpn_protocols);
OPENSSL_free(conf->server.alpn_protocols);
OPENSSL_free(conf->server2.alpn_protocols);
OPENSSL_free(conf->client.reneg_ciphers);
OPENSSL_free(conf->server.srp_user);
OPENSSL_free(conf->server.srp_password);
OPENSSL_free(conf->server2.srp_user);
OPENSSL_free(conf->server2.srp_password);
OPENSSL_free(conf->client.srp_user);
OPENSSL_free(conf->client.srp_password);
OPENSSL_free(conf->server.session_ticket_app_data);
OPENSSL_free(conf->server2.session_ticket_app_data);
}
static void ssl_test_ctx_free_extra_data(SSL_TEST_CTX *ctx)
{
ssl_test_extra_conf_free_data(&ctx->extra);
ssl_test_extra_conf_free_data(&ctx->resume_extra);
}
void SSL_TEST_CTX_free(SSL_TEST_CTX *ctx)
{
if (ctx == NULL)
return;
ssl_test_ctx_free_extra_data(ctx);
OPENSSL_free(ctx->expected_npn_protocol);
OPENSSL_free(ctx->expected_alpn_protocol);
OPENSSL_free(ctx->expected_session_ticket_app_data);
sk_X509_NAME_pop_free(ctx->expected_server_ca_names, X509_NAME_free);
sk_X509_NAME_pop_free(ctx->expected_client_ca_names, X509_NAME_free);
OPENSSL_free(ctx->expected_cipher);
OPENSSL_free(ctx->fips_version);
OPENSSL_free(ctx);
}
static int parse_client_options(SSL_TEST_CLIENT_CONF *client, const CONF *conf,
const char *client_section)
{
STACK_OF(CONF_VALUE) *sk_conf;
int i;
size_t j;
if (!TEST_ptr(sk_conf = NCONF_get_section(conf, client_section)))
return 0;
for (i = 0; i < sk_CONF_VALUE_num(sk_conf); i++) {
int found = 0;
const CONF_VALUE *option = sk_CONF_VALUE_value(sk_conf, i);
for (j = 0; j < OSSL_NELEM(ssl_test_client_options); j++) {
if (strcmp(option->name, ssl_test_client_options[j].name) == 0) {
if (!ssl_test_client_options[j].parse(client, option->value)) {
TEST_info("Bad value %s for option %s",
option->value, option->name);
return 0;
}
found = 1;
break;
}
}
if (!found) {
TEST_info("Unknown test option: %s", option->name);
return 0;
}
}
return 1;
}
static int parse_server_options(SSL_TEST_SERVER_CONF *server, const CONF *conf,
const char *server_section)
{
STACK_OF(CONF_VALUE) *sk_conf;
int i;
size_t j;
if (!TEST_ptr(sk_conf = NCONF_get_section(conf, server_section)))
return 0;
for (i = 0; i < sk_CONF_VALUE_num(sk_conf); i++) {
int found = 0;
const CONF_VALUE *option = sk_CONF_VALUE_value(sk_conf, i);
for (j = 0; j < OSSL_NELEM(ssl_test_server_options); j++) {
if (strcmp(option->name, ssl_test_server_options[j].name) == 0) {
if (!ssl_test_server_options[j].parse(server, option->value)) {
TEST_info("Bad value %s for option %s",
option->value, option->name);
return 0;
}
found = 1;
break;
}
}
if (!found) {
TEST_info("Unknown test option: %s", option->name);
return 0;
}
}
return 1;
}
SSL_TEST_CTX *SSL_TEST_CTX_create(const CONF *conf, const char *test_section,
OSSL_LIB_CTX *libctx)
{
STACK_OF(CONF_VALUE) *sk_conf = NULL;
SSL_TEST_CTX *ctx = NULL;
int i;
size_t j;
if (!TEST_ptr(sk_conf = NCONF_get_section(conf, test_section))
|| !TEST_ptr(ctx = SSL_TEST_CTX_new(libctx)))
goto err;
for (i = 0; i < sk_CONF_VALUE_num(sk_conf); i++) {
int found = 0;
const CONF_VALUE *option = sk_CONF_VALUE_value(sk_conf, i);
/* Subsections */
if (strcmp(option->name, "client") == 0) {
if (!parse_client_options(&ctx->extra.client, conf, option->value))
goto err;
} else if (strcmp(option->name, "server") == 0) {
if (!parse_server_options(&ctx->extra.server, conf, option->value))
goto err;
} else if (strcmp(option->name, "server2") == 0) {
if (!parse_server_options(&ctx->extra.server2, conf, option->value))
goto err;
} else if (strcmp(option->name, "resume-client") == 0) {
if (!parse_client_options(&ctx->resume_extra.client, conf,
option->value))
goto err;
} else if (strcmp(option->name, "resume-server") == 0) {
if (!parse_server_options(&ctx->resume_extra.server, conf,
option->value))
goto err;
} else if (strcmp(option->name, "resume-server2") == 0) {
if (!parse_server_options(&ctx->resume_extra.server2, conf,
option->value))
goto err;
} else {
for (j = 0; j < OSSL_NELEM(ssl_test_ctx_options); j++) {
if (strcmp(option->name, ssl_test_ctx_options[j].name) == 0) {
if (!ssl_test_ctx_options[j].parse(ctx, option->value)) {
TEST_info("Bad value %s for option %s",
option->value, option->name);
goto err;
}
found = 1;
break;
}
}
if (!found) {
TEST_info("Unknown test option: %s", option->name);
goto err;
}
}
}
goto done;
err:
SSL_TEST_CTX_free(ctx);
ctx = NULL;
done:
return ctx;
}

View File

@@ -0,0 +1,265 @@
/*
* Copyright 2016-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#ifndef OSSL_TEST_SSL_TEST_CTX_H
#define OSSL_TEST_SSL_TEST_CTX_H
#include <openssl/conf.h>
#include <openssl/ssl.h>
typedef enum {
SSL_TEST_SUCCESS = 0, /* Default */
SSL_TEST_SERVER_FAIL,
SSL_TEST_CLIENT_FAIL,
SSL_TEST_INTERNAL_ERROR,
/* Couldn't test resumption/renegotiation: original handshake failed. */
SSL_TEST_FIRST_HANDSHAKE_FAILED
} ssl_test_result_t;
typedef enum {
SSL_TEST_VERIFY_NONE = 0, /* Default */
SSL_TEST_VERIFY_ACCEPT_ALL,
SSL_TEST_VERIFY_RETRY_ONCE,
SSL_TEST_VERIFY_REJECT_ALL
} ssl_verify_callback_t;
typedef enum {
SSL_TEST_SERVERNAME_NONE = 0, /* Default */
SSL_TEST_SERVERNAME_SERVER1,
SSL_TEST_SERVERNAME_SERVER2,
SSL_TEST_SERVERNAME_INVALID
} ssl_servername_t;
typedef enum {
SSL_TEST_SERVERNAME_CB_NONE = 0, /* Default */
SSL_TEST_SERVERNAME_IGNORE_MISMATCH,
SSL_TEST_SERVERNAME_REJECT_MISMATCH,
SSL_TEST_SERVERNAME_CLIENT_HELLO_IGNORE_MISMATCH,
SSL_TEST_SERVERNAME_CLIENT_HELLO_REJECT_MISMATCH,
SSL_TEST_SERVERNAME_CLIENT_HELLO_NO_V12
} ssl_servername_callback_t;
typedef enum {
SSL_TEST_SESSION_TICKET_IGNORE = 0, /* Default */
SSL_TEST_SESSION_TICKET_YES,
SSL_TEST_SESSION_TICKET_NO,
SSL_TEST_SESSION_TICKET_BROKEN /* Special test */
} ssl_session_ticket_t;
typedef enum {
SSL_TEST_COMPRESSION_NO = 0, /* Default */
SSL_TEST_COMPRESSION_YES
} ssl_compression_t;
typedef enum {
SSL_TEST_SESSION_ID_IGNORE = 0, /* Default */
SSL_TEST_SESSION_ID_YES,
SSL_TEST_SESSION_ID_NO
} ssl_session_id_t;
typedef enum {
SSL_TEST_METHOD_TLS = 0, /* Default */
SSL_TEST_METHOD_DTLS,
SSL_TEST_METHOD_QUIC
} ssl_test_method_t;
typedef enum {
SSL_TEST_HANDSHAKE_SIMPLE = 0, /* Default */
SSL_TEST_HANDSHAKE_RESUME,
SSL_TEST_HANDSHAKE_RENEG_SERVER,
SSL_TEST_HANDSHAKE_RENEG_CLIENT,
SSL_TEST_HANDSHAKE_KEY_UPDATE_SERVER,
SSL_TEST_HANDSHAKE_KEY_UPDATE_CLIENT,
SSL_TEST_HANDSHAKE_POST_HANDSHAKE_AUTH
} ssl_handshake_mode_t;
typedef enum {
SSL_TEST_CT_VALIDATION_NONE = 0, /* Default */
SSL_TEST_CT_VALIDATION_PERMISSIVE,
SSL_TEST_CT_VALIDATION_STRICT
} ssl_ct_validation_t;
typedef enum {
SSL_TEST_CERT_STATUS_NONE = 0, /* Default */
SSL_TEST_CERT_STATUS_GOOD_RESPONSE,
SSL_TEST_CERT_STATUS_BAD_RESPONSE
} ssl_cert_status_t;
/*
* Server/client settings that aren't supported by the SSL CONF library,
* such as callbacks.
*/
typedef struct {
/* One of a number of predefined custom callbacks. */
ssl_verify_callback_t verify_callback;
/* One of a number of predefined server names use by the client */
ssl_servername_t servername;
/* Maximum Fragment Length extension mode */
int max_fragment_len_mode;
/* Supported NPN and ALPN protocols. A comma-separated list. */
char *npn_protocols;
char *alpn_protocols;
ssl_ct_validation_t ct_validation;
/* Ciphersuites to set on a renegotiation */
char *reneg_ciphers;
char *srp_user;
char *srp_password;
/* PHA enabled */
int enable_pha;
/* Do not send extms on renegotiation */
int no_extms_on_reneg;
} SSL_TEST_CLIENT_CONF;
typedef struct {
/* SNI callback (server-side). */
ssl_servername_callback_t servername_callback;
/* Supported NPN and ALPN protocols. A comma-separated list. */
char *npn_protocols;
char *alpn_protocols;
/* Whether to set a broken session ticket callback. */
int broken_session_ticket;
/* Should we send a CertStatus message? */
ssl_cert_status_t cert_status;
/* An SRP user known to the server. */
char *srp_user;
char *srp_password;
/* Forced PHA */
int force_pha;
char *session_ticket_app_data;
} SSL_TEST_SERVER_CONF;
typedef struct {
SSL_TEST_CLIENT_CONF client;
SSL_TEST_SERVER_CONF server;
SSL_TEST_SERVER_CONF server2;
} SSL_TEST_EXTRA_CONF;
typedef struct {
/*
* Global test configuration. Does not change between handshakes.
*/
/* Whether the server/client CTX should use DTLS or TLS. */
ssl_test_method_t method;
/* Whether to test a resumed/renegotiated handshake. */
ssl_handshake_mode_t handshake_mode;
/*
* How much application data to exchange (default is 256 bytes).
* Both peers will send |app_data_size| bytes interleaved.
*/
int app_data_size;
/* Maximum send fragment size. */
int max_fragment_size;
/* KeyUpdate type */
int key_update_type;
/*
* Extra server/client configurations. Per-handshake.
*/
/* First handshake. */
SSL_TEST_EXTRA_CONF extra;
/* Resumed handshake. */
SSL_TEST_EXTRA_CONF resume_extra;
/*
* Test expectations. These apply to the LAST handshake.
*/
/* Defaults to SUCCESS. */
ssl_test_result_t expected_result;
/* Alerts. 0 if no expectation. */
/* See ssl.h for alert codes. */
/* Alert sent by the client / received by the server. */
int expected_client_alert;
/* Alert sent by the server / received by the client. */
int expected_server_alert;
/* Negotiated protocol version. 0 if no expectation. */
/* See ssl.h for protocol versions. */
int expected_protocol;
/*
* The expected SNI context to use.
* We test server-side that the server switched to the expected context.
* Set by the callback upon success, so if the callback wasn't called or
* terminated with an alert, the servername will match with
* SSL_TEST_SERVERNAME_NONE.
* Note: in the event that the servername was accepted, the client should
* also receive an empty SNI extension back but we have no way of probing
* client-side via the API that this was the case.
*/
ssl_servername_t expected_servername;
ssl_session_ticket_t session_ticket_expected;
int compression_expected;
/* The expected NPN/ALPN protocol to negotiate. */
char *expected_npn_protocol;
char *expected_alpn_protocol;
/* Whether the second handshake is resumed or a full handshake (boolean). */
int resumption_expected;
/* Expected temporary key type */
int expected_tmp_key_type;
/* Expected server certificate key type */
int expected_server_cert_type;
/* Expected server signing hash */
int expected_server_sign_hash;
/* Expected server signature type */
int expected_server_sign_type;
/* Expected server CA names */
STACK_OF(X509_NAME) *expected_server_ca_names;
/* Expected client certificate key type */
int expected_client_cert_type;
/* Expected client signing hash */
int expected_client_sign_hash;
/* Expected client signature type */
int expected_client_sign_type;
/* Expected CA names for client auth */
STACK_OF(X509_NAME) *expected_client_ca_names;
/* Whether to use SCTP for the transport */
int use_sctp;
/* Whether to pre-compress server certificates */
int compress_certificates;
/* Enable SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG on client side */
int enable_client_sctp_label_bug;
/* Enable SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG on server side */
int enable_server_sctp_label_bug;
/* Whether to expect a session id from the server */
ssl_session_id_t session_id_expected;
char *expected_cipher;
/* Expected Session Ticket Application Data */
char *expected_session_ticket_app_data;
OSSL_LIB_CTX *libctx;
/* FIPS version string to check for compatibility */
char *fips_version;
} SSL_TEST_CTX;
const char *ssl_test_result_name(ssl_test_result_t result);
const char *ssl_alert_name(int alert);
const char *ssl_protocol_name(int protocol);
const char *ssl_verify_callback_name(ssl_verify_callback_t verify_callback);
const char *ssl_servername_name(ssl_servername_t server);
const char *ssl_servername_callback_name(ssl_servername_callback_t
servername_callback);
const char *ssl_session_ticket_name(ssl_session_ticket_t server);
const char *ssl_session_id_name(ssl_session_id_t server);
const char *ssl_test_method_name(ssl_test_method_t method);
const char *ssl_handshake_mode_name(ssl_handshake_mode_t mode);
const char *ssl_ct_validation_name(ssl_ct_validation_t mode);
const char *ssl_certstatus_name(ssl_cert_status_t cert_status);
const char *ssl_max_fragment_len_name(int MFL_mode);
/*
* Load the test case context from |conf|.
* See test/README.ssltest.md for details on the conf file format.
*/
SSL_TEST_CTX *SSL_TEST_CTX_create(const CONF *conf, const char *test_section,
OSSL_LIB_CTX *libctx);
SSL_TEST_CTX *SSL_TEST_CTX_new(OSSL_LIB_CTX *libctx);
void SSL_TEST_CTX_free(SSL_TEST_CTX *ctx);
#endif /* OSSL_TEST_SSL_TEST_CTX_H */

View File

@@ -0,0 +1,35 @@
test/helpers/ssl_test_ctx_test-bin-ssl_test_ctx.o: \
test/helpers/ssl_test_ctx.c include/openssl/e_os2.h \
include/openssl/macros.h include/openssl/opensslconf.h \
include/openssl/configuration.h include/openssl/opensslv.h \
include/openssl/crypto.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/types.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/internal/nelem.h test/helpers/ssl_test_ctx.h \
include/openssl/conf.h include/openssl/bio.h include/openssl/bioerr.h \
include/openssl/lhash.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/evp.h include/openssl/core_dispatch.h \
include/openssl/indicator.h include/openssl/params.h \
include/openssl/bn.h include/openssl/bnerr.h include/openssl/evperr.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/asn1err.h \
include/openssl/objectserr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/rsa.h include/openssl/rsaerr.h \
include/openssl/dsa.h include/openssl/dh.h include/openssl/dherr.h \
include/openssl/dsaerr.h include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/pkcs7.h \
include/openssl/pkcs7err.h include/openssl/http.h include/openssl/pem.h \
include/openssl/pemerr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/internal/e_os.h \
include/internal/numbers.h include/openssl/provider.h \
include/openssl/err.h apps/include/opt.h

View File

@@ -0,0 +1,37 @@
test/helpers/sslapitest-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

View File

@@ -0,0 +1,37 @@
test/helpers/sslbuffertest-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

View File

@@ -0,0 +1,37 @@
test/helpers/sslcorrupttest-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,89 @@
/*
* Copyright 2016-2025 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
*/
#ifndef OSSL_TEST_SSLTESTLIB_H
# define OSSL_TEST_SSLTESTLIB_H
# include <openssl/ssl.h>
#define TLS13_AES_128_GCM_SHA256_BYTES ((const unsigned char *)"\x13\x01")
#define TLS13_AES_256_GCM_SHA384_BYTES ((const unsigned char *)"\x13\x02")
#define TLS13_CHACHA20_POLY1305_SHA256_BYTES ((const unsigned char *)"\x13\x03")
#define TLS13_AES_128_CCM_SHA256_BYTES ((const unsigned char *)"\x13\x04")
#define TLS13_AES_128_CCM_8_SHA256_BYTES ((const unsigned char *)"\x13\05")
#define TLS13_SHA256_SHA256_BYTES ((const unsigned char *)"\xC0\xB4")
#define TLS13_SHA384_SHA384_BYTES ((const unsigned char *)"\xC0\xB5")
int create_ssl_ctx_pair(OSSL_LIB_CTX *libctx, const SSL_METHOD *sm,
const SSL_METHOD *cm, int min_proto_version,
int max_proto_version, SSL_CTX **sctx, SSL_CTX **cctx,
char *certfile, char *privkeyfile);
int create_ssl_objects(SSL_CTX *serverctx, SSL_CTX *clientctx, SSL **sssl,
SSL **cssl, BIO *s_to_c_fbio, BIO *c_to_s_fbio);
int create_bare_ssl_connection(SSL *serverssl, SSL *clientssl, int want,
int read, int listen);
int create_ssl_objects2(SSL_CTX *serverctx, SSL_CTX *clientctx, SSL **sssl,
SSL **cssl, int sfd, int cfd);
int wait_until_sock_readable(int sock);
int create_test_sockets(int *cfdp, int *sfdp, int socktype, BIO_ADDR *saddr);
int create_ssl_connection(SSL *serverssl, SSL *clientssl, int want);
void shutdown_ssl_connection(SSL *serverssl, SSL *clientssl);
/* Note: Not thread safe! */
const BIO_METHOD *bio_f_tls_dump_filter(void);
void bio_f_tls_dump_filter_free(void);
const BIO_METHOD *bio_s_mempacket_test(void);
void bio_s_mempacket_test_free(void);
const BIO_METHOD *bio_s_always_retry(void);
void bio_s_always_retry_free(void);
void set_always_retry_err_val(int err);
/*
* Maybe retry BIO ctrls. We make them large enough to not clash with standard
* BIO ctrl codes.
*/
#define MAYBE_RETRY_CTRL_SET_RETRY_AFTER_CNT (1 << 15)
const BIO_METHOD *bio_s_maybe_retry(void);
void bio_s_maybe_retry_free(void);
/* Packet types - value 0 is reserved */
#define INJECT_PACKET 1
#define INJECT_PACKET_IGNORE_REC_SEQ 2
/*
* Mempacket BIO ctrls. We make them large enough to not clash with standard BIO
* ctrl codes.
*/
#define MEMPACKET_CTRL_SET_DROP_EPOCH (1 << 15)
#define MEMPACKET_CTRL_SET_DROP_REC (2 << 15)
#define MEMPACKET_CTRL_GET_DROP_REC (3 << 15)
#define MEMPACKET_CTRL_SET_DUPLICATE_REC (4 << 15)
int mempacket_swap_epoch(BIO *bio);
int mempacket_move_packet(BIO *bio, int d, int s);
int mempacket_dup_last_packet(BIO *bio);
int mempacket_test_inject(BIO *bio, const char *in, int inl, int pktnum,
int type);
typedef struct mempacket_st MEMPACKET;
DEFINE_STACK_OF(MEMPACKET)
SSL_SESSION *create_a_psk(SSL *ssl, size_t mdsize);
/* Add cert from `cert_file` multiple times to create large extra cert chain */
int ssl_ctx_add_large_cert_chain(OSSL_LIB_CTX *libctx, SSL_CTX *sctx,
const char *cert_file);
ENGINE *load_dasync(void);
#endif /* OSSL_TEST_SSLTESTLIB_H */

View File

@@ -0,0 +1,37 @@
test/helpers/tls13ccstest-bin-ssltestlib.o: test/helpers/ssltestlib.c \
include/openssl/engine.h include/openssl/macros.h \
include/openssl/opensslconf.h include/openssl/configuration.h \
include/openssl/opensslv.h include/openssl/bn.h include/openssl/e_os2.h \
include/openssl/types.h include/openssl/safestack.h \
include/openssl/stack.h include/openssl/crypto.h \
include/openssl/cryptoerr.h include/openssl/symhacks.h \
include/openssl/cryptoerr_legacy.h include/openssl/core.h \
include/openssl/bnerr.h include/openssl/rsa.h include/openssl/asn1.h \
include/openssl/bio.h include/openssl/bioerr.h include/openssl/asn1err.h \
include/openssl/rsaerr.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/dherr.h include/openssl/dsaerr.h include/openssl/ec.h \
include/openssl/ecerr.h include/openssl/params.h include/openssl/rand.h \
include/openssl/randerr.h include/openssl/evp.h \
include/openssl/core_dispatch.h include/openssl/indicator.h \
include/openssl/evperr.h include/openssl/objects.h \
include/openssl/obj_mac.h include/openssl/objectserr.h \
include/openssl/ui.h include/openssl/pem.h include/openssl/x509.h \
include/openssl/buffer.h include/openssl/buffererr.h \
include/openssl/sha.h include/openssl/x509err.h \
include/openssl/x509_vfy.h include/openssl/lhash.h \
include/openssl/pkcs7.h include/openssl/pkcs7err.h \
include/openssl/http.h include/openssl/conf.h include/openssl/conferr.h \
include/openssl/conftypes.h include/openssl/pemerr.h \
include/openssl/uierr.h include/openssl/err.h \
include/openssl/engineerr.h include/internal/e_os.h \
include/internal/numbers.h include/internal/nelem.h \
test/helpers/ssltestlib.h include/openssl/ssl.h \
include/openssl/e_ostime.h include/openssl/comp.h \
include/openssl/comperr.h include/openssl/hmac.h include/openssl/async.h \
include/openssl/asyncerr.h include/openssl/ct.h include/openssl/cterr.h \
include/openssl/sslerr.h include/openssl/sslerr_legacy.h \
include/openssl/prov_ssl.h include/openssl/ssl2.h include/openssl/ssl3.h \
include/openssl/tls1.h include/openssl/dtls1.h include/openssl/srtp.h \
include/openssl/quic.h test/helpers/../testutil.h \
include/internal/common.h include/openssl/provider.h apps/include/opt.h \
include/internal/sockets.h