]> git.ipfire.org Git - thirdparty/nettle.git/commitdiff
Move ocb_aes128_ctx and nettle_ocb_aes128 to nettle-internal.{c,h} for now. ocb-mode
authorNiels Möller <nisse@lysator.liu.se>
Mon, 6 Feb 2023 19:36:45 +0000 (20:36 +0100)
committerNiels Möller <nisse@lysator.liu.se>
Mon, 6 Feb 2023 19:36:45 +0000 (20:36 +0100)
Makefile.in
nettle-internal.c
nettle-internal.h
ocb-aes128-meta.c [deleted file]
ocb-internal.h [deleted file]
testsuite/ocb-test.c

index 70fb24dfc7e7a210bbbd8699887b02f852de0763..081337a8f2918211e7602c30c6c92d100cc50621 100644 (file)
@@ -134,7 +134,7 @@ nettle_SOURCES = aes-decrypt-internal.c aes-decrypt.c aes-decrypt-table.c \
                 nettle-lookup-hash.c \
                 nettle-meta-aeads.c nettle-meta-armors.c \
                 nettle-meta-ciphers.c nettle-meta-hashes.c nettle-meta-macs.c \
-                ocb.c ocb-aes128.c ocb-aes128-meta.c \
+                ocb.c ocb-aes128.c \
                 pbkdf2.c pbkdf2-hmac-gosthash94.c pbkdf2-hmac-sha1.c \
                 pbkdf2-hmac-sha256.c pbkdf2-hmac-sha384.c pbkdf2-hmac-sha512.c \
                 poly1305-aes.c poly1305-internal.c poly1305-update.c \
index dd2932274466e765ca963b152fa5be4185fc6e36..5f0f00869a113f02937c3aa6e93214e66054c031 100644 (file)
@@ -248,3 +248,62 @@ nettle_cbc_aes256 = {
   NULL,
   NULL,
 };
+
+static void
+set_encrypt_key_wrapper (struct ocb_aes128_ctx *ctx, const uint8_t *key)
+{
+  ocb_aes128_set_encrypt_key(&ctx->key, key);
+}
+
+static void
+set_decrypt_key_wrapper (struct ocb_aes128_ctx *ctx, const uint8_t *key)
+{
+  ocb_aes128_set_decrypt_key(&ctx->key, &ctx->decrypt, key);
+}
+
+static void
+set_nonce_wrapper (struct ocb_aes128_ctx *ctx, const uint8_t *nonce)
+{
+  ocb_aes128_set_nonce (&ctx->ocb, &ctx->key,
+                       OCB_DIGEST_SIZE, OCB_NONCE_SIZE, nonce);
+}
+
+static void
+update_wrapper (struct ocb_aes128_ctx *ctx, size_t length, const uint8_t *data)
+{
+  ocb_aes128_update (&ctx->ocb, &ctx->key, length, data);
+}
+
+static void
+encrypt_wrapper (struct ocb_aes128_ctx *ctx,
+                size_t length, uint8_t *dst, const uint8_t *src)
+{
+  ocb_aes128_encrypt (&ctx->ocb, &ctx->key, length, dst, src);
+}
+
+static void
+decrypt_wrapper (struct ocb_aes128_ctx *ctx,
+                size_t length, uint8_t *dst, const uint8_t *src)
+{
+  ocb_aes128_decrypt (&ctx->ocb, &ctx->key, &ctx->decrypt, length, dst, src);
+}
+
+static void
+digest_wrapper (struct ocb_aes128_ctx *ctx, size_t length, uint8_t *digest)
+{
+  ocb_aes128_digest (&ctx->ocb, &ctx->key, length, digest);
+}
+
+const struct nettle_aead
+nettle_ocb_aes128 =
+  { "ocb_aes128", sizeof(struct ocb_aes128_ctx),
+    OCB_BLOCK_SIZE, AES128_KEY_SIZE,
+    OCB_NONCE_SIZE, OCB_DIGEST_SIZE,
+    (nettle_set_key_func *) set_encrypt_key_wrapper,
+    (nettle_set_key_func *) set_decrypt_key_wrapper,
+    (nettle_set_key_func *) set_nonce_wrapper,
+    (nettle_hash_update_func *) update_wrapper,
+    (nettle_crypt_func *) encrypt_wrapper,
+    (nettle_crypt_func *) decrypt_wrapper,
+    (nettle_hash_digest_func *) digest_wrapper
+  };
index bf906c88b215fde6e6c1ec9b6e4ee3aac89cd715..c41f3ee08516cc9ca081250acf512b9a8f90407b 100644 (file)
@@ -40,6 +40,8 @@
 #include <stdlib.h>
 
 #include "nettle-meta.h"
+#include "ocb.h"
+#include "aes.h"
 
 /* For definition of NETTLE_MAX_HASH_CONTEXT_SIZE. */
 #include "sha3.h"
@@ -127,4 +129,17 @@ extern const struct nettle_hash nettle_openssl_sha1;
 
 extern const struct nettle_hash * const _nettle_hashes[];
 
+/* OCB-declarations to be moved to a public header file, once it's
+   settled which nonce and tag sizes to use. */
+#define OCB_NONCE_SIZE 12
+
+struct ocb_aes128_ctx
+{
+  struct ocb_ctx ocb;
+  struct ocb_aes128_encrypt_key key;
+  struct aes128_ctx decrypt;
+};
+
+extern const struct nettle_aead nettle_ocb_aes128;
+
 #endif /* NETTLE_INTERNAL_H_INCLUDED */
diff --git a/ocb-aes128-meta.c b/ocb-aes128-meta.c
deleted file mode 100644 (file)
index 26f791f..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/* ocb-aes128-meta.c
-
-   Copyright (C) 2021 Niels Möller
-
-   This file is part of GNU Nettle.
-
-   GNU Nettle is free software: you can redistribute it and/or
-   modify it under the terms of either:
-
-     * the GNU Lesser General Public License as published by the Free
-       Software Foundation; either version 3 of the License, or (at your
-       option) any later version.
-
-   or
-
-     * the GNU General Public License as published by the Free
-       Software Foundation; either version 2 of the License, or (at your
-       option) any later version.
-
-   or both in parallel, as here.
-
-   GNU Nettle is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-
-   You should have received copies of the GNU General Public License and
-   the GNU Lesser General Public License along with this program.  If
-   not, see http://www.gnu.org/licenses/.
-*/
-
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include "aes.h"
-#include "ocb.h"
-#include "ocb-internal.h"
-#include "nettle-meta.h"
-
-static void
-set_encrypt_key_wrapper (struct ocb_aes128_ctx *ctx, const uint8_t *key)
-{
-  ocb_aes128_set_encrypt_key(&ctx->key, key);
-}
-
-static void
-set_decrypt_key_wrapper (struct ocb_aes128_ctx *ctx, const uint8_t *key)
-{
-  ocb_aes128_set_decrypt_key(&ctx->key, &ctx->decrypt, key);
-}
-
-static void
-set_nonce_wrapper (struct ocb_aes128_ctx *ctx, const uint8_t *nonce)
-{
-  ocb_aes128_set_nonce (&ctx->ocb, &ctx->key,
-                       OCB_DIGEST_SIZE, OCB_NONCE_SIZE, nonce);
-}
-
-static void
-update_wrapper (struct ocb_aes128_ctx *ctx, size_t length, const uint8_t *data)
-{
-  ocb_aes128_update (&ctx->ocb, &ctx->key, length, data);
-}
-
-static void
-encrypt_wrapper (struct ocb_aes128_ctx *ctx,
-                size_t length, uint8_t *dst, const uint8_t *src)
-{
-  ocb_aes128_encrypt (&ctx->ocb, &ctx->key, length, dst, src);
-}
-
-static void
-decrypt_wrapper (struct ocb_aes128_ctx *ctx,
-                size_t length, uint8_t *dst, const uint8_t *src)
-{
-  ocb_aes128_decrypt (&ctx->ocb, &ctx->key, &ctx->decrypt, length, dst, src);
-}
-
-static void
-digest_wrapper (struct ocb_aes128_ctx *ctx, size_t length, uint8_t *digest)
-{
-  ocb_aes128_digest (&ctx->ocb, &ctx->key, length, digest);
-}
-
-const struct nettle_aead
-nettle_ocb_aes128 =
-  { "ocb_aes128", sizeof(struct ocb_aes128_ctx),
-    OCB_BLOCK_SIZE, AES128_KEY_SIZE,
-    OCB_NONCE_SIZE, OCB_DIGEST_SIZE,
-    (nettle_set_key_func *) set_encrypt_key_wrapper,
-    (nettle_set_key_func *) set_decrypt_key_wrapper,
-    (nettle_set_key_func *) set_nonce_wrapper,
-    (nettle_hash_update_func *) update_wrapper,
-    (nettle_crypt_func *) encrypt_wrapper,
-    (nettle_crypt_func *) decrypt_wrapper,
-    (nettle_hash_digest_func *) digest_wrapper
-  };
diff --git a/ocb-internal.h b/ocb-internal.h
deleted file mode 100644 (file)
index 2e49dca..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/* ocb-internal.c
-
-   Copyright (C) 2023 Niels Möller
-
-   This file is part of GNU Nettle.
-
-   GNU Nettle is free software: you can redistribute it and/or
-   modify it under the terms of either:
-
-     * the GNU Lesser General Public License as published by the Free
-       Software Foundation; either version 3 of the License, or (at your
-       option) any later version.
-
-   or
-
-     * the GNU General Public License as published by the Free
-       Software Foundation; either version 2 of the License, or (at your
-       option) any later version.
-
-   or both in parallel, as here.
-
-   GNU Nettle is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-
-   You should have received copies of the GNU General Public License and
-   the GNU Lesser General Public License along with this program.  If
-   not, see http://www.gnu.org/licenses/.
-*/
-
-#ifndef NETTLE_OCB_INTERNAL_H_INCLUDED
-#define NETTLE_OCB_INTERNAL_H_INCLUDED
-
-#include "ocb.h"
-
-#define OCB_NONCE_SIZE 12
-
-struct ocb_aes128_ctx
-{
-  struct ocb_ctx ocb;
-  struct ocb_aes128_encrypt_key key;
-  struct aes128_ctx decrypt;
-};
-
-#endif /*NETTLE_OCB_INTERNAL_H_INCLUDED */
index 10821cf00e5da5b2d5e2c0d241235582f7db6fe7..ecc73f628071579c053a724c62a020352a756585 100644 (file)
@@ -1,6 +1,5 @@
 #include "testutils.h"
 #include "nettle-internal.h"
-#include "ocb-internal.h"
 
 /* For 96-bit tag */
 static void