| 129 | /* Run your data through this. */ |
| 130 | |
| 131 | void SHA1Update(SHA1_CTX* context, const unsigned char* data, uint32_t len) |
| 132 | { |
| 133 | uint32_t i, j; |
| 134 | |
| 135 | j = context->count[0]; |
| 136 | if ((context->count[0] += len << 3) < j) |
| 137 | context->count[1]++; |
| 138 | context->count[1] += (len>>29); |
| 139 | j = (j >> 3) & 63; |
| 140 | if ((j + len) > 63) { |
| 141 | memcpy(&context->buffer[j], data, (i = 64-j)); |
| 142 | SHA1Transform(context->state, context->buffer); |
| 143 | for ( ; i + 63 < len; i += 64) { |
| 144 | SHA1Transform(context->state, &data[i]); |
| 145 | } |
| 146 | j = 0; |
| 147 | } |
| 148 | else i = 0; |
| 149 | memcpy(&context->buffer[j], &data[i], len - i); |
| 150 | } |
| 151 | |
| 152 | |
| 153 | /* Add padding and return the message digest. */ |