diff --git a/crypto/evp/e_aes.c b/crypto/evp/e_aes.c index 697b5a542d..6f58e27004 100644 --- a/crypto/evp/e_aes.c +++ b/crypto/evp/e_aes.c @@ -7,18 +7,19 @@ * https://www.openssl.org/source/license.html */ +#include +#include #include #include #include #include -#include -#include #include -#include "internal/evp_int.h" -#include "internal/cryptlib.h" -#include "modes_lcl.h" #include #include +#include "internal/evp_int.h" +#include "internal/cryptlib.h" +#include "internal/modes_int.h" +#include "modes_lcl.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 index 0000000000..8a8ef6e15f --- /dev/null +++ b/crypto/include/internal/modes_int.h @@ -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 */ diff --git a/crypto/modes/siv128.c b/crypto/modes/siv128.c index 9bb5eea6e1..4445cf369a 100644 --- a/crypto/modes/siv128.c +++ b/crypto/modes/siv128.c @@ -10,6 +10,7 @@ #include #include #include +#include "internal/modes_int.h" #include "modes_lcl.h" #ifndef OPENSSL_NO_SIV diff --git a/include/openssl/modes.h b/include/openssl/modes.h index 0934482c56..212c846fd8 100644 --- a/include/openssl/modes.h +++ b/include/openssl/modes.h @@ -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 diff --git a/util/libcrypto.num b/util/libcrypto.num index 766c735b2f..40e80ffd55 100644 --- a/util/libcrypto.num +++ b/util/libcrypto.num @@ -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: