Update AES GCM IV max length to be 1024 bits (was 512)
authorShane Lontis <shane.lontis@oracle.com>
Tue, 15 Sep 2020 01:08:27 +0000 (11:08 +1000)
committerShane Lontis <shane.lontis@oracle.com>
Thu, 17 Sep 2020 02:55:39 +0000 (12:55 +1000)
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/12875)

providers/implementations/ciphers/cipher_aes_gcm.c
providers/implementations/ciphers/cipher_aria_gcm.c
providers/implementations/include/prov/ciphercommon_gcm.h

index 2f22c320671eb63fff4fc1cb013b82f441491c05..409dfa7b3300dcee28feffdcc8f394194465be24 100644 (file)
@@ -20,6 +20,9 @@
 #include "prov/implementations.h"
 #include "prov/providercommon.h"
 
+#define AES_GCM_IV_MIN_SIZE     (64 / 8) /* size in bytes */
+/* Note: GCM_IV_MAX_SIZE is listed in ciphercommon_gcm.h */
+
 static void *aes_gcm_newctx(void *provctx, size_t keybits)
 {
     PROV_AES_GCM_CTX *ctx;
@@ -29,7 +32,8 @@ static void *aes_gcm_newctx(void *provctx, size_t keybits)
 
     ctx = OPENSSL_zalloc(sizeof(*ctx));
     if (ctx != NULL)
-        gcm_initctx(provctx, &ctx->base, keybits, PROV_AES_HW_gcm(keybits), 8);
+        gcm_initctx(provctx, &ctx->base, keybits, PROV_AES_HW_gcm(keybits),
+                    AES_GCM_IV_MIN_SIZE);
     return ctx;
 }
 
index de228a0755f702c5aabf9dbec5bcf8035fea1867..a54afae1bbfc77f0b4d925964cb3915c27a799d1 100644 (file)
@@ -13,6 +13,8 @@
 #include "prov/implementations.h"
 #include "prov/providercommon.h"
 
+#define ARIA_GCM_IV_MIN_SIZE     (32 / 8) /* size in bytes */
+
 static void *aria_gcm_newctx(void *provctx, size_t keybits)
 {
     PROV_ARIA_GCM_CTX *ctx;
@@ -22,7 +24,8 @@ static void *aria_gcm_newctx(void *provctx, size_t keybits)
 
     ctx = OPENSSL_zalloc(sizeof(*ctx));
     if (ctx != NULL)
-        gcm_initctx(provctx, &ctx->base, keybits, PROV_ARIA_HW_gcm(keybits), 4);
+        gcm_initctx(provctx, &ctx->base, keybits, PROV_ARIA_HW_gcm(keybits),
+                    ARIA_GCM_IV_MIN_SIZE);
     return ctx;
 }
 
index c7d8b3c0a339c9e781abc7019dcb4d47a88631bc..b6d5c749497bc79e92303cee4fba92fe8351cac3 100644 (file)
@@ -14,7 +14,7 @@
 typedef struct prov_gcm_hw_st PROV_GCM_HW;
 
 #define GCM_IV_DEFAULT_SIZE 12 /* IV's for AES_GCM should normally be 12 bytes */
-#define GCM_IV_MAX_SIZE     64
+#define GCM_IV_MAX_SIZE     (1024 / 8)
 #define GCM_TAG_MAX_SIZE    16
 
 #if defined(OPENSSL_CPUID_OBJ) && defined(__s390__)