GameApi
28
Library used by GameApi Builder tool
Loading...
Searching...
No Matches
sha3.h
Go to the documentation of this file.
1
// //////////////////////////////////////////////////////////
2
// sha3.h
3
// Copyright (c) 2014,2015 Stephan Brumme. All rights reserved.
4
// see http://create.stephan-brumme.com/disclaimer.html
5
//
6
7
#pragma once
8
9
//#include "hash.h"
10
#include <string>
11
12
// define fixed size integer types
13
#ifdef _MSC_VER
14
// Windows
15
typedef
unsigned
__int8 uint8_t;
16
typedef
unsigned
__int64 uint64_t;
17
#else
18
// GCC
19
#include <stdint.h>
20
#endif
21
22
24
36
class
SHA3
//: public Hash
37
{
38
public
:
40
enum
Bits
{
Bits224
= 224,
Bits256
= 256,
Bits384
= 384,
Bits512
= 512 };
41
43
explicit
SHA3
(
Bits
bits =
Bits256
);
44
46
std::string
operator()
(
const
void
*
data
,
size_t
numBytes);
48
std::string
operator()
(
const
std::string& text);
49
51
void
add
(
const
void
*
data
,
size_t
numBytes);
52
54
std::string
getHash
();
55
57
void
reset
();
58
59
private
:
61
void
processBlock(
const
void
*
data
);
63
void
processBuffer();
64
66
enum
{ StateSize = 1600 / (8 * 8),
67
MaxBlockSize = 200 - 2 * (224 / 8) };
68
70
uint64_t m_hash[StateSize];
72
uint64_t m_numBytes;
74
size_t
m_blockSize;
76
size_t
m_bufferSize;
78
uint8_t m_buffer[MaxBlockSize];
80
Bits
m_bits;
81
};
SHA3::reset
void reset()
restart
Definition
sha3.cpp:25
SHA3::operator()
std::string operator()(const void *data, size_t numBytes)
compute hash of a memory block
Definition
sha3.cpp:275
SHA3::Bits
Bits
algorithm variants
Definition
sha3.h:40
SHA3::Bits224
@ Bits224
Definition
sha3.h:40
SHA3::Bits384
@ Bits384
Definition
sha3.h:40
SHA3::Bits256
@ Bits256
Definition
sha3.h:40
SHA3::Bits512
@ Bits512
Definition
sha3.h:40
SHA3::SHA3
SHA3(Bits bits=Bits256)
same as reset()
Definition
sha3.cpp:16
SHA3::add
void add(const void *data, size_t numBytes)
add arbitrary number of bytes
Definition
sha3.cpp:172
SHA3::getHash
std::string getHash()
return latest hash as hex characters
Definition
sha3.cpp:235
data
lazy data
Definition
meshpage.php:1583
chai
ChaiScript-6.1.0
src
sha3.h
Generated by
1.15.0