5 #include <openssl/sha.h> 23 void put(
const void * data,
int nbyte) {
25 SHA1_Update(&hash, data, nbyte);
27 memcpy(buffer+size, data, nbyte);
30 SHA1_Update(&hash, (
char*)buffer, size);
31 memcpy(buffer, data, nbyte);
36 put(block,
sizeof(block)*nblock);
40 SHA1_Update(&hash, (
char*)buffer, size);
43 SHA1_Final((
unsigned char *)a, &hash);
50 (void )SHA1((
const unsigned char *)data, nbyte, (
unsigned char *)digest);
55 return _mm_load_si128((__m128i*)&digest[0]);
57 void put_eb(
const eb_t * eb,
int length) {
59 for(
int i = 0; i < length; ++i) {
60 int eb_size = eb_size_bin(eb[i],
false);
61 eb_write_bin(buffer, eb_size, eb[i],
false);
void put_eb(const eb_t *eb, int length)
Definition: hash.h:57
void reset()
Definition: hash.h:45
__m128i block
Definition: block.h:8
Hash()
Definition: hash.h:18
~Hash()
Definition: hash.h:21
void put_block(const block *block, int nblock=1)
Definition: hash.h:35
void put(const void *data, int nbyte)
Definition: hash.h:23
#define HASH_BUFFER_SIZE
Definition: config.h:5
void digest(char *a)
Definition: hash.h:38
static const int DIGEST_SIZE
Definition: hash.h:17
static block hash_for_block(const void *data, int nbyte)
Definition: hash.h:52
static void hash_once(void *digest, const void *data, int nbyte)
Definition: hash.h:49