*/
#include <stdarg.h>
+#include <openssl/evp.h>
#include "testutil.h"
#include "internal/nelem.h"
#include "internal/property.h"
-#include "../crypto/property/property_lcl.h"
+#include "../crypto/property/property_local.h"
static int add_property_names(const char *n, ...)
{
return res;
}
+static int up_ref(void *p)
+{
+ return 1;
+}
+
+static void down_ref(void *p)
+{
+}
+
static int test_property_string(void)
{
OSSL_METHOD_STORE *store;
goto err;
for (i = 0; i < OSSL_NELEM(impls); i++)
- if (!TEST_true(ossl_method_store_add(store, impls[i].nid, impls[i].prop,
- impls[i].impl, NULL))) {
+ if (!TEST_true(ossl_method_store_add(store, NULL, impls[i].nid,
+ impls[i].prop, impls[i].impl,
+ &up_ref, &down_ref))) {
TEST_note("iteration %zd", i + 1);
goto err;
}
goto err;
for (i = 0; i < OSSL_NELEM(impls); i++)
- if (!TEST_true(ossl_method_store_add(store, impls[i].nid, impls[i].prop,
- impls[i].impl, NULL))) {
+ if (!TEST_true(ossl_method_store_add(store, NULL, impls[i].nid,
+ impls[i].prop, impls[i].impl,
+ &up_ref, &down_ref))) {
TEST_note("iteration %zd", i + 1);
goto err;
}
for (i = 1; i <= max; i++) {
v[i] = 2 * i;
BIO_snprintf(buf, sizeof(buf), "n=%d\n", i);
- if (!TEST_true(ossl_method_store_add(store, i, buf, "abc", NULL))
- || !TEST_true(ossl_method_store_cache_set(store, i, buf, v + i))
+ if (!TEST_true(ossl_method_store_add(store, NULL, i, buf, "abc",
+ &up_ref, &down_ref))
+ || !TEST_true(ossl_method_store_cache_set(store, i, buf, v + i,
+ &up_ref, &down_ref))
|| !TEST_true(ossl_method_store_cache_set(store, i, "n=1234",
- "miss"))) {
+ "miss", &up_ref,
+ &down_ref))) {
TEST_note("iteration %d", i);
goto err;
}
return res;
}
+static int test_fips_mode(void)
+{
+ int ret = 0;
+ OPENSSL_CTX *ctx = NULL;
+
+ if (!TEST_ptr(ctx = OPENSSL_CTX_new()))
+ goto err;
+
+ ret = TEST_true(EVP_set_default_properties(ctx, "default=yes,fips=yes"))
+ && TEST_true(EVP_default_properties_is_fips_enabled(ctx))
+ && TEST_true(EVP_set_default_properties(ctx, "fips=no,default=yes"))
+ && TEST_false(EVP_default_properties_is_fips_enabled(ctx))
+ && TEST_true(EVP_set_default_properties(ctx, "fips=no"))
+ && TEST_false(EVP_default_properties_is_fips_enabled(ctx))
+ && TEST_true(EVP_set_default_properties(ctx, "fips!=no"))
+ && TEST_true(EVP_default_properties_is_fips_enabled(ctx))
+ && TEST_true(EVP_set_default_properties(ctx, "fips=no"))
+ && TEST_false(EVP_default_properties_is_fips_enabled(ctx))
+ && TEST_true(EVP_set_default_properties(ctx, "fips=no,default=yes"))
+ && TEST_true(EVP_default_properties_enable_fips(ctx, 1))
+ && TEST_true(EVP_default_properties_is_fips_enabled(ctx))
+ && TEST_true(EVP_default_properties_enable_fips(ctx, 0))
+ && TEST_false(EVP_default_properties_is_fips_enabled(ctx));
+err:
+ OPENSSL_CTX_free(ctx);
+ return ret;
+}
+
+
int setup_tests(void)
{
ADD_TEST(test_property_string);
ADD_TEST(test_register_deregister);
ADD_TEST(test_property);
ADD_TEST(test_query_cache_stochastic);
+ ADD_TEST(test_fips_mode);
return 1;
}