Move providers/common/{ciphers,digests}/* to providers/implementations
authorRichard Levitte <levitte@openssl.org>
Tue, 3 Dec 2019 18:41:05 +0000 (19:41 +0100)
committerRichard Levitte <levitte@openssl.org>
Wed, 11 Dec 2019 11:55:48 +0000 (12:55 +0100)
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:
providers/build.info
providers/common/build.info
providers/common/ciphers/build.info [deleted file]
providers/common/digests/build.info [deleted file]
providers/implementations/ciphers/build.info
providers/implementations/ciphers/cipher_aes_ccm.c
providers/implementations/ciphers/cipher_aes_ccm_hw.c
providers/implementations/ciphers/cipher_aes_ccm_hw_aesni.inc
providers/implementations/ciphers/cipher_aes_ccm_hw_s390x.inc
providers/implementations/ciphers/cipher_aes_ccm_hw_t4.inc
providers/implementations/ciphers/cipher_aes_gcm.c
providers/implementations/ciphers/cipher_aes_gcm_hw.c
providers/implementations/ciphers/cipher_aes_gcm_hw_aesni.inc
providers/implementations/ciphers/cipher_aes_gcm_hw_s390x.inc
providers/implementations/ciphers/cipher_aes_gcm_hw_t4.inc
providers/implementations/ciphers/cipher_aes_ocb.c
providers/implementations/ciphers/cipher_aes_siv.c
providers/implementations/ciphers/cipher_aria_ccm.h
providers/implementations/ciphers/cipher_aria_gcm.h
providers/implementations/ciphers/ciphercommon.c [moved from providers/common/ciphers/cipher_common.c with 99% similarity]
providers/implementations/ciphers/ciphercommon_block.c [moved from providers/common/ciphers/block.c with 99% similarity]
providers/implementations/ciphers/ciphercommon_ccm.c [moved from providers/common/ciphers/cipher_ccm.c with 99% similarity]
providers/implementations/ciphers/ciphercommon_ccm_hw.c [moved from providers/common/ciphers/cipher_ccm_hw.c with 98% similarity]
providers/implementations/ciphers/ciphercommon_gcm.c [moved from providers/common/ciphers/cipher_gcm.c with 99% similarity]
providers/implementations/ciphers/ciphercommon_gcm_hw.c [moved from providers/common/ciphers/cipher_gcm_hw.c with 99% similarity]
providers/implementations/ciphers/ciphercommon_hw.c [moved from providers/common/ciphers/cipher_common_hw.c with 100% similarity]
providers/implementations/ciphers/ciphercommon_local.h [moved from providers/common/ciphers/cipher_local.h with 100% similarity]
providers/implementations/digests/build.info
providers/implementations/digests/digestcommon.c [moved from providers/common/digests/digest_common.c with 100% similarity]
providers/implementations/include/prov/ciphercommon.h [moved from providers/common/include/prov/ciphercommon.h with 100% similarity]
providers/implementations/include/prov/ciphercommon_aead.h [moved from providers/common/include/prov/cipher_aead.h with 100% similarity]
providers/implementations/include/prov/ciphercommon_ccm.h [moved from providers/common/include/prov/cipher_ccm.h with 99% similarity]
providers/implementations/include/prov/ciphercommon_gcm.h [moved from providers/common/include/prov/cipher_gcm.h with 99% similarity]
providers/implementations/include/prov/digestcommon.h [moved from providers/common/include/prov/digestcommon.h with 100% similarity]

index c31c427..39e767f 100644 (file)
@@ -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
 
index 3f20fb3..ccc99e5 100644 (file)
@@ -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 (file)
index b76b8ba..0000000
+++ /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 (file)
index 730046d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# This source is common for all digests in all our providers.
-SOURCE[../../libcommon.a]=digest_common.c
index 0a76962..abc193b 100644 (file)
@@ -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
index c1fb51b..b665514 100644 (file)
@@ -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)
index ae200eb..0b1e501 100644 (file)
@@ -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);                         \
index 3a5e4a7..7e83565 100644 (file)
@@ -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,
index a5025e5..cec7c96 100644 (file)
@@ -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
index 21bf686..c4b6d15 100644 (file)
@@ -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,
index 4ebc814..18277c7 100644 (file)
@@ -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)
index f5dc0c4..6a2f8a5 100644 (file)
@@ -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)
index eb2a3f3..2fc8698 100644 (file)
@@ -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,
index 44c3bf3..e13771a 100644 (file)
@@ -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 */
index 19e9ccb..cc7d4ba 100644 (file)
@@ -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,
index 6b07caa..03ec70b 100644 (file)
@@ -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
index 864ebc7..ada6b27 100644 (file)
@@ -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
index 301ce14..a85cf89 100644 (file)
@@ -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 */
index 13fbe17..2d08a59 100644 (file)
@@ -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 */
similarity index 99%
rename from providers/common/ciphers/cipher_common.c
rename to providers/implementations/ciphers/ciphercommon.c
index 83c3707..a6b8907 100644 (file)
@@ -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"
 
similarity index 99%
rename from providers/common/ciphers/block.c
rename to providers/implementations/ciphers/ciphercommon_block.c
index 95acfaf..eff9484 100644 (file)
@@ -8,7 +8,7 @@
  */
 
 #include <assert.h>
-#include "cipher_local.h"
+#include "ciphercommon_local.h"
 #include "prov/providercommonerr.h"
 
 /*
similarity index 99%
rename from providers/common/ciphers/cipher_ccm.c
rename to providers/implementations/ciphers/ciphercommon_ccm.c
index 021a004..edb8e81 100644 (file)
@@ -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,
@@ -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)
similarity index 99%
rename from providers/common/ciphers/cipher_gcm.c
rename to providers/implementations/ciphers/ciphercommon_gcm.c
index 619d4f6..803f810 100644 (file)
@@ -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"
@@ -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)
index 2026de9..a90636c 100644 (file)
@@ -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
@@ -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;
 
@@ -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;