Branch data Line data Source code
# 1 : : // Copyright (c) 2014-2018 The Bitcoin Core developers # 2 : : // Distributed under the MIT software license, see the accompanying # 3 : : // file COPYING or http://www.opensource.org/licenses/mit-license.php. # 4 : : # 5 : : #ifndef BITCOIN_CRYPTO_HMAC_SHA512_H # 6 : : #define BITCOIN_CRYPTO_HMAC_SHA512_H # 7 : : # 8 : : #include <crypto/sha512.h> # 9 : : # 10 : : #include <stdint.h> # 11 : : #include <stdlib.h> # 12 : : # 13 : : /** A hasher class for HMAC-SHA-512. */ # 14 : : class CHMAC_SHA512 # 15 : : { # 16 : : private: # 17 : : CSHA512 outer; # 18 : : CSHA512 inner; # 19 : : # 20 : : public: # 21 : : static const size_t OUTPUT_SIZE = 64; # 22 : : # 23 : : CHMAC_SHA512(const unsigned char* key, size_t keylen); # 24 : : CHMAC_SHA512& Write(const unsigned char* data, size_t len) # 25 : 1394303 : { # 26 : 1394303 : inner.Write(data, len); # 27 : 1394303 : return *this; # 28 : 1394303 : } # 29 : : void Finalize(unsigned char hash[OUTPUT_SIZE]); # 30 : : }; # 31 : : # 32 : : #endif // BITCOIN_CRYPTO_HMAC_SHA512_H