68#if COAP_WS_SUPPORT && !defined(COAP_WITH_LIBOPENSSL) && !defined(COAP_WITH_LIBGNUTLS) && !defined(COAP_WITH_LIBMBEDTLS) && !defined(COAP_WITH_LIBWOLFSSL)
72#define SHA1CircularShift(bits,word) \
73 (((word) << (bits)) | ((word) >> (32-(bits))))
140 if (!context || !Message_Digest) {
149 SHA1PadMessage(context);
150 for (i=0; i<64; ++i) {
161 >> 8 * (3 - (i & 0x03));
189 const uint8_t *message_array,
195 if (!context || !message_array) {
207 while (length-- && !context->
Corrupted) {
209 (*message_array & 0xFF);
221 SHA1ProcessMessageBlock(context);
252 const uint32_t K[] = {
261 uint32_t A, B, C, D, E;
266 for (t = 0; t < 16; t++) {
273 for (t = 16; t < 80; t++) {
274 W[t] = SHA1CircularShift(1,W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16]);
283 for (t = 0; t < 20; t++) {
284 temp = SHA1CircularShift(5,A) +
285 ((B & C) | ((~B) & D)) + E + W[t] + K[0];
288 C = SHA1CircularShift(30,B);
293 for (t = 20; t < 40; t++) {
294 temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[1];
297 C = SHA1CircularShift(30,B);
302 for (t = 40; t < 60; t++) {
303 temp = SHA1CircularShift(5,A) +
304 ((B & C) | (B & D) | (C & D)) + E + W[t] + K[2];
307 C = SHA1CircularShift(30,B);
312 for (t = 60; t < 80; t++) {
313 temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[3];
316 C = SHA1CircularShift(30,B);
368 SHA1ProcessMessageBlock(context);
392 SHA1ProcessMessageBlock(context);
Library specific build wrapper for coap_internal.h.
int SHA1Result(SHA1Context *, uint8_t Message_Digest[SHA1HashSize])
int SHA1Reset(SHA1Context *)
int SHA1Input(SHA1Context *, const uint8_t *, unsigned int)
uint32_t Intermediate_Hash[SHA1HashSize/4]
uint8_t Message_Block[64]
int_least16_t Message_Block_Index