diff options
author | Richard Levitte <levitte@openssl.org> | 2019-12-03 19:41:05 +0100 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2019-12-11 12:55:48 +0100 |
commit | 68a51d59a29796803af3b6e7f0142feca2622c9e (patch) | |
tree | 1c67dea0b89826473f0cfe64ea548019ffec35c0 | |
parent | 436c21a0fd317cb929fb00eefb1ac84e90676097 (diff) |
Move providers/common/{ciphers,digests}/* to providers/implementations
The idea to have all these things in providers/common was viable as
long as the implementations was spread around their main providers.
This is, however, no longer the case, so we move the common blocks
closer to the source that use them.
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/10564)
34 files changed, 40 insertions, 38 deletions
diff --git a/providers/build.info b/providers/build.info index c31c4271de..39e767fb0e 100644 --- a/providers/build.info +++ b/providers/build.info @@ -40,14 +40,14 @@ $LIBNONFIPS=libnonfips.a $LIBFIPS=libfips.a # Enough of our implementations include prov/ciphercommon.h (present in -# providers/common/include), which includes crypto/ciphermode_platform.h +# providers/implementations/include), which includes crypto/ciphermode_platform.h # (present in include), which in turn may include very internal header # files in crypto/, so let's have a common include list for them all. -$COMMON_INCLUDES=../crypto ../include common/include +$COMMON_INCLUDES=../crypto ../include implementations/include common/include INCLUDE[$LIBCOMMON]=$COMMON_INCLUDES -INCLUDE[$LIBIMPLEMENTATIONS]=.. $COMMON_INCLUDES implementations/include -INCLUDE[$LIBLEGACY]=$COMMON_INCLUDES implementations/include +INCLUDE[$LIBIMPLEMENTATIONS]=.. $COMMON_INCLUDES +INCLUDE[$LIBLEGACY]=$COMMON_INCLUDES INCLUDE[$LIBNONFIPS]=$COMMON_INCLUDES INCLUDE[$LIBFIPS]=.. $COMMON_INCLUDES DEFINE[$LIBFIPS]=FIPS_MODE @@ -84,7 +84,7 @@ $DEFAULTGOAL=../libcrypto SOURCE[$DEFAULTGOAL]=$LIBIMPLEMENTATIONS $LIBNONFIPS SOURCE[$DEFAULTGOAL]=defltprov.c # Some legacy implementations depend on provider header files -INCLUDE[../libcrypto]=implementations/include +INCLUDE[$DEFAULTGOAL]=implementations/include LIBS=$DEFAULTGOAL diff --git a/providers/common/build.info b/providers/common/build.info index 3f20fb3c09..ccc99e515b 100644 --- a/providers/common/build.info +++ b/providers/common/build.info @@ -1,5 +1,3 @@ -SUBDIRS=digests ciphers - SOURCE[../libcommon.a]=provider_err.c bio_prov.c $FIPSCOMMON=provider_util.c SOURCE[../libnonfips.a]=$FIPSCOMMON nid_to_name.c diff --git a/providers/common/ciphers/build.info b/providers/common/ciphers/build.info deleted file mode 100644 index b76b8ba10a..0000000000 --- a/providers/common/ciphers/build.info +++ /dev/null @@ -1,5 +0,0 @@ -# This source is common building blocks for all ciphers in all our providers. -SOURCE[../../libcommon.a]=\ - cipher_common.c cipher_common_hw.c block.c \ - cipher_gcm.c cipher_gcm_hw.c \ - cipher_ccm.c cipher_ccm_hw.c diff --git a/providers/common/digests/build.info b/providers/common/digests/build.info deleted file mode 100644 index 730046d670..0000000000 --- a/providers/common/digests/build.info +++ /dev/null @@ -1,2 +0,0 @@ -# This source is common for all digests in all our providers. -SOURCE[../../libcommon.a]=digest_common.c diff --git a/providers/implementations/ciphers/build.info b/providers/implementations/ciphers/build.info index 0a76962669..abc193bb1d 100644 --- a/providers/implementations/ciphers/build.info +++ b/providers/implementations/ciphers/build.info @@ -5,6 +5,8 @@ # The latter may become legacy sooner, so it's comfortable to have two # variables already now, to switch the non-FIPSable TDES to legacy if needed. +$COMMON_GOAL=../../libcommon.a + $AES_GOAL=../../libimplementations.a $TDES_1_GOAL=../../libimplementations.a $TDES_2_GOAL=../../libimplementations.a @@ -23,6 +25,12 @@ $CHACHA_GOAL=../../libimplementations.a $CHACHAPOLY_GOAL=../../libimplementations.a $SIV_GOAL=../../libimplementations.a +# This source is common building blocks for all ciphers in all our providers. +SOURCE[$COMMON_GOAL]=\ + ciphercommon.c ciphercommon_hw.c ciphercommon_block.c \ + ciphercommon_gcm.c ciphercommon_gcm_hw.c \ + ciphercommon_ccm.c ciphercommon_ccm_hw.c + IF[{- !$disabled{des} -}] SOURCE[$TDES_1_GOAL]=cipher_tdes.c cipher_tdes_hw.c ENDIF diff --git a/providers/implementations/ciphers/cipher_aes_ccm.c b/providers/implementations/ciphers/cipher_aes_ccm.c index c1fb51b565..b6655143d9 100644 --- a/providers/implementations/ciphers/cipher_aes_ccm.c +++ b/providers/implementations/ciphers/cipher_aes_ccm.c @@ -10,7 +10,7 @@ /* Dispatch functions for AES CCM mode */ #include "prov/ciphercommon.h" -#include "prov/cipher_ccm.h" +#include "prov/ciphercommon_ccm.h" #include "prov/implementations.h" static void *aes_ccm_newctx(void *provctx, size_t keybits) diff --git a/providers/implementations/ciphers/cipher_aes_ccm_hw.c b/providers/implementations/ciphers/cipher_aes_ccm_hw.c index ae200ebada..0b1e50163b 100644 --- a/providers/implementations/ciphers/cipher_aes_ccm_hw.c +++ b/providers/implementations/ciphers/cipher_aes_ccm_hw.c @@ -10,7 +10,7 @@ /* AES CCM mode */ #include "prov/ciphercommon.h" -#include "prov/cipher_ccm.h" +#include "prov/ciphercommon_ccm.h" #define AES_HW_CCM_SET_KEY_FN(fn_set_enc_key, fn_blk, fn_ccm_enc, fn_ccm_dec) \ fn_set_enc_key(key, keylen * 8, &actx->ccm.ks.ks); \ diff --git a/providers/implementations/ciphers/cipher_aes_ccm_hw_aesni.inc b/providers/implementations/ciphers/cipher_aes_ccm_hw_aesni.inc index 3a5e4a740d..7e83565809 100644 --- a/providers/implementations/ciphers/cipher_aes_ccm_hw_aesni.inc +++ b/providers/implementations/ciphers/cipher_aes_ccm_hw_aesni.inc @@ -9,7 +9,7 @@ /*- * AES-NI support for AES CCM. - * This file is included by cipher_ccm_hw.c + * This file is included by cipher_aes_ccm_hw.c */ static int ccm_aesni_initkey(PROV_CCM_CTX *ctx, const unsigned char *key, diff --git a/providers/implementations/ciphers/cipher_aes_ccm_hw_s390x.inc b/providers/implementations/ciphers/cipher_aes_ccm_hw_s390x.inc index a5025e5960..cec7c96902 100644 --- a/providers/implementations/ciphers/cipher_aes_ccm_hw_s390x.inc +++ b/providers/implementations/ciphers/cipher_aes_ccm_hw_s390x.inc @@ -9,7 +9,7 @@ /*- * S390X support for AES CCM. - * This file is included by cipher_ccm_hw.c + * This file is included by cipher_aes_ccm_hw.c */ #define S390X_CCM_AAD_FLAG 0x40 diff --git a/providers/implementations/ciphers/cipher_aes_ccm_hw_t4.inc b/providers/implementations/ciphers/cipher_aes_ccm_hw_t4.inc index 21bf6861e0..c4b6d15ed9 100644 --- a/providers/implementations/ciphers/cipher_aes_ccm_hw_t4.inc +++ b/providers/implementations/ciphers/cipher_aes_ccm_hw_t4.inc @@ -9,7 +9,7 @@ /*- * Fujitsu SPARC64 X support for AES CCM. - * This file is included by cipher_ccm_hw.c + * This file is included by cipher_aes_ccm_hw.c */ static int ccm_t4_aes_initkey(PROV_CCM_CTX *ctx, const unsigned char *key, diff --git a/providers/implementations/ciphers/cipher_aes_gcm.c b/providers/implementations/ciphers/cipher_aes_gcm.c index 4ebc8140ee..18277c705e 100644 --- a/providers/implementations/ciphers/cipher_aes_gcm.c +++ b/providers/implementations/ciphers/cipher_aes_gcm.c @@ -10,7 +10,7 @@ /* Dispatch functions for AES GCM mode */ #include "prov/ciphercommon.h" -#include "prov/cipher_gcm.h" +#include "prov/ciphercommon_gcm.h" #include "prov/implementations.h" static void *aes_gcm_newctx(void *provctx, size_t keybits) diff --git a/providers/implementations/ciphers/cipher_aes_gcm_hw.c b/providers/implementations/ciphers/cipher_aes_gcm_hw.c index f5dc0c4eed..6a2f8a5fd4 100644 --- a/providers/implementations/ciphers/cipher_aes_gcm_hw.c +++ b/providers/implementations/ciphers/cipher_aes_gcm_hw.c @@ -10,7 +10,7 @@ /* Dispatch functions for AES GCM mode */ #include "prov/ciphercommon.h" -#include "prov/cipher_gcm.h" +#include "prov/ciphercommon_gcm.h" static int generic_aes_gcm_initkey(PROV_GCM_CTX *ctx, const unsigned char *key, size_t keylen) diff --git a/providers/implementations/ciphers/cipher_aes_gcm_hw_aesni.inc b/providers/implementations/ciphers/cipher_aes_gcm_hw_aesni.inc index eb2a3f343a..2fc86982c0 100644 --- a/providers/implementations/ciphers/cipher_aes_gcm_hw_aesni.inc +++ b/providers/implementations/ciphers/cipher_aes_gcm_hw_aesni.inc @@ -9,7 +9,7 @@ /*- * AES-NI support for AES GCM. - * This file is included by cipher_gcm_hw.c + * This file is included by cipher_aes_gcm_hw.c */ static int aesni_gcm_initkey(PROV_GCM_CTX *ctx, const unsigned char *key, diff --git a/providers/implementations/ciphers/cipher_aes_gcm_hw_s390x.inc b/providers/implementations/ciphers/cipher_aes_gcm_hw_s390x.inc index 44c3bf332d..e13771a449 100644 --- a/providers/implementations/ciphers/cipher_aes_gcm_hw_s390x.inc +++ b/providers/implementations/ciphers/cipher_aes_gcm_hw_s390x.inc @@ -9,7 +9,7 @@ /*- * IBM S390X support for AES GCM. - * This file is included by cipher_gcm_hw.c + * This file is included by cipher_aes_gcm_hw.c */ /* iv + padding length for iv lengths != 12 */ diff --git a/providers/implementations/ciphers/cipher_aes_gcm_hw_t4.inc b/providers/implementations/ciphers/cipher_aes_gcm_hw_t4.inc index 19e9ccb760..cc7d4ba528 100644 --- a/providers/implementations/ciphers/cipher_aes_gcm_hw_t4.inc +++ b/providers/implementations/ciphers/cipher_aes_gcm_hw_t4.inc @@ -9,7 +9,7 @@ /*- * Fujitsu SPARC64 X support for AES GCM. - * This file is included by cipher_gcm_hw.c + * This file is included by cipher_aes_gcm_hw.c */ static int t4_aes_gcm_initkey(PROV_GCM_CTX *ctx, const unsigned char *key, diff --git a/providers/implementations/ciphers/cipher_aes_ocb.c b/providers/implementations/ciphers/cipher_aes_ocb.c index 6b07caaa52..03ec70b949 100644 --- a/providers/implementations/ciphers/cipher_aes_ocb.c +++ b/providers/implementations/ciphers/cipher_aes_ocb.c @@ -9,7 +9,7 @@ #include "cipher_aes_ocb.h" #include "prov/providercommonerr.h" -#include "prov/cipher_aead.h" +#include "prov/ciphercommon_aead.h" #include "prov/implementations.h" #define AES_OCB_FLAGS AEAD_FLAGS diff --git a/providers/implementations/ciphers/cipher_aes_siv.c b/providers/implementations/ciphers/cipher_aes_siv.c index 864ebc725e..ada6b27435 100644 --- a/providers/implementations/ciphers/cipher_aes_siv.c +++ b/providers/implementations/ciphers/cipher_aes_siv.c @@ -12,7 +12,7 @@ #include "cipher_aes_siv.h" #include "prov/implementations.h" #include "prov/providercommonerr.h" -#include "prov/cipher_aead.h" +#include "prov/ciphercommon_aead.h" #define siv_stream_update siv_cipher #define SIV_FLAGS AEAD_FLAGS diff --git a/providers/implementations/ciphers/cipher_aria_ccm.h b/providers/implementations/ciphers/cipher_aria_ccm.h index 301ce14306..a85cf899ef 100644 --- a/providers/implementations/ciphers/cipher_aria_ccm.h +++ b/providers/implementations/ciphers/cipher_aria_ccm.h @@ -9,7 +9,7 @@ #include "crypto/aria.h" #include "prov/ciphercommon.h" -#include "prov/cipher_ccm.h" +#include "prov/ciphercommon_ccm.h" typedef struct prov_aria_ccm_ctx_st { PROV_CCM_CTX base; /* Must be first */ diff --git a/providers/implementations/ciphers/cipher_aria_gcm.h b/providers/implementations/ciphers/cipher_aria_gcm.h index 13fbe175d9..2d08a59029 100644 --- a/providers/implementations/ciphers/cipher_aria_gcm.h +++ b/providers/implementations/ciphers/cipher_aria_gcm.h @@ -9,7 +9,7 @@ #include "crypto/aria.h" #include "prov/ciphercommon.h" -#include "prov/cipher_gcm.h" +#include "prov/ciphercommon_gcm.h" typedef struct prov_aria_gcm_ctx_st { PROV_GCM_CTX base; /* must be first entry in struct */ diff --git a/providers/common/ciphers/cipher_common.c b/providers/implementations/ciphers/ciphercommon.c index 83c370793b..a6b890704e 100644 --- a/providers/common/ciphers/cipher_common.c +++ b/providers/implementations/ciphers/ciphercommon.c @@ -11,7 +11,7 @@ * Generic dispatch table functions for ciphers. */ -#include "cipher_local.h" +#include "ciphercommon_local.h" #include "prov/provider_ctx.h" #include "prov/providercommonerr.h" diff --git a/providers/common/ciphers/block.c b/providers/implementations/ciphers/ciphercommon_block.c index 95acfaf323..eff94842ed 100644 --- a/providers/common/ciphers/block.c +++ b/providers/implementations/ciphers/ciphercommon_block.c @@ -8,7 +8,7 @@ */ #include <assert.h> -#include "cipher_local.h" +#include "ciphercommon_local.h" #include "prov/providercommonerr.h" /* diff --git a/providers/common/ciphers/cipher_ccm.c b/providers/implementations/ciphers/ciphercommon_ccm.c index 021a004276..edb8e81bf9 100644 --- a/providers/common/ciphers/cipher_ccm.c +++ b/providers/implementations/ciphers/ciphercommon_ccm.c @@ -10,7 +10,7 @@ /* Dispatch functions for ccm mode */ #include "prov/ciphercommon.h" -#include "prov/cipher_ccm.h" +#include "prov/ciphercommon_ccm.h" #include "prov/providercommonerr.h" static int ccm_cipher_internal(PROV_CCM_CTX *ctx, unsigned char *out, diff --git a/providers/common/ciphers/cipher_ccm_hw.c b/providers/implementations/ciphers/ciphercommon_ccm_hw.c index 5503a41687..96cc744f87 100644 --- a/providers/common/ciphers/cipher_ccm_hw.c +++ b/providers/implementations/ciphers/ciphercommon_ccm_hw.c @@ -8,7 +8,7 @@ */ #include "prov/ciphercommon.h" -#include "prov/cipher_ccm.h" +#include "prov/ciphercommon_ccm.h" int ccm_generic_setiv(PROV_CCM_CTX *ctx, const unsigned char *nonce, size_t nlen, size_t mlen) diff --git a/providers/common/ciphers/cipher_gcm.c b/providers/implementations/ciphers/ciphercommon_gcm.c index 619d4f61b0..803f810a30 100644 --- a/providers/common/ciphers/cipher_gcm.c +++ b/providers/implementations/ciphers/ciphercommon_gcm.c @@ -10,7 +10,7 @@ /* Dispatch functions for gcm mode */ #include "prov/ciphercommon.h" -#include "prov/cipher_gcm.h" +#include "prov/ciphercommon_gcm.h" #include "prov/providercommonerr.h" #include "crypto/rand.h" #include "prov/provider_ctx.h" diff --git a/providers/common/ciphers/cipher_gcm_hw.c b/providers/implementations/ciphers/ciphercommon_gcm_hw.c index 09e3c27400..60c7ac5d8f 100644 --- a/providers/common/ciphers/cipher_gcm_hw.c +++ b/providers/implementations/ciphers/ciphercommon_gcm_hw.c @@ -8,7 +8,7 @@ */ #include "prov/ciphercommon.h" -#include "prov/cipher_gcm.h" +#include "prov/ciphercommon_gcm.h" int gcm_setiv(PROV_GCM_CTX *ctx, const unsigned char *iv, size_t ivlen) diff --git a/providers/common/ciphers/cipher_common_hw.c b/providers/implementations/ciphers/ciphercommon_hw.c index f1c466edc8..f1c466edc8 100644 --- a/providers/common/ciphers/cipher_common_hw.c +++ b/providers/implementations/ciphers/ciphercommon_hw.c diff --git a/providers/common/ciphers/cipher_local.h b/providers/implementations/ciphers/ciphercommon_local.h index 1c4716f357..1c4716f357 100644 --- a/providers/common/ciphers/cipher_local.h +++ b/providers/implementations/ciphers/ciphercommon_local.h diff --git a/providers/implementations/digests/build.info b/providers/implementations/digests/build.info index 2026de95d7..a90636cbb9 100644 --- a/providers/implementations/digests/build.info +++ b/providers/implementations/digests/build.info @@ -1,6 +1,8 @@ # We make separate GOAL variables for each algorithm, to make it easy to # switch each to the Legacy provider when needed. +$COMMON_GOAL=../../libcommon.a + $SHA1_GOAL=../../libimplementations.a $SHA2_GOAL=../../libimplementations.a $SHA3_GOAL=../../libimplementations.a @@ -14,11 +16,12 @@ $MDC2_GOAL=../../liblegacy.a $WHIRLPOOL_GOAL=../../liblegacy.a $RIPEMD_GOAL=../../liblegacy.a +# This source is common for all digests in all our providers. +SOURCE[$COMMON_GOAL]=digestcommon.c + SOURCE[$SHA2_GOAL]=sha2_prov.c SOURCE[$SHA3_GOAL]=sha3_prov.c -$GOAL=../../libimplementations.a - IF[{- !$disabled{blake2} -}] SOURCE[$BLAKE2_GOAL]=blake2_prov.c blake2b_prov.c blake2s_prov.c ENDIF diff --git a/providers/common/digests/digest_common.c b/providers/implementations/digests/digestcommon.c index 9d30b2be2c..9d30b2be2c 100644 --- a/providers/common/digests/digest_common.c +++ b/providers/implementations/digests/digestcommon.c diff --git a/providers/common/include/prov/ciphercommon.h b/providers/implementations/include/prov/ciphercommon.h index 1072b577fe..1072b577fe 100644 --- a/providers/common/include/prov/ciphercommon.h +++ b/providers/implementations/include/prov/ciphercommon.h diff --git a/providers/common/include/prov/cipher_aead.h b/providers/implementations/include/prov/ciphercommon_aead.h index db938d7fbe..db938d7fbe 100644 --- a/providers/common/include/prov/cipher_aead.h +++ b/providers/implementations/include/prov/ciphercommon_aead.h diff --git a/providers/common/include/prov/cipher_ccm.h b/providers/implementations/include/prov/ciphercommon_ccm.h index 2214b5fc64..0c2af15d54 100644 --- a/providers/common/include/prov/cipher_ccm.h +++ b/providers/implementations/include/prov/ciphercommon_ccm.h @@ -7,7 +7,7 @@ * https://www.openssl.org/source/license.html */ -#include "cipher_aead.h" +#include "ciphercommon_aead.h" typedef struct prov_ccm_hw_st PROV_CCM_HW; diff --git a/providers/common/include/prov/cipher_gcm.h b/providers/implementations/include/prov/ciphercommon_gcm.h index 711b40cdd4..1932e14c4c 100644 --- a/providers/common/include/prov/cipher_gcm.h +++ b/providers/implementations/include/prov/ciphercommon_gcm.h @@ -9,7 +9,7 @@ */ #include <openssl/aes.h> -#include "cipher_aead.h" +#include "ciphercommon_aead.h" typedef struct prov_gcm_hw_st PROV_GCM_HW; diff --git a/providers/common/include/prov/digestcommon.h b/providers/implementations/include/prov/digestcommon.h index e5b76ff49f..e5b76ff49f 100644 --- a/providers/common/include/prov/digestcommon.h +++ b/providers/implementations/include/prov/digestcommon.h |