Rizin
unix-like reverse engineering framework and cli tools
crc32.c
Go to the documentation of this file.
1 //
5 //
6 // Author: Lasse Collin
7 //
8 // This file has been put into the public domain.
9 // You can do whatever you want with this file.
10 //
12 
13 #include "sysdefs.h"
14 #include "lzma.h"
15 #include <stdio.h>
16 
17 
18 int
19 main(void)
20 {
21  uint32_t crc = 0;
22 
23  do {
24  uint8_t buf[BUFSIZ];
25  const size_t size = fread(buf, 1, sizeof(buf), stdin);
26  crc = lzma_crc32(buf, size, crc);
27  } while (!ferror(stdin) && !feof(stdin));
28 
29  //printf("%08" PRIX32 "\n", crc);
30 
31  // I want it little endian so it's easy to work with hex editor.
32  printf("%02" PRIX32 " ", crc & 0xFF);
33  printf("%02" PRIX32 " ", (crc >> 8) & 0xFF);
34  printf("%02" PRIX32 " ", (crc >> 16) & 0xFF);
35  printf("%02" PRIX32 " ", crc >> 24);
36  printf("\n");
37 
38  return 0;
39 }
_Use_decl_annotations_ int __cdecl printf(const char *const _Format,...)
Definition: cs_driver.c:93
voidpf void uLong size
Definition: ioapi.h:138
voidpf void * buf
Definition: ioapi.h:138
The public API of liblzma data compression library.
unsigned int uint32_t
Definition: sftypes.h:29
unsigned char uint8_t
Definition: sftypes.h:31
Common includes, definitions, system-specific things etc.
#define PRIX32
Definition: sysdefs.h:70
int main(void)
Definition: crc32.c:19