From: Richard Levitte Date: Tue, 3 Dec 2019 18:41:05 +0000 (+0100) Subject: Move providers/common/{ciphers,digests}/* to providers/implementations X-Git-Tag: openssl-3.0.0-alpha1~838 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=68a51d59a29796803af3b6e7f0142feca2622c9e;p=thirdparty%2Fopenssl.git 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 (Merged from https://github.com/openssl/openssl/pull/10564) --- diff --git a/providers/build.info b/providers/build.info index c31c4271def..39e767fb0e7 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 3f20fb3c09b..ccc99e515b3 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 b76b8ba10af..00000000000 --- 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 730046d670a..00000000000 --- 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 0a76962669e..abc193bb1de 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 c1fb51b5657..b6655143d95 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 ae200ebada6..0b1e50163b2 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 3a5e4a740dd..7e835658095 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 a5025e5960f..cec7c969027 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 21bf6861e0b..c4b6d15ed9e 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 4ebc8140ee4..18277c705e3 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 f5dc0c4eed3..6a2f8a5fd47 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 eb2a3f343a8..2fc86982c03 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 44c3bf332d9..e13771a4495 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 19e9ccb7607..cc7d4ba528e 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 6b07caaa52e..03ec70b9498 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 864ebc725ed..ada6b27435c 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 301ce14306b..a85cf899efd 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 13fbe175d93..2d08a590290 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 similarity index 99% rename from providers/common/ciphers/cipher_common.c rename to providers/implementations/ciphers/ciphercommon.c index 83c370793bf..a6b890704e1 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 similarity index 99% rename from providers/common/ciphers/block.c rename to providers/implementations/ciphers/ciphercommon_block.c index 95acfaf3234..eff94842ed9 100644 --- a/providers/common/ciphers/block.c +++ b/providers/implementations/ciphers/ciphercommon_block.c @@ -8,7 +8,7 @@ */ #include -#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 similarity index 99% rename from providers/common/ciphers/cipher_ccm.c rename to providers/implementations/ciphers/ciphercommon_ccm.c index 021a0042762..edb8e81bf98 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 similarity index 98% rename from providers/common/ciphers/cipher_ccm_hw.c rename to providers/implementations/ciphers/ciphercommon_ccm_hw.c index 5503a41687c..96cc744f879 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 similarity index 99% rename from providers/common/ciphers/cipher_gcm.c rename to providers/implementations/ciphers/ciphercommon_gcm.c index 619d4f61b07..803f810a300 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 similarity index 99% rename from providers/common/ciphers/cipher_gcm_hw.c rename to providers/implementations/ciphers/ciphercommon_gcm_hw.c index 09e3c274008..60c7ac5d8fa 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 similarity index 100% rename from providers/common/ciphers/cipher_common_hw.c rename to providers/implementations/ciphers/ciphercommon_hw.c diff --git a/providers/common/ciphers/cipher_local.h b/providers/implementations/ciphers/ciphercommon_local.h similarity index 100% rename from providers/common/ciphers/cipher_local.h rename to providers/implementations/ciphers/ciphercommon_local.h diff --git a/providers/implementations/digests/build.info b/providers/implementations/digests/build.info index 2026de95d7b..a90636cbb9d 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 similarity index 100% rename from providers/common/digests/digest_common.c rename to providers/implementations/digests/digestcommon.c diff --git a/providers/common/include/prov/ciphercommon.h b/providers/implementations/include/prov/ciphercommon.h similarity index 100% rename from providers/common/include/prov/ciphercommon.h rename to providers/implementations/include/prov/ciphercommon.h diff --git a/providers/common/include/prov/cipher_aead.h b/providers/implementations/include/prov/ciphercommon_aead.h similarity index 100% rename from providers/common/include/prov/cipher_aead.h rename to 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 similarity index 99% rename from providers/common/include/prov/cipher_ccm.h rename to providers/implementations/include/prov/ciphercommon_ccm.h index 2214b5fc647..0c2af15d54f 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 similarity index 99% rename from providers/common/include/prov/cipher_gcm.h rename to providers/implementations/include/prov/ciphercommon_gcm.h index 711b40cdd4b..1932e14c4cd 100644 --- a/providers/common/include/prov/cipher_gcm.h +++ b/providers/implementations/include/prov/ciphercommon_gcm.h @@ -9,7 +9,7 @@ */ #include -#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 similarity index 100% rename from providers/common/include/prov/digestcommon.h rename to providers/implementations/include/prov/digestcommon.h