Skip to content
Snippets Groups Projects
Commit 2786545b authored by Niels Möller's avatar Niels Möller
Browse files

New file.

Rev: nettle/hmac-sha384.c:1.1
Rev: nettle/hmac.h:1.3
Rev: nettle/testsuite/sha224-test.c:1.1
parent 5c1b6512
No related branches found
No related tags found
No related merge requests found
/* hmac-sha384.c
*
* HMAC-SHA384 message authentication code.
*/
/* nettle, low-level cryptographics library
*
* Copyright (C) 2003, 2010 Niels Mller
*
* The nettle library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or (at your
* option) any later version.
*
* The nettle library 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 Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with the nettle library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
* MA 02111-1307, USA.
*/
#if HAVE_CONFIG_H
# include "config.h"
#endif
#include "hmac.h"
void
hmac_sha384_set_key(struct hmac_sha512_ctx *ctx,
unsigned key_length, const uint8_t *key)
{
HMAC_SET_KEY(ctx, &nettle_sha384, key_length, key);
}
void
hmac_sha384_digest(struct hmac_sha512_ctx *ctx,
unsigned length, uint8_t *digest)
{
HMAC_DIGEST(ctx, &nettle_sha384, length, digest);
}
......@@ -144,6 +144,19 @@ void
hmac_sha512_digest(struct hmac_sha512_ctx *ctx,
unsigned length, uint8_t *digest);
/* hmac-sha384 */
#define hmac_sha384_ctx hmac_sha512_ctx
void
hmac_sha384_set_key(struct hmac_sha512_ctx *ctx,
unsigned key_length, const uint8_t *key);
#define hmac_sha384_update hmac_sha512_update
void
hmac_sha384_digest(struct hmac_sha512_ctx *ctx,
unsigned length, uint8_t *digest);
#ifdef __cplusplus
}
#endif
......
#include "testutils.h"
#include "sha.h"
int
test_main(void)
{
/* From FIPS180-2 addendum
(http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf) */
test_hash(&nettle_sha224, 3, "abc",
H("23097d22 3405d822 8642a477 bda255b3"
"2aadbce4 bda0b3f7 e36c9da7"));
test_hash(&nettle_sha224, 56,
"abcdbcdecdefdefgefghfghighij"
"hijkijkljklmklmnlmnomnopnopq",
H("75388b16 512776cc 5dba5da1 fd890150"
"b0c6455c b4f58b19 52522525"));
/* Additional test vectors, from Daniel Kahn Gillmor */
test_hash(&nettle_sha224, LDATA(""),
H("d14a028c2a3a2bc9 476102bb288234c4"
"15a2b01f828ea62a c5b3e42f"));
test_hash(&nettle_sha224, LDATA("a"),
H("abd37534c7d9a2ef b9465de931cd7055"
"ffdb8879563ae980 78d6d6d5"));
test_hash(&nettle_sha224, LDATA("38"),
H("4cfca6da32da6471 98225460722b7ea1"
"284f98c4b179e8db ae3f93d5"));
test_hash(&nettle_sha224, LDATA("message digest"),
H("2cb21c83ae2f004d e7e81c3c7019cbcb"
"65b71ab656b22d6d 0c39b8eb"));
test_hash(&nettle_sha224, LDATA("abcdefghijklmnopqrstuvwxyz"),
H("45a5f72c39c5cff2 522eb3429799e49e"
"5f44b356ef926bcf 390dccc2"));
test_hash(&nettle_sha224,
LDATA("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef"
"ghijklmnopqrstuvwxyz0123456789"),
H("bff72b4fcb7d75e5 632900ac5f90d219"
"e05e97a7bde72e74 0db393d9"));
test_hash(&nettle_sha224,
LDATA("12345678901234567890123456789012"
"34567890123456789012345678901234"
"5678901234567890"),
H("b50aecbe4e9bb0b5 7bc5f3ae760a8e01"
"db24f203fb3cdcd1 3148046e"));
SUCCESS();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment