X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=hmac-sha256.h;h=4df6af5e93f37f8fefd6f7a0de88e6705b30c006;hb=53f8a8d7ca5c03120224128e1f8552c99f6af11e;hp=9bdd560d0432ffb60df33f4f87774ef31ee61ff5;hpb=38806fc75038026e167a26eff90b6111066a3642;p=avr-crypto-lib.git diff --git a/hmac-sha256.h b/hmac-sha256.h index 9bdd560..4df6af5 100644 --- a/hmac-sha256.h +++ b/hmac-sha256.h @@ -1,17 +1,43 @@ +/* hmac-sha256.h */ +/* + This file is part of the AVR-Crypto-Lib. + Copyright (C) 2008 Daniel Otte (daniel.otte@rub.de) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ #ifndef HMACSHA256_H_ #define HMACSHA256_H_ #include "sha256.h" -#define HMAC_BITS SHA256_HASH_BITS -#define HMAC_BYTES (HMAC_BITS/8) +#define HMAC_SHA256_BITS SHA256_HASH_BITS +#define HMAC_SHA256_BYTES SHA256_HASH_BYTES +#define HMAC_SHA256_BLOCK_BITS SHA256_BLOCK_BITS +#define HMAC_SHA256_BLOCK_BYTES SHA256_BLOCK_BYTES + + +typedef struct { + sha256_ctx_t a,b; +} hmac_sha256_ctx_t; -typedef sha256_ctx_t hmac_sha256_ctx_t; +void hmac_sha256_init(hmac_sha256_ctx_t *s, const void* key, uint16_t keylength_b); +void hmac_sha256_nextBlock(hmac_sha256_ctx_t *s, const void* block); +void hmac_sha256_lastBlock(hmac_sha256_ctx_t *s, const void* block, uint16_t length_b); +void hmac_sha256_final(void* dest, hmac_sha256_ctx_t *s); -void hmac_sha256_init(hmac_sha256_ctx_t *s, void* key, uint16_t kl); -void hmac_sha256_final(hmac_sha256_ctx_t *s, void* key, uint16_t kl); -void hmac_sha256(void* dest, void* key, uint16_t kl, void* msg, uint64_t ml); +void hmac_sha256(void* dest, const void* key, uint16_t keylength_b, const void* msg, uint32_t msglength_b); #endif /*HMACSHA256_H_*/