#define HEADER_SHA_H
#include <openssl/e_os2.h>
+#include <stddef.h>
#ifdef __cplusplus
extern "C" {
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*/
-#if defined(OPENSSL_SYS_WIN16) || defined(__LP32__)
+#if defined(__LP32__)
#define SHA_LONG unsigned long
#elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__)
#define SHA_LONG unsigned long
SHA_LONG h0,h1,h2,h3,h4;
SHA_LONG Nl,Nh;
SHA_LONG data[SHA_LBLOCK];
- int num;
+ unsigned int num;
} SHA_CTX;
#ifndef OPENSSL_NO_SHA0
#define SHA384_DIGEST_LENGTH 48
#define SHA512_DIGEST_LENGTH 64
+#ifndef OPENSSL_NO_SHA512
/*
* Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64
* being exactly 64-bit wide. See Implementation Notes in sha512.c
#if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__)
#define SHA_LONG64 unsigned __int64
#define U64(C) C##UI64
+#elif defined(__arch64__)
+#define SHA_LONG64 unsigned long
+#define U64(C) C##UL
#else
#define SHA_LONG64 unsigned long long
#define U64(C) C##ULL
} u;
unsigned int num,md_len;
} SHA512_CTX;
+#endif
#ifndef OPENSSL_NO_SHA512
int SHA384_Init(SHA512_CTX *c);