Commit 181d6f2b authored by Niels Möller's avatar Niels Möller

* hmac.h: Declare functions SHA-512-related functions.

* hmac-sha512.c (hmac_sha512_set_key): New file.

Rev: nettle/hmac-sha512.c:1.1
Rev: nettle/hmac.h:1.2
parent 856e7578
/* hmac-sha512.c
*
* HMAC-SHA512 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_sha512_set_key(struct hmac_sha512_ctx *ctx,
unsigned key_length, const uint8_t *key)
{
HMAC_SET_KEY(ctx, &nettle_sha512, key_length, key);
}
void
hmac_sha512_update(struct hmac_sha512_ctx *ctx,
unsigned length, const uint8_t *data)
{
sha512_update(&ctx->state, length, data);
}
void
hmac_sha512_digest(struct hmac_sha512_ctx *ctx,
unsigned length, uint8_t *digest)
{
HMAC_DIGEST(ctx, &nettle_sha512, length, digest);
}
......@@ -48,6 +48,9 @@ extern "C" {
#define hmac_sha256_set_key nettle_hmac_sha256_set_key
#define hmac_sha256_update nettle_hmac_sha256_update
#define hmac_sha256_digest nettle_hmac_sha256_digest
#define hmac_sha512_set_key nettle_hmac_sha512_set_key
#define hmac_sha512_update nettle_hmac_sha512_update
#define hmac_sha512_digest nettle_hmac_sha512_digest
void
hmac_set_key(void *outer, void *inner, void *state,
......@@ -126,6 +129,21 @@ void
hmac_sha256_digest(struct hmac_sha256_ctx *ctx,
unsigned length, uint8_t *digest);
/* hmac-sha512 */
struct hmac_sha512_ctx HMAC_CTX(struct sha512_ctx);
void
hmac_sha512_set_key(struct hmac_sha512_ctx *ctx,
unsigned key_length, const uint8_t *key);
void
hmac_sha512_update(struct hmac_sha512_ctx *ctx,
unsigned length, const uint8_t *data);
void
hmac_sha512_digest(struct hmac_sha512_ctx *ctx,
unsigned length, uint8_t *digest);
#ifdef __cplusplus
}
#endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment