/*
- * Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved.
* Copyright Nokia 2007-2019
* Copyright Siemens AG 2015-2019
*
* https://www.openssl.org/source/license.html
*/
-#include "cmp_testlib.h"
-
-DEFINE_STACK_OF(OSSL_CMP_CERTRESPONSE)
+#include "helpers/cmp_testlib.h"
+static const char *newkey_f;
static const char *server_cert_f;
static const char *pkcs10_f;
OSSL_CMP_PKISI *si;
} CMP_MSG_TEST_FIXTURE;
+static OSSL_LIB_CTX *libctx = NULL;
+static OSSL_PROVIDER *default_null_provider = NULL, *provider = NULL;
+
static unsigned char ref[CMP_TEST_REFVALUE_LENGTH];
static void tear_down(CMP_MSG_TEST_FIXTURE *fixture)
return NULL;
fixture->test_case_name = test_case_name;
- if (!TEST_ptr(fixture->cmp_ctx = OSSL_CMP_CTX_new())
+ if (!TEST_ptr(fixture->cmp_ctx = OSSL_CMP_CTX_new(libctx, NULL))
|| !TEST_true(SET_OPT_UNPROTECTED_SEND(fixture->cmp_ctx, 1))
|| !TEST_true(OSSL_CMP_CTX_set1_referenceValue(fixture->cmp_ctx,
ref, sizeof(ref)))) {
TEST_ptr_null(msg = (expr)); \
\
OSSL_CMP_MSG_free(msg); \
+ ERR_print_errors_fp(stderr); \
return good; \
} while (0)
*/
static int execute_certreq_create_test(CMP_MSG_TEST_FIXTURE *fixture)
{
- EXECUTE_MSG_CREATION_TEST(ossl_cmp_certReq_new(fixture->cmp_ctx,
+ EXECUTE_MSG_CREATION_TEST(ossl_cmp_certreq_new(fixture->cmp_ctx,
fixture->bodytype,
- fixture->err_code));
+ NULL));
}
static int execute_errormsg_create_test(CMP_MSG_TEST_FIXTURE *fixture)
static int test_cmp_create_ir_protection_set(void)
{
- SETUP_TEST_FIXTURE(CMP_MSG_TEST_FIXTURE, set_up);
- OSSL_CMP_CTX *ctx = fixture->cmp_ctx;
+ OSSL_CMP_CTX *ctx;
unsigned char secret[16];
+ SETUP_TEST_FIXTURE(CMP_MSG_TEST_FIXTURE, set_up);
+
+ ctx = fixture->cmp_ctx;
fixture->bodytype = OSSL_CMP_PKIBODY_IR;
fixture->err_code = -1;
fixture->expected = 1;
- if (!TEST_int_eq(1, RAND_bytes(secret, sizeof(secret)))
+ if (!TEST_int_eq(1, RAND_bytes_ex(libctx, secret, sizeof(secret), 0))
|| !TEST_true(SET_OPT_UNPROTECTED_SEND(ctx, 0))
|| !TEST_true(set1_newPkey(ctx, newkey))
|| !TEST_true(OSSL_CMP_CTX_set1_secretValue(ctx, secret,
if (!TEST_true(OSSL_CMP_CTX_set1_pkey(fixture->cmp_ctx, newkey))
|| !TEST_true(SET_OPT_UNPROTECTED_SEND(fixture->cmp_ctx, 0))
/* newkey used by default for signing does not match cert: */
- || !TEST_true(OSSL_CMP_CTX_set1_clCert(fixture->cmp_ctx, cert))) {
+ || !TEST_true(OSSL_CMP_CTX_set1_cert(fixture->cmp_ctx, cert))) {
tear_down(fixture);
fixture = NULL;
}
static int test_cmp_create_p10cr(void)
{
- SETUP_TEST_FIXTURE(CMP_MSG_TEST_FIXTURE, set_up);
- OSSL_CMP_CTX *ctx = fixture->cmp_ctx;
+ OSSL_CMP_CTX *ctx;
X509_REQ *p10cr = NULL;
+ SETUP_TEST_FIXTURE(CMP_MSG_TEST_FIXTURE, set_up);
+ ctx = fixture->cmp_ctx;
fixture->bodytype = OSSL_CMP_PKIBODY_P10CR;
- fixture->err_code = CMP_R_ERROR_CREATING_P10CR;
+ fixture->err_code = CMP_R_ERROR_CREATING_CERTREQ;
fixture->expected = 1;
- if (!TEST_ptr(p10cr = load_csr(pkcs10_f))
+ if (!TEST_ptr(p10cr = load_csr_der(pkcs10_f, libctx))
|| !TEST_true(set1_newPkey(ctx, newkey))
|| !TEST_true(OSSL_CMP_CTX_set1_p10CSR(ctx, p10cr))) {
tear_down(fixture);
{
SETUP_TEST_FIXTURE(CMP_MSG_TEST_FIXTURE, set_up);
fixture->bodytype = OSSL_CMP_PKIBODY_P10CR;
- fixture->err_code = CMP_R_ERROR_CREATING_P10CR;
+ fixture->err_code = CMP_R_ERROR_CREATING_CERTREQ;
fixture->expected = 0;
if (!TEST_true(set1_newPkey(fixture->cmp_ctx, newkey))) {
tear_down(fixture);
static int execute_certrep_create(CMP_MSG_TEST_FIXTURE *fixture)
{
+ OSSL_CMP_CTX *ctx = fixture->cmp_ctx;
OSSL_CMP_CERTREPMESSAGE *crepmsg = OSSL_CMP_CERTREPMESSAGE_new();
OSSL_CMP_CERTRESPONSE *read_cresp, *cresp = OSSL_CMP_CERTRESPONSE_new();
EVP_PKEY *privkey;
goto err;
if (!TEST_ptr_null(ossl_cmp_certrepmessage_get0_certresponse(crepmsg, 88)))
goto err;
- privkey = OSSL_CMP_CTX_get0_newPkey(fixture->cmp_ctx, 1); /* may be NULL */
- certfromresp = ossl_cmp_certresponse_get1_certificate(privkey, read_cresp);
+ privkey = OSSL_CMP_CTX_get0_newPkey(ctx, 1); /* may be NULL */
+ certfromresp = ossl_cmp_certresponse_get1_cert(read_cresp, ctx, privkey);
if (certfromresp == NULL || !TEST_int_eq(X509_cmp(cert, certfromresp), 0))
goto err;
switch (fixture->bodytype = bodytype) {
case OSSL_CMP_PKIBODY_P10CR:
fixture->expected = 1;
- if (!TEST_true(OSSL_CMP_CTX_set1_p10CSR(fixture->cmp_ctx,
- p10cr = load_csr(pkcs10_f)))) {
+ p10cr = load_csr_der(pkcs10_f, libctx);
+ if (!TEST_true(OSSL_CMP_CTX_set1_p10CSR(fixture->cmp_ctx, p10cr))) {
tear_down(fixture);
fixture = NULL;
}
{
EVP_PKEY_free(newkey);
X509_free(cert);
+ OSSL_LIB_CTX_free(libctx);
}
+#define USAGE "new.key server.crt pkcs10.der module_name [module_conf_file]\n"
+OPT_TEST_DECLARE_USAGE(USAGE)
+
int setup_tests(void)
{
if (!test_skip_common_options()) {
return 0;
}
- if (!TEST_ptr(server_cert_f = test_get_argument(0))
- || !TEST_ptr(pkcs10_f = test_get_argument(1))) {
- TEST_error("usage: cmp_msg_test server.crt pkcs10.der\n");
+ if (!TEST_ptr(newkey_f = test_get_argument(0))
+ || !TEST_ptr(server_cert_f = test_get_argument(1))
+ || !TEST_ptr(pkcs10_f = test_get_argument(2))) {
+ TEST_error("usage: cmp_msg_test %s", USAGE);
return 0;
}
- if (!TEST_ptr(newkey = gen_rsa())
- || !TEST_ptr(cert = load_pem_cert(server_cert_f))
- || !TEST_int_eq(1, RAND_bytes(ref, sizeof(ref)))) {
+ if (!test_arg_libctx(&libctx, &default_null_provider, &provider, 3, USAGE))
+ return 0;
+
+ if (!TEST_ptr(newkey = load_pkey_pem(newkey_f, libctx))
+ || !TEST_ptr(cert = load_cert_pem(server_cert_f, libctx))
+ || !TEST_int_eq(1, RAND_bytes_ex(libctx, ref, sizeof(ref), 0))) {
cleanup_tests();
return 0;
}