PROV: Move AES_GCM specialisation away from common cipher header
authorRichard Levitte <levitte@openssl.org>
Wed, 11 Dec 2019 12:43:24 +0000 (13:43 +0100)
committerRichard Levitte <levitte@openssl.org>
Thu, 12 Dec 2019 13:59:24 +0000 (14:59 +0100)
The AES_GCM specialisation was defined in the common cipher header
providers/implementations/include/prov/ciphercommon_gcm.h, when it
should in fact be in a local providers/implementations/ciphers/
header.

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/10606)

providers/implementations/ciphers/cipher_aes_gcm.c
providers/implementations/ciphers/cipher_aes_gcm.h [new file with mode: 0644]
providers/implementations/ciphers/cipher_aes_gcm_hw.c
providers/implementations/include/prov/ciphercommon_gcm.h

index 18277c705e33627c4afaefd80d800de9000cc916..bb0b8debc0348cfbc6251f28117111715560c161 100644 (file)
@@ -9,8 +9,7 @@
 
 /* Dispatch functions for AES GCM mode */
 
-#include "prov/ciphercommon.h"
-#include "prov/ciphercommon_gcm.h"
+#include "cipher_aes_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.h b/providers/implementations/ciphers/cipher_aes_gcm.h
new file mode 100644 (file)
index 0000000..6c81790
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * 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
+ */
+
+#include <openssl/aes.h>
+#include "prov/ciphercommon.h"
+#include "prov/ciphercommon_gcm.h"
+
+typedef struct prov_aes_gcm_ctx_st {
+    PROV_GCM_CTX base;          /* must be first entry in struct */
+    union {
+        OSSL_UNION_ALIGN;
+        AES_KEY ks;
+    } ks;                       /* AES key schedule to use */
+
+    /* Platform specific data */
+    union {
+        int dummy;
+#if defined(OPENSSL_CPUID_OBJ) && defined(__s390__)
+        struct {
+            union {
+                OSSL_UNION_ALIGN;
+                S390X_KMA_PARAMS kma;
+            } param;
+            unsigned int fc;
+            unsigned char ares[16];
+            unsigned char mres[16];
+            unsigned char kres[16];
+            int areslen;
+            int mreslen;
+            int kreslen;
+            int res;
+        } s390x;
+#endif /* defined(OPENSSL_CPUID_OBJ) && defined(__s390__) */
+    } plat;
+} PROV_AES_GCM_CTX;
+
+const PROV_GCM_HW *PROV_AES_HW_gcm(size_t keybits);
index 6a2f8a5fd47b5db0f2bff734546f8bae0c907c2b..0373917a18499b4958a6f4c768d7ac46c9dab0d6 100644 (file)
@@ -9,8 +9,7 @@
 
 /* Dispatch functions for AES GCM mode */
 
-#include "prov/ciphercommon.h"
-#include "prov/ciphercommon_gcm.h"
+#include "cipher_aes_gcm.h"
 
 static int generic_aes_gcm_initkey(PROV_GCM_CTX *ctx, const unsigned char *key,
                                    size_t keylen)
index 1932e14c4cdc0d0173c39d2e56712aa42f9c2ead..d651b3827a6891decf3ceb3f5e27bfa85d9b77dd 100644 (file)
@@ -79,35 +79,6 @@ typedef struct prov_gcm_ctx_st {
     const void *ks;
 } PROV_GCM_CTX;
 
-typedef struct prov_aes_gcm_ctx_st {
-    PROV_GCM_CTX base;          /* must be first entry in struct */
-    union {
-        OSSL_UNION_ALIGN;
-        AES_KEY ks;
-    } ks;                       /* AES key schedule to use */
-
-    /* Platform specific data */
-    union {
-        int dummy;
-#if defined(OPENSSL_CPUID_OBJ) && defined(__s390__)
-        struct {
-            union {
-                OSSL_UNION_ALIGN;
-                S390X_KMA_PARAMS kma;
-            } param;
-            unsigned int fc;
-            unsigned char ares[16];
-            unsigned char mres[16];
-            unsigned char kres[16];
-            int areslen;
-            int mreslen;
-            int kreslen;
-            int res;
-        } s390x;
-#endif /* defined(OPENSSL_CPUID_OBJ) && defined(__s390__) */
-    } plat;
-} PROV_AES_GCM_CTX;
-
 PROV_CIPHER_FUNC(int, GCM_setkey, (PROV_GCM_CTX *ctx, const unsigned char *key,
                                    size_t keylen));
 PROV_CIPHER_FUNC(int, GCM_setiv, (PROV_GCM_CTX *dat, const unsigned char *iv,
@@ -130,7 +101,6 @@ struct prov_gcm_hw_st {
   OSSL_GCM_cipherfinal_fn cipherfinal;
   OSSL_GCM_oneshot_fn oneshot;
 };
-const PROV_GCM_HW *PROV_AES_HW_gcm(size_t keybits);
 
 OSSL_OP_cipher_encrypt_init_fn gcm_einit;
 OSSL_OP_cipher_decrypt_init_fn gcm_dinit;