Move the public SIV mode functions from public headers to internal ones
authorMatt Caswell <matt@openssl.org>
Mon, 24 Jun 2019 15:07:30 +0000 (16:07 +0100)
committerMatt Caswell <matt@openssl.org>
Thu, 27 Jun 2019 08:47:23 +0000 (09:47 +0100)
SIV mode is accessible via EVP. There should be no reason to make the low
level SIV functions from the modes directory part of the public API. Since
these functions do not exist in 1.1.1 we are still able to make this change.

This also reduces the list of newly added undocumented symbols from
issue #9095.

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/9232)

crypto/evp/e_aes.c
crypto/include/internal/modes_int.h [new file with mode: 0644]
crypto/modes/siv128.c
include/openssl/modes.h
util/libcrypto.num

index 697b5a5..6f58e27 100644 (file)
@@ -7,18 +7,19 @@
  * https://www.openssl.org/source/license.html
  */
 
+#include <string.h>
+#include <assert.h>
 #include <openssl/opensslconf.h>
 #include <openssl/crypto.h>
 #include <openssl/evp.h>
 #include <openssl/err.h>
-#include <string.h>
-#include <assert.h>
 #include <openssl/aes.h>
+#include <openssl/rand.h>
+#include <openssl/cmac.h>
 #include "internal/evp_int.h"
 #include "internal/cryptlib.h"
+#include "internal/modes_int.h"
 #include "modes_lcl.h"
-#include <openssl/rand.h>
-#include <openssl/cmac.h>
 #include "evp_locl.h"
 
 typedef struct {
diff --git a/crypto/include/internal/modes_int.h b/crypto/include/internal/modes_int.h
new file mode 100644 (file)
index 0000000..8a8ef6e
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * 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
+ */
+
+#ifndef OPENSSL_NO_SIV
+
+typedef struct siv128_context SIV128_CONTEXT;
+
+SIV128_CONTEXT *CRYPTO_siv128_new(const unsigned char *key, int klen,
+                                  EVP_CIPHER* cbc, EVP_CIPHER* ctr);
+int CRYPTO_siv128_init(SIV128_CONTEXT *ctx, const unsigned char *key, int klen,
+                       const EVP_CIPHER* cbc, const EVP_CIPHER* ctr);
+int CRYPTO_siv128_copy_ctx(SIV128_CONTEXT *dest, SIV128_CONTEXT *src);
+int CRYPTO_siv128_aad(SIV128_CONTEXT *ctx, const unsigned char *aad,
+                      size_t len);
+int CRYPTO_siv128_encrypt(SIV128_CONTEXT *ctx,
+                          const unsigned char *in, unsigned char *out,
+                          size_t len);
+int CRYPTO_siv128_decrypt(SIV128_CONTEXT *ctx,
+                          const unsigned char *in, unsigned char *out,
+                          size_t len);
+int CRYPTO_siv128_finish(SIV128_CONTEXT *ctx);
+int CRYPTO_siv128_set_tag(SIV128_CONTEXT *ctx, const unsigned char *tag,
+                          size_t len);
+int CRYPTO_siv128_get_tag(SIV128_CONTEXT *ctx, unsigned char *tag, size_t len);
+int CRYPTO_siv128_cleanup(SIV128_CONTEXT *ctx);
+int CRYPTO_siv128_speed(SIV128_CONTEXT *ctx, int arg);
+
+#endif /* OPENSSL_NO_SIV */
index 9bb5eea..4445cf3 100644 (file)
@@ -10,6 +10,7 @@
 #include <string.h>
 #include <stdlib.h>
 #include <openssl/crypto.h>
+#include "internal/modes_int.h"
 #include "modes_lcl.h"
 
 #ifndef OPENSSL_NO_SIV
index 0934482..212c846 100644 (file)
@@ -202,32 +202,6 @@ int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len);
 void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx);
 # endif                          /* OPENSSL_NO_OCB */
 
