Hello,

Any chances to get these 3 patches in?

чт, 1 нояб. 2018 г. в 13:28, Dmitry Eremin-Solenikov <[email protected]>:
>
> Signed-off-by: Dmitry Eremin-Solenikov <[email protected]>
> ---
>  testsuite/cmac-test.c | 100 +++++++++++-------------------------------
>  testsuite/testutils.c |  64 +++++++++++++++++++++++++++
>  testsuite/testutils.h |   6 +++
>  3 files changed, 96 insertions(+), 74 deletions(-)
>
> diff --git a/testsuite/cmac-test.c b/testsuite/cmac-test.c
> index 31662d1b6c1b..b1d4aa30dfbe 100644
> --- a/testsuite/cmac-test.c
> +++ b/testsuite/cmac-test.c
> @@ -2,83 +2,35 @@
>  #include "nettle-internal.h"
>  #include "cmac.h"
>
> +const struct nettle_mac nettle_cmac_aes128 =
> +{
> +  "CMAC-AES128",
> +  sizeof(struct cmac_aes128_ctx),
> +  CMAC128_DIGEST_SIZE,
> +  AES128_KEY_SIZE,
> +
> +  (nettle_set_key_func*) cmac_aes128_set_key,
> +  (nettle_hash_update_func*) cmac_aes128_update,
> +  (nettle_hash_digest_func*) cmac_aes128_digest
> +};
> +
> +const struct nettle_mac nettle_cmac_aes256 =
> +{
> +  "CMAC-AES256",
> +  sizeof(struct cmac_aes256_ctx),
> +  CMAC128_DIGEST_SIZE,
> +  AES256_KEY_SIZE,
> +
> +  (nettle_set_key_func*) cmac_aes256_set_key,
> +  (nettle_hash_update_func*) cmac_aes256_update,
> +  (nettle_hash_digest_func*) cmac_aes256_digest
> +};
> +
>  #define test_cmac_aes128(key, msg, ref)                                      
>   \
> -  test_cmac_hash ((nettle_set_key_func*) cmac_aes128_set_key,          \
> -                 (nettle_hash_update_func*) cmac_aes128_update,        \
> -                 (nettle_hash_digest_func*) cmac_aes128_digest,        \
> -                 sizeof(struct cmac_aes128_ctx),                       \
> -                 key, msg, ref)
> +  test_mac(&nettle_cmac_aes128, key, msg, ref)
>
>  #define test_cmac_aes256(key, msg, ref)                                      
>   \
> -  test_cmac_hash ((nettle_set_key_func*) cmac_aes256_set_key,          \
> -                 (nettle_hash_update_func*) cmac_aes256_update,        \
> -                 (nettle_hash_digest_func*) cmac_aes256_digest,        \
> -                 sizeof(struct cmac_aes256_ctx),                       \
> -                 key, msg, ref)
> -
> -static void
> -test_cmac_hash (nettle_set_key_func *set_key,
> -               nettle_hash_update_func *update,
> -               nettle_hash_digest_func *digest, size_t ctx_size,
> -               const struct tstring *key, const struct tstring *msg,
> -               const struct tstring *ref)
> -{
> -  void *ctx;
> -  uint8_t hash[16];
> -  unsigned i;
> -
> -  ctx = xalloc(ctx_size);
> -
> -  ASSERT (ref->length == sizeof(hash));
> -  ASSERT (key->length == 16 || key->length == 32);
> -  set_key (ctx, key->data);
> -  update (ctx, msg->length, msg->data);
> -  digest (ctx, sizeof(hash), hash);
> -  if (!MEMEQ (ref->length, ref->data, hash))
> -    {
> -      fprintf (stderr, "cmac_hash failed, msg: ");
> -      print_hex (msg->length, msg->data);
> -      fprintf(stderr, "Output:");
> -      print_hex (16, hash);
> -      fprintf(stderr, "Expected:");
> -      tstring_print_hex(ref);
> -      fprintf(stderr, "\n");
> -      FAIL();
> -    }
> -
> -  /* attempt to re-use the structure */
> -  update (ctx, msg->length, msg->data);
> -  digest (ctx, sizeof(hash), hash);
> -  if (!MEMEQ (ref->length, ref->data, hash))
> -    {
> -      fprintf (stderr, "cmac_hash failed on re-use, msg: ");
> -      print_hex (msg->length, msg->data);
> -      fprintf(stderr, "Output:");
> -      print_hex (16, hash);
> -      fprintf(stderr, "Expected:");
> -      tstring_print_hex(ref);
> -      fprintf(stderr, "\n");
> -      FAIL();
> -    }
> -
> -  /* attempt byte-by-byte hashing */
> -  set_key (ctx, key->data);
> -  for (i=0;i<msg->length;i++)
> -    update (ctx, 1, msg->data+i);
> -  digest (ctx, sizeof(hash), hash);
> -  if (!MEMEQ (ref->length, ref->data, hash))
> -    {
> -      fprintf (stderr, "cmac_hash failed on byte-by-byte, msg: ");
> -      print_hex (msg->length, msg->data);
> -      fprintf(stderr, "Output:");
> -      print_hex (16, hash);
> -      fprintf(stderr, "Expected:");
> -      tstring_print_hex(ref);
> -      fprintf(stderr, "\n");
> -      FAIL();
> -    }
> -  free (ctx);
> -}
> +  test_mac(&nettle_cmac_aes256, key, msg, ref)
>
>  void
>  test_main(void)
> diff --git a/testsuite/testutils.c b/testsuite/testutils.c
> index 1812ff4f52b0..ba0b41131925 100644
> --- a/testsuite/testutils.c
> +++ b/testsuite/testutils.c
> @@ -924,6 +924,70 @@ test_hash_large(const struct nettle_hash *hash,
>    free(data);
>  }
>
> +void
> +test_mac(const struct nettle_mac *mac,
> +        const struct tstring *key,
> +        const struct tstring *msg,
> +        const struct tstring *digest)
> +{
> +  void *ctx = xalloc(mac->context_size);
> +  uint8_t *hash = xalloc(mac->digest_size);
> +  unsigned i;
> +
> +
> +  ASSERT (digest->length == mac->digest_size);
> +  ASSERT (key->length == mac->key_size);
> +  mac->set_key (ctx, key->data);
> +  mac->update (ctx, msg->length, msg->data);
> +  mac->digest (ctx, digest->length, hash);
> +
> +  if (!MEMEQ (digest->length, digest->data, hash))
> +    {
> +      fprintf (stderr, "test_mac failed, msg: ");
> +      print_hex (msg->length, msg->data);
> +      fprintf(stderr, "Output:");
> +      print_hex (mac->digest_size, hash);
> +      fprintf(stderr, "Expected:");
> +      tstring_print_hex(digest);
> +      fprintf(stderr, "\n");
> +      FAIL();
> +    }
> +
> +  /* attempt to re-use the structure */
> +  mac->update (ctx, msg->length, msg->data);
> +  mac->digest (ctx, digest->length, hash);
> +  if (!MEMEQ (digest->length, digest->data, hash))
> +    {
> +      fprintf (stderr, "test_mac: failed on re-use, msg: ");
> +      print_hex (msg->length, msg->data);
> +      fprintf(stderr, "Output:");
> +      print_hex (mac->digest_size, hash);
> +      fprintf(stderr, "Expected:");
> +      tstring_print_hex(digest);
> +      fprintf(stderr, "\n");
> +      FAIL();
> +    }
> +
> +  /* attempt byte-by-byte hashing */
> +  mac->set_key (ctx, key->data);
> +  for (i=0;i<msg->length;i++)
> +    mac->update (ctx, 1, msg->data+i);
> +  mac->digest (ctx, digest->length, hash);
> +  if (!MEMEQ (digest->length, digest->data, hash))
> +    {
> +      fprintf (stderr, "cmac_hash failed on byte-by-byte, msg: ");
> +      print_hex (msg->length, msg->data);
> +      fprintf(stderr, "Output:");
> +      print_hex (16, hash);
> +      fprintf(stderr, "Expected:");
> +      tstring_print_hex(digest);
> +      fprintf(stderr, "\n");
> +      FAIL();
> +    }
> +  free (ctx);
> +  free (hash);
> +}
> +
>  void
>  test_armor(const struct nettle_armor *armor,
>             size_t data_length,
> diff --git a/testsuite/testutils.h b/testsuite/testutils.h
> index ded57db6ab4f..f4ea38da9deb 100644
> --- a/testsuite/testutils.h
> +++ b/testsuite/testutils.h
> @@ -170,6 +170,12 @@ test_hash_large(const struct nettle_hash *hash,
>                 uint8_t c,
>                 const struct tstring *digest);
>
> +void
> +test_mac(const struct nettle_mac *mac,
> +        const struct tstring *key,
> +        const struct tstring *msg,
> +        const struct tstring *digest);
> +
>  void
>  test_armor(const struct nettle_armor *armor,
>             size_t data_length,
> --
> 2.19.1
>


-- 
With best wishes
Dmitry
_______________________________________________
nettle-bugs mailing list
[email protected]
http://lists.lysator.liu.se/mailman/listinfo/nettle-bugs

Reply via email to