Edit

kc3-lang/brotli/scripts/dictionary/step-03-validate-bin.py

Branch :

  • Show log

    Commit

  • Author : Eugene Kliuchnikov
    Date : 2018-05-16 12:59:09
    Hash : a4581c15
    Message : Add tools to download and transform static dictionary data. (#670)

  • scripts/dictionary/step-03-validate-bin.py
  • # Step 03 - validate raw dictionary file.
    #
    # CRC32, MD5, SHA1 and SHA256 checksums for raw binary dictionary are checked.
    
    import hashlib
    import zlib
    
    bin_path = "dictionary.bin"
    
    with open(bin_path, "rb") as raw:
      data = raw.read()
    
    def check_digest(name, expected, actual):
      if expected == actual:
        print("[OK] " + name)
      else:
        print("[ERROR] " + name + " | " + expected + " != " + actual)
    
    
    check_digest(
        "CRC32",  # This is the only checksum provided in RFC.
        "0x5136cb04",
        hex(zlib.crc32(data)))
    
    check_digest(
        "MD5",
        "96cecd2ee7a666d5aa3627d74735b32a",
        hashlib.md5(data).hexdigest())
    
    check_digest(
        "SHA1",
        "72b41051cb61a9281ba3c4414c289da50d9a7640",
        hashlib.sha1(data).hexdigest())
    
    check_digest(
        "SHA256",
        "20e42eb1b511c21806d4d227d07e5dd06877d8ce7b3a817f378f313653f35c70",
        hashlib.sha256(data).hexdigest())