-# ifndef OPENSSL_NO_SIV
-
-typedef struct siv128_context SIV128_CONTEXT;
-
-#  define SIV_LEN 16
-
-SIV128_CONTEXT *CRYPTO_siv128_new(const unsigned char *key, int klen, EVP_CIPHER* cbc, EVP_CIPHER* ctr);
-int CRYPTO_siv128_init(SIV128_CONTEXT *ctx, const unsigned char *key, int klen,
-                       const EVP_CIPHER* cbc, const EVP_CIPHER* ctr);
-int CRYPTO_siv128_copy_ctx(SIV128_CONTEXT *dest, SIV128_CONTEXT *src);
-int CRYPTO_siv128_aad(SIV128_CONTEXT *ctx, const unsigned char *aad,
-                      size_t len);
-int CRYPTO_siv128_encrypt(SIV128_CONTEXT *ctx,
-                          const unsigned char *in, unsigned char *out,
-                          size_t len);
-int CRYPTO_siv128_decrypt(SIV128_CONTEXT *ctx,
-                          const unsigned char *in, unsigned char *out,
-                          size_t len);
-int CRYPTO_siv128_finish(SIV128_CONTEXT *ctx);
-int CRYPTO_siv128_set_tag(SIV128_CONTEXT *ctx, const unsigned char *tag, size_t len);
-int CRYPTO_siv128_get_tag(SIV128_CONTEXT *ctx, unsigned char *tag, size_t len);
-int CRYPTO_siv128_cleanup(SIV128_CONTEXT *ctx);
-int CRYPTO_siv128_speed(SIV128_CONTEXT *ctx, int arg);
-
-# endif                          /* OPENSSL_NO_SIV */
-
 # ifdef  __cplusplus
 }
 # endif
index 766c735..40e80ff 100644 (file)
@@ -4609,17 +4609,17 @@ OPENSSL_version_build_metadata          4564    3_0_0   EXIST::FUNCTION:
 EVP_aes_128_siv                         4565   3_0_0   EXIST::FUNCTION:SIV
 EVP_aes_192_siv                         4566   3_0_0   EXIST::FUNCTION:SIV
 EVP_aes_256_siv                         4567   3_0_0   EXIST::FUNCTION:SIV
-CRYPTO_siv128_new                       4568   3_0_0   EXIST::FUNCTION:SIV
-CRYPTO_siv128_init                      4569   3_0_0   EXIST::FUNCTION:SIV
-CRYPTO_siv128_copy_ctx                  4570   3_0_0   EXIST::FUNCTION:SIV
-CRYPTO_siv128_aad                       4571   3_0_0   EXIST::FUNCTION:SIV
-CRYPTO_siv128_encrypt                   4572   3_0_0   EXIST::FUNCTION:SIV
-CRYPTO_siv128_decrypt                   4573   3_0_0   EXIST::FUNCTION:SIV
-CRYPTO_siv128_finish                    4574   3_0_0   EXIST::FUNCTION:SIV
-CRYPTO_siv128_set_tag                   4575   3_0_0   EXIST::FUNCTION:SIV
-CRYPTO_siv128_get_tag                   4576   3_0_0   EXIST::FUNCTION:SIV
-CRYPTO_siv128_cleanup                   4577   3_0_0   EXIST::FUNCTION:SIV
-CRYPTO_siv128_speed                     4578   3_0_0   EXIST::FUNCTION:SIV
+CRYPTO_siv128_new                       4568   3_0_0   NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_init                      4569   3_0_0   NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_copy_ctx                  4570   3_0_0   NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_aad                       4571   3_0_0   NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_encrypt                   4572   3_0_0   NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_decrypt                   4573   3_0_0   NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_finish                    4574   3_0_0   NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_set_tag                   4575   3_0_0   NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_get_tag                   4576   3_0_0   NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_cleanup                   4577   3_0_0   NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_speed                     4578   3_0_0   NOEXIST::FUNCTION:SIV
 OPENSSL_INIT_set_config_filename        4579   3_0_0   EXIST::FUNCTION:STDIO
 OPENSSL_INIT_set_config_file_flags      4580   3_0_0   EXIST::FUNCTION:STDIO
 ASYNC_WAIT_CTX_get_callback             4581   3_0_0   EXIST::FUNCTION: