• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Step 03 - validate raw dictionary file.
2#
3# CRC32, MD5, SHA1 and SHA256 checksums for raw binary dictionary are checked.
4
5import hashlib
6import zlib
7
8bin_path = "dictionary.bin"
9
10with open(bin_path, "rb") as raw:
11  data = raw.read()
12
13def check_digest(name, expected, actual):
14  if expected == actual:
15    print("[OK] " + name)
16  else:
17    print("[ERROR] " + name + " | " + expected + " != " + actual)
18
19
20check_digest(
21    "CRC32",  # This is the only checksum provided in RFC.
22    "0x5136cb04",
23    hex(zlib.crc32(data)))
24
25check_digest(
26    "MD5",
27    "96cecd2ee7a666d5aa3627d74735b32a",
28    hashlib.md5(data).hexdigest())
29
30check_digest(
31    "SHA1",
32    "72b41051cb61a9281ba3c4414c289da50d9a7640",
33    hashlib.sha1(data).hexdigest())
34
35check_digest(
36    "SHA256",
37    "20e42eb1b511c21806d4d227d07e5dd06877d8ce7b3a817f378f313653f35c70",
38    hashlib.sha256(data).hexdigest())
39