1 /**********************************************************************
2 * Copyright (c) 2014 Pieter Wuille *
3 * Distributed under the MIT software license, see the accompanying *
4 * file COPYING or http://www.opensource.org/licenses/mit-license.php.*
5 **********************************************************************/
7 #ifndef SECP256K1_HASH_H
8 #define SECP256K1_HASH_H
15 uint32_t buf[16]; /* In big endian */
19 static void secp256k1_sha256_initialize(secp256k1_sha256 *hash);
20 static void secp256k1_sha256_write(secp256k1_sha256 *hash, const unsigned char *data, size_t size);
21 static void secp256k1_sha256_finalize(secp256k1_sha256 *hash, unsigned char *out32);
24 secp256k1_sha256 inner, outer;
25 } secp256k1_hmac_sha256;
27 static void secp256k1_hmac_sha256_initialize(secp256k1_hmac_sha256 *hash, const unsigned char *key, size_t size);
28 static void secp256k1_hmac_sha256_write(secp256k1_hmac_sha256 *hash, const unsigned char *data, size_t size);
29 static void secp256k1_hmac_sha256_finalize(secp256k1_hmac_sha256 *hash, unsigned char *out32);
35 } secp256k1_rfc6979_hmac_sha256;
37 static void secp256k1_rfc6979_hmac_sha256_initialize(secp256k1_rfc6979_hmac_sha256 *rng, const unsigned char *key, size_t keylen);
38 static void secp256k1_rfc6979_hmac_sha256_generate(secp256k1_rfc6979_hmac_sha256 *rng, unsigned char *out, size_t outlen);
39 static void secp256k1_rfc6979_hmac_sha256_finalize(secp256k1_rfc6979_hmac_sha256 *rng);
41 #endif /* SECP256K1_HASH_H */