From 861b8f8747965bf98d9dd328196b8092e709c99d Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Wed, 3 Apr 2019 16:39:34 +0100 Subject: [PATCH] Add the provider_algs.h internal header file Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/8700) --- build.info | 2 +- providers/build.info | 2 +- providers/common/ciphers/aes.c | 2 +- providers/common/digests/sha2.c | 2 +- providers/common/include/internal/provider_algs.h | 14 ++++++++++++++ providers/default/defltprov.c | 5 +---- 6 files changed, 19 insertions(+), 8 deletions(-) create mode 100644 providers/common/include/internal/provider_algs.h diff --git a/build.info b/build.info index a0ecb21881..ce5dfd055d 100644 --- a/build.info +++ b/build.info @@ -3,7 +3,7 @@ SUBDIRS=crypto ssl apps test util tools fuzz engines providers LIBS=libcrypto libssl -INCLUDE[libcrypto]=. crypto/include include +INCLUDE[libcrypto]=. crypto/include include providers/common/include INCLUDE[libssl]=. include DEPEND[libssl]=libcrypto diff --git a/providers/build.info b/providers/build.info index 1628e1feb4..ef107a7334 100644 --- a/providers/build.info +++ b/providers/build.info @@ -7,7 +7,7 @@ IF[{- !$disabled{fips} -}] SOURCE[fips]=fips.ld GENERATE[fips.ld]=../util/providers.num ENDIF - INCLUDE[fips]=.. ../include ../crypto/include + INCLUDE[fips]=.. ../include ../crypto/include common/include DEFINE[fips]=FIPS_MODE ENDIF diff --git a/providers/common/ciphers/aes.c b/providers/common/ciphers/aes.c index 8559d26238..a73f20cd73 100644 --- a/providers/common/ciphers/aes.c +++ b/providers/common/ciphers/aes.c @@ -14,6 +14,7 @@ #include #include #include "internal/cryptlib.h" +#include "internal/provider_algs.h" #include "ciphers_locl.h" static void PROV_AES_KEY_generic_init(PROV_AES_KEY *ctx, @@ -195,7 +196,6 @@ static int aes_set_params(void *vctx, const OSSL_PARAM params[]) return 1; } -extern const OSSL_DISPATCH aes256ecb_functions[]; const OSSL_DISPATCH aes256ecb_functions[] = { { OSSL_FUNC_CIPHER_NEWCTX, (void (*)(void))aes_256_ecb_newctx }, { OSSL_FUNC_CIPHER_ENCRYPT_INIT, (void (*)(void))aes_einit }, diff --git a/providers/common/digests/sha2.c b/providers/common/digests/sha2.c index 2a0ae64671..c9f616db68 100644 --- a/providers/common/digests/sha2.c +++ b/providers/common/digests/sha2.c @@ -10,6 +10,7 @@ #include #include #include +#include "internal/provider_algs.h" /* * Forward declaration of everything implemented here. This is not strictly @@ -73,7 +74,6 @@ static size_t sha256_block_size(void) return SHA256_CBLOCK; } -extern const OSSL_DISPATCH sha256_functions[]; const OSSL_DISPATCH sha256_functions[] = { { OSSL_FUNC_DIGEST_NEWCTX, (void (*)(void))sha256_newctx }, { OSSL_FUNC_DIGEST_INIT, (void (*)(void))SHA256_Init }, diff --git a/providers/common/include/internal/provider_algs.h b/providers/common/include/internal/provider_algs.h new file mode 100644 index 0000000000..4e0fc552d6 --- /dev/null +++ b/providers/common/include/internal/provider_algs.h @@ -0,0 +1,14 @@ +/* + * Copyright 2019 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 + */ + +/* Digests */ +extern const OSSL_DISPATCH sha256_functions[]; + +/* Ciphers */ +extern const OSSL_DISPATCH aes256ecb_functions[]; diff --git a/providers/default/defltprov.c b/providers/default/defltprov.c index dcc70800db..5cfbf695c7 100644 --- a/providers/default/defltprov.c +++ b/providers/default/defltprov.c @@ -13,6 +13,7 @@ #include #include #include +#include "internal/provider_algs.h" /* Functions provided by the core */ static OSSL_core_get_param_types_fn *c_get_param_types = NULL; @@ -49,15 +50,11 @@ static int deflt_get_params(const OSSL_PROVIDER *prov, return 1; } -extern const OSSL_DISPATCH sha256_functions[]; - static const OSSL_ALGORITHM deflt_digests[] = { { "SHA256", "default=yes", sha256_functions }, { NULL, NULL, NULL } }; -extern const OSSL_DISPATCH aes256ecb_functions[]; - static const OSSL_ALGORITHM deflt_ciphers[] = { { "AES-256-ECB", "default=yes", aes256ecb_functions }, { NULL, NULL, NULL } -- 2.25.1