779 |
#define MAX_TIGER_CHUNK_SIZE 1024 |
#define MAX_TIGER_CHUNK_SIZE 1024 |
780 |
static word64 tiger_buffer[MAX_TIGER_CHUNK_SIZE]; |
static word64 tiger_buffer[MAX_TIGER_CHUNK_SIZE]; |
781 |
|
|
782 |
void tiger_hash(char prefix, char *s, int len, unsigned char *digest) |
void tiger_hash(char prefix, char *s, long len, unsigned char *digest) |
783 |
{ |
{ |
784 |
char *buffer = (char*) tiger_buffer; |
char *buffer = (char*) tiger_buffer; |
785 |
word64 ndigest[3]; |
word64 ndigest[3]; |
794 |
swap_digest(digest); |
swap_digest(digest); |
795 |
} |
} |
796 |
|
|
797 |
void tiger_tree_string(char *s, int len, int pos, int block_size, char *digest) |
void tiger_tree_string(char *s, size_t len, size_t pos, size_t block_size, char *digest) |
798 |
{ |
{ |
799 |
if(block_size == BLOCK_SIZE){ |
if(block_size == BLOCK_SIZE){ |
800 |
int length = (len - pos > BLOCK_SIZE) ? BLOCK_SIZE : len - pos; |
size_t length = (len - pos > BLOCK_SIZE) ? BLOCK_SIZE : len - pos; |
801 |
tiger_hash(0, s+pos, length, digest); |
tiger_hash(0, s+pos, length, digest); |
802 |
} else { |
} else { |
803 |
if(pos+block_size/2 >=len){ |
if(pos+block_size/2 >=len){ |
827 |
#include "caml/fail.h" |
#include "caml/fail.h" |
828 |
#include "caml/alloc.h" |
#include "caml/alloc.h" |
829 |
|
|
830 |
int tiger_block_size(int len) |
long tiger_block_size(long len) |
831 |
{ |
{ |
832 |
int block_size = BLOCK_SIZE; |
long block_size = BLOCK_SIZE; |
833 |
while(block_size < len) block_size *= 2; |
while(block_size < len) block_size *= 2; |
834 |
return block_size; |
return block_size; |
835 |
} |
} |