Change from bzip2 compression to lzip
[uccvend-snackrom.git] / ROM2 / crctest.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 typedef unsigned short u16;
5 typedef unsigned char bool;
6 #include "crctab.h"
7
8 unsigned short
9 docrc (unsigned char *p, int len, bool pad, unsigned short crcstart)
10 {
11   int len2 = len;
12   unsigned short crc = crcstart;
13
14   while (len-- > 0)
15     crc = (crc << 8) ^ crctab[(crc >> 8) ^ *p++];
16   if (pad && len2 < 128) {
17     len = 128-len;
18     while (len-- > 0)
19       crc = (crc << 8) ^ crctab[(crc >> 8) ^ 0x1a];
20   }
21
22   return crc;
23 }
24
25 int main(int argc, char** argv) {
26         unsigned short crc;
27         unsigned short msgid;
28         char *password, *message;
29         if (argc != 4) {
30                 fprintf(stderr, "Usage: %s <id> <password> <message>\n", argv[0]);
31                 return 1;
32         }
33         msgid = strtol(argv[1], NULL, 16);
34         password = argv[2];
35         message = argv[3];
36         crc = docrc(((char*)&msgid)+1, 1, 0, 0);
37         crc = docrc(((char*)&msgid), 1, 0, crc);
38         crc = docrc(password, strlen(password), 0, crc);
39         crc = docrc(message, strlen(message), 0, crc);
40         printf("%s|%04x\n", message, crc);
41         return 0;
42 }

UCC git Repository :: git.ucc.asn.au