X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=test%2Fhmactest.c;h=babfb0e1a7ef049297c94ce3360d34b9734d3b64;hb=c720fc35f4aa90cdc7cdc424b976c5322fb0098e;hp=48c531e14d1725b24135c480ef70bb4e91abec2f;hpb=f53537b1fabdb38baf43e930b9c546ffb50a86cf;p=oweals%2Fopenssl.git diff --git a/test/hmactest.c b/test/hmactest.c index 48c531e14d..babfb0e1a7 100644 --- a/test/hmactest.c +++ b/test/hmactest.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2020 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 @@ -7,6 +7,12 @@ * https://www.openssl.org/source/license.html */ +/* + * HMAC low level APIs are deprecated for public use, but still ok for internal + * use. + */ +#include "internal/deprecated.h" + #include #include #include @@ -38,10 +44,8 @@ static struct test_st { "e9139d1e6ee064ef8cf514fc7dc83e86", }, { - { - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, - }, 16, "Hi There", 8, + "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b", + 16, "Hi There", 8, "9294727a3638bb1c13f48ef8158bfc9d", }, { @@ -49,10 +53,8 @@ static struct test_st { "750c783e6ab0b503eaa86e310a5db738", }, { - { - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, - }, 16, { + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", + 16, { 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, @@ -173,6 +175,27 @@ static int test_hmac_run(void) if (!TEST_str_eq(p, test[6].digest)) goto err; + /* Test reusing a key */ + if (!TEST_true(HMAC_Init_ex(ctx, NULL, 0, NULL, NULL)) + || !TEST_true(HMAC_Update(ctx, test[6].data, test[6].data_len)) + || !TEST_true(HMAC_Final(ctx, buf, &len))) + goto err; + p = pt(buf, len); + if (!TEST_str_eq(p, test[6].digest)) + goto err; + + /* + * Test reusing a key where the digest is provided again but is the same as + * last time + */ + if (!TEST_true(HMAC_Init_ex(ctx, NULL, 0, EVP_sha256(), NULL)) + || !TEST_true(HMAC_Update(ctx, test[6].data, test[6].data_len)) + || !TEST_true(HMAC_Final(ctx, buf, &len))) + goto err; + p = pt(buf, len); + if (!TEST_str_eq(p, test[6].digest)) + goto err; + ret = 1; err: HMAC_CTX_free(ctx);