summaryrefslogtreecommitdiff
path: root/test/fips_version_test.c
diff options
context:
space:
mode:
authorTomas Mraz <tomas@openssl.org>2022-09-13 22:38:30 +0200
committerPauli <pauli@openssl.org>2022-09-16 08:34:53 +1000
commite1289d90d0069ea1c3ea8ae80bfc3916077ec24e (patch)
tree9e8b5ce32338417fa988ecae7c25373550a4112d /test/fips_version_test.c
parentc342004e07fd2c03a672f79353d13554fe0ffdaf (diff)
downloadopenssl-new-e1289d90d0069ea1c3ea8ae80bfc3916077ec24e.tar.gz
With fips provider 3.0.0 skip tests related to explicit curves handling
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19201)
Diffstat (limited to 'test/fips_version_test.c')
-rw-r--r--test/fips_version_test.c78
1 files changed, 78 insertions, 0 deletions
diff --git a/test/fips_version_test.c b/test/fips_version_test.c
new file mode 100644
index 0000000000..dd23bb51e5
--- /dev/null
+++ b/test/fips_version_test.c
@@ -0,0 +1,78 @@
+/*
+ * Copyright 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/provider.h>
+#include "testutil.h"
+
+static OSSL_LIB_CTX *libctx = NULL;
+static OSSL_PROVIDER *libprov = NULL;
+
+typedef enum OPTION_choice {
+ OPT_ERR = -1,
+ OPT_EOF = 0,
+ OPT_CONFIG_FILE,
+ OPT_TEST_ENUM
+} OPTION_CHOICE;
+
+const OPTIONS *test_get_options(void)
+{
+ static const OPTIONS test_options[] = {
+ OPT_TEST_OPTIONS_DEFAULT_USAGE,
+ { "config", OPT_CONFIG_FILE, '<',
+ "The configuration file to use for the libctx" },
+ { NULL }
+ };
+ return test_options;
+}
+
+static int test_fips_version(int n)
+{
+ const char *version = test_get_argument(n);
+
+ if (!TEST_ptr(version))
+ return 0;
+ return TEST_int_eq(fips_provider_version_match(libctx, version), 1);
+}
+
+int setup_tests(void)
+{
+ char *config_file = NULL;
+ OPTION_CHOICE o;
+ int n;
+
+ while ((o = opt_next()) != OPT_EOF) {
+ switch (o) {
+ case OPT_CONFIG_FILE:
+ config_file = opt_arg();
+ break;
+ case OPT_TEST_CASES:
+ break;
+ default:
+ case OPT_ERR:
+ return 0;
+ }
+ }
+
+ if (!test_get_libctx(&libctx, NULL, config_file, &libprov, NULL))
+ return 0;
+
+ n = test_get_argument_count();
+ if (n == 0)
+ return 0;
+
+ ADD_ALL_TESTS(test_fips_version, n);
+ return 1;
+}
+
+void cleanup_tests(void)
+{
+ OSSL_PROVIDER_unload(libprov);
+ OSSL_LIB_CTX_free(libctx);
+}