X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=sshcrc.c;h=a993e98b716533b895d7a768faa80b51506bcca5;hb=2718165f013bde5811ec37022fb5bfbdbb984895;hp=fb0db0cac712adc5c9433970fcf20e6b44cda69b;hpb=3730ada5ce457468441b32d7e84157e481b8ba75;p=PuTTY.git diff --git a/sshcrc.c b/sshcrc.c index fb0db0ca..a993e98b 100644 --- a/sshcrc.c +++ b/sshcrc.c @@ -69,17 +69,19 @@ #include +#include "ssh.h" + /* ---------------------------------------------------------------------- * Multi-function module. Can be compiled three ways. * * - Compile with no special #defines. Will generate a table * that's already initialised at compile time, and one function - * crc32(buf,len) that uses it. Normal usage. + * crc32_compute(buf,len) that uses it. Normal usage. * * - Compile with INITFUNC defined. Will generate an uninitialised - * array as the table, and as well as crc32(buf,len) it will - * also generate void crc32_init(void) which sets up the table - * at run time. Useful if binary size is important. + * array as the table, and as well as crc32_compute(buf,len) it + * will also generate void crc32_init(void) which sets up the + * table at run time. Useful if binary size is important. * * - Compile with GENPROGRAM defined. Will create a standalone * program that does the initialisation and outputs the table as @@ -196,12 +198,11 @@ static const unsigned long crc32_table[256] = { #ifdef GENPROGRAM int main(void) { - unsigned long crcword; int i; crc32_init(); for (i = 0; i < 256; i++) { - printf("%s0x%08XL%s", + printf("%s0x%08lXL%s", (i % 4 == 0 ? " " : " "), crc32_table[i], (i % 4 == 3 ? (i == 255 ? "\n" : ",\n") : ",")); @@ -211,9 +212,8 @@ int main(void) } #endif -unsigned long crc32(const void *buf, size_t len) +unsigned long crc32_update(unsigned long crcword, const void *buf, size_t len) { - unsigned long crcword = 0L; const unsigned char *p = (const unsigned char *) buf; while (len--) { unsigned long newbyte = *p++; @@ -222,3 +222,8 @@ unsigned long crc32(const void *buf, size_t len) } return crcword; } + +unsigned long crc32_compute(const void *buf, size_t len) +{ + return crc32_update(0L, buf, len); +}