#include <string.h>
#include <netinet/in.h> /* htonl() */
+#include <net/ppp_defs.h>
#include "sha1.h"
static void
j = (context->count[0] >> 3) & 63;
if ((context->count[0] += len << 3) < (len << 3)) context->count[1]++;
context->count[1] += (len >> 29);
- if ((j + len) > 63) {
- memcpy(&context->buffer[j], data, (i = 64-j));
+ i = 64 - j;
+ while (len >= i) {
+ memcpy(&context->buffer[j], data, i);
SHA1_Transform(context->state, context->buffer);
- for ( ; i + 63 < len; i += 64) {
- SHA1_Transform(context->state, &data[i]);
- }
+ data += i;
+ len -= i;
+ i = 64;
j = 0;
}
- else
- i = 0;
- memcpy(&context->buffer[j], &data[i], len - i);
+ memcpy(&context->buffer[j], data, len);
}