43 #include <sys/types.h>
45 #ifdef SHA2_USE_INTTYPES_H
53 #define SHA256_BLOCK_LENGTH 64
54 #define SHA256_DIGEST_LENGTH 32
55 #define SHA256_DIGEST_STRING_LENGTH (SHA256_DIGEST_LENGTH * 2 + 1)
56 #define SHA384_BLOCK_LENGTH 128
57 #define SHA384_DIGEST_LENGTH 48
58 #define SHA384_DIGEST_STRING_LENGTH (SHA384_DIGEST_LENGTH * 2 + 1)
59 #define SHA512_BLOCK_LENGTH 128
60 #define SHA512_DIGEST_LENGTH 64
61 #define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1)
70 typedef unsigned char u_int8_t;
71 typedef unsigned int u_int32_t;
72 typedef unsigned long long u_int64_t;
90 #ifdef SHA2_USE_INTTYPES_H
95 uint8_t buffer[SHA256_BLOCK_LENGTH];
100 uint8_t buffer[SHA512_BLOCK_LENGTH];
108 u_int8_t buffer[SHA256_BLOCK_LENGTH];
112 u_int64_t bitcount[2];
113 u_int8_t buffer[SHA512_BLOCK_LENGTH];
123 #ifdef SHA2_USE_INTTYPES_H
126 void SHA256_Update(
SHA256_CTX*,
const uint8_t*,
size_t);
127 void SHA256_Final(uint8_t[SHA256_DIGEST_LENGTH],
SHA256_CTX*);
128 char* SHA256_End(
SHA256_CTX*,
char[SHA256_DIGEST_STRING_LENGTH]);
129 char* SHA256_Data(
const uint8_t*,
size_t,
char[SHA256_DIGEST_STRING_LENGTH]);
132 void SHA384_Update(
SHA384_CTX*,
const uint8_t*,
size_t);
133 void SHA384_Final(uint8_t[SHA384_DIGEST_LENGTH],
SHA384_CTX*);
134 char* SHA384_End(
SHA384_CTX*,
char[SHA384_DIGEST_STRING_LENGTH]);
135 char* SHA384_Data(
const uint8_t*,
size_t,
char[SHA384_DIGEST_STRING_LENGTH]);
138 void SHA512_Update(
SHA512_CTX*,
const uint8_t*,
size_t);
139 void SHA512_Final(uint8_t[SHA512_DIGEST_LENGTH],
SHA512_CTX*);
140 char* SHA512_End(
SHA512_CTX*,
char[SHA512_DIGEST_STRING_LENGTH]);
141 char* SHA512_Data(
const uint8_t*,
size_t,
char[SHA512_DIGEST_STRING_LENGTH]);
146 void SHA256_Update(
SHA256_CTX*,
const u_int8_t*,
size_t);
147 void SHA256_Final(u_int8_t[SHA256_DIGEST_LENGTH],
SHA256_CTX*);
148 char* SHA256_End(
SHA256_CTX*,
char[SHA256_DIGEST_STRING_LENGTH]);
149 char* SHA256_Data(
const u_int8_t*,
size_t,
char[SHA256_DIGEST_STRING_LENGTH]);
152 void SHA384_Update(
SHA384_CTX*,
const u_int8_t*,
size_t);
153 void SHA384_Final(u_int8_t[SHA384_DIGEST_LENGTH],
SHA384_CTX*);
154 char* SHA384_End(
SHA384_CTX*,
char[SHA384_DIGEST_STRING_LENGTH]);
155 char* SHA384_Data(
const u_int8_t*,
size_t,
char[SHA384_DIGEST_STRING_LENGTH]);
158 void SHA512_Update(
SHA512_CTX*,
const u_int8_t*,
size_t);
159 void SHA512_Final(u_int8_t[SHA512_DIGEST_LENGTH],
SHA512_CTX*);
160 char* SHA512_End(
SHA512_CTX*,
char[SHA512_DIGEST_STRING_LENGTH]);
161 char* SHA512_Data(
const u_int8_t*,
size_t,
char[SHA512_DIGEST_STRING_LENGTH]);
168 void SHA256_Update();
174 void SHA384_Update();
180 void SHA512_Update();