This is a test for nocache provider behavior
A follow-up to #26038 Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/26197)
This commit is contained in:
parent
bf2dea0e2c
commit
f6097c7c5d
18
test/nocache-and-default.cnf
Normal file
18
test/nocache-and-default.cnf
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
openssl_conf = openssl_init
|
||||||
|
|
||||||
|
# Comment out the next line to ignore configuration errors
|
||||||
|
config_diagnostics = 1
|
||||||
|
|
||||||
|
[openssl_init]
|
||||||
|
providers = provider_sect
|
||||||
|
|
||||||
|
[provider_sect]
|
||||||
|
test = test_sect
|
||||||
|
default = default_sect
|
||||||
|
|
||||||
|
[test_sect]
|
||||||
|
module = ../test/p_test.so
|
||||||
|
activate = true
|
||||||
|
|
||||||
|
[default_sect]
|
||||||
|
activate = true
|
@ -230,12 +230,21 @@ static const OSSL_ITEM *p_get_reason_strings(void *_)
|
|||||||
return reason_strings;
|
return reason_strings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const OSSL_ALGORITHM *p_query(OSSL_PROVIDER *prov,
|
||||||
|
int operation_id,
|
||||||
|
int *no_cache)
|
||||||
|
{
|
||||||
|
*no_cache = 1;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static const OSSL_DISPATCH p_test_table[] = {
|
static const OSSL_DISPATCH p_test_table[] = {
|
||||||
{ OSSL_FUNC_PROVIDER_GETTABLE_PARAMS, (void (*)(void))p_gettable_params },
|
{ OSSL_FUNC_PROVIDER_GETTABLE_PARAMS, (void (*)(void))p_gettable_params },
|
||||||
{ OSSL_FUNC_PROVIDER_GET_PARAMS, (void (*)(void))p_get_params },
|
{ OSSL_FUNC_PROVIDER_GET_PARAMS, (void (*)(void))p_get_params },
|
||||||
{ OSSL_FUNC_PROVIDER_GET_REASON_STRINGS,
|
{ OSSL_FUNC_PROVIDER_GET_REASON_STRINGS,
|
||||||
(void (*)(void))p_get_reason_strings},
|
(void (*)(void))p_get_reason_strings},
|
||||||
{ OSSL_FUNC_PROVIDER_TEARDOWN, (void (*)(void))p_teardown },
|
{ OSSL_FUNC_PROVIDER_TEARDOWN, (void (*)(void))p_teardown },
|
||||||
|
{ OSSL_FUNC_PROVIDER_QUERY_OPERATION, (void (*)(void))p_query },
|
||||||
OSSL_DISPATCH_END
|
OSSL_DISPATCH_END
|
||||||
};
|
};
|
||||||
|
|
||||||
|
34
test/recipes/20-test_nocache.t
Normal file
34
test/recipes/20-test_nocache.t
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#! /usr/bin/env perl
|
||||||
|
# Copyright 2016-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
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
use OpenSSL::Test qw/:DEFAULT bldtop_file srctop_file bldtop_dir with/;
|
||||||
|
use OpenSSL::Test::Utils;
|
||||||
|
|
||||||
|
setup("test_nocache");
|
||||||
|
|
||||||
|
plan tests => 4;
|
||||||
|
|
||||||
|
ok(run(app(["openssl", "list", "-mac-algorithms"],
|
||||||
|
stdout => "listout.txt")),
|
||||||
|
"List mac algorithms - default configuration");
|
||||||
|
open DATA, "listout.txt";
|
||||||
|
my @match = grep /MAC/, <DATA>;
|
||||||
|
close DATA;
|
||||||
|
ok(scalar @match > 1 ? 1 : 0, "Several algorithms are listed - default configuration");
|
||||||
|
|
||||||
|
$ENV{OPENSSL_CONF} = bldtop_file("test", "nocache-and-default.cnf");
|
||||||
|
ok(run(app(["openssl", "list", "-mac-algorithms"],
|
||||||
|
stdout => "listout.txt")),
|
||||||
|
"List mac algorithms");
|
||||||
|
open DATA, "listout.txt";
|
||||||
|
my @match = grep /MAC/, <DATA>;
|
||||||
|
close DATA;
|
||||||
|
ok(scalar @match > 1 ? 1 : 0, "Several algorithms are listed - nocache-and-default");
|
Loading…
x
Reference in New Issue
Block a user