From 29c06e988320ee5ca0af666c5833993c7ab5bf64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se> Date: Sat, 2 Jul 2005 19:02:51 +0200 Subject: [PATCH] (test_cipher_ctr): New function. Rev: src/nettle/testsuite/testutils.c:1.27 Rev: src/nettle/testsuite/testutils.h:1.22 --- testsuite/testutils.c | 38 ++++++++++++++++++++++++++++++++++++++ testsuite/testutils.h | 9 +++++++++ 2 files changed, 47 insertions(+) diff --git a/testsuite/testutils.c b/testsuite/testutils.c index 7ea750ad..801cf882 100644 --- a/testsuite/testutils.c +++ b/testsuite/testutils.c @@ -3,6 +3,7 @@ #include "testutils.h" #include "cbc.h" +#include "ctr.h" #include "knuth-lfib.h" #include <ctype.h> @@ -224,6 +225,43 @@ test_cipher_cbc(const struct nettle_cipher *cipher, free(iv); } +void +test_cipher_ctr(const struct nettle_cipher *cipher, + unsigned key_length, + const uint8_t *key, + unsigned length, + const uint8_t *cleartext, + const uint8_t *ciphertext, + const uint8_t *ictr) +{ + void *ctx = xalloc(cipher->context_size); + uint8_t *data = xalloc(length); + uint8_t *ctr = xalloc(cipher->block_size); + + cipher->set_encrypt_key(ctx, key_length, key); + memcpy(ctr, ictr, cipher->block_size); + + ctr_crypt(ctx, cipher->encrypt, + cipher->block_size, ctr, + length, data, cleartext); + + if (!MEMEQ(length, data, ciphertext)) + FAIL(); + + memcpy(ctr, ictr, cipher->block_size); + + ctr_crypt(ctx, cipher->encrypt, + cipher->block_size, ctr, + length, data, data); + + if (!MEMEQ(length, data, cleartext)) + FAIL(); + + free(ctx); + free(data); + free(ctr); +} + void test_cipher_stream(const struct nettle_cipher *cipher, unsigned key_length, diff --git a/testsuite/testutils.h b/testsuite/testutils.h index a9df1cba..46eb5c23 100644 --- a/testsuite/testutils.h +++ b/testsuite/testutils.h @@ -63,6 +63,15 @@ test_cipher_cbc(const struct nettle_cipher *cipher, const uint8_t *ciphertext, const uint8_t *iv); +void +test_cipher_ctr(const struct nettle_cipher *cipher, + unsigned key_length, + const uint8_t *key, + unsigned length, + const uint8_t *cleartext, + const uint8_t *ciphertext, + const uint8_t *iv); + void test_cipher_stream(const struct nettle_cipher *cipher, unsigned key_length, -- GitLab