diff options
author | hackyminer <hackyminer@gmail.com> | 2020-06-10 23:42:38 +0900 |
---|---|---|
committer | hackyminer <hackyminer@gmail.com> | 2020-06-10 23:42:38 +0900 |
commit | 6cd4612b341b6d5f0df0b604a1f2ee793539a0d9 (patch) | |
tree | 3ef7c38d45b150b4005391907815c9ff2eb75586 | |
parent | Deprecate libkeccak_{state,hmac}_{unmarshal_skip,marshal_size} and replace with the functions without the _skip or _size suffix (diff) | |
download | libkeccak-6cd4612b341b6d5f0df0b604a1f2ee793539a0d9.tar.gz libkeccak-6cd4612b341b6d5f0df0b604a1f2ee793539a0d9.tar.bz2 libkeccak-6cd4612b341b6d5f0df0b604a1f2ee793539a0d9.tar.xz |
support WIN32
-rw-r--r-- | common.h | 7 | ||||
-rw-r--r-- | libkeccak_generalised_sum_fd.c | 4 |
2 files changed, 11 insertions, 0 deletions
@@ -3,7 +3,14 @@ #include <sys/stat.h> +#if defined(__GLIBC__) || defined(__sun) || defined(__CYGWIN__) #include <alloca.h> +#elif defined(_WIN32) +#include <malloc.h> +#if !defined(alloca) +#define alloca _alloca // for clang with MS Codegen +#endif +#endif #include <errno.h> #include <unistd.h> diff --git a/libkeccak_generalised_sum_fd.c b/libkeccak_generalised_sum_fd.c index 7c4df54..879371b 100644 --- a/libkeccak_generalised_sum_fd.c +++ b/libkeccak_generalised_sum_fd.c @@ -19,16 +19,20 @@ libkeccak_generalised_sum_fd(int fd, struct libkeccak_state *restrict state, con const char *restrict suffix, void *restrict hashsum) { ssize_t got; +#ifndef _WIN32 struct stat attr; +#endif size_t blksize = 4096; void *restrict chunk; if (libkeccak_state_initialise(state, spec) < 0) return -1; +#ifndef _WIN32 if (fstat(fd, &attr) == 0) if (attr.st_blksize > 0) blksize = (size_t)attr.st_blksize; +#endif chunk = alloca(blksize); |