Skip to main content

Logchecker for logs generated by EAC

Project description

EAC Logchecker

Travis-CI Status PyPI

This is a transparent implementation of the Exact Audio Copy log checksum algorithm in Python 3.5+.

This is a fork of, with modifications to have it better match the output of the actual EAC Logchecker to be used in downstream applications. All credit goes to puddly for reverse-engineering the closed source EAC to develop the base.


  • Python 3.5+
  • pprp==0.2.6


From PyPI:

$ pip install eac-logchecker

From source:

$ git clone
$ cd
$ python install


usage: [-h] [--json] file

Verifies and resigns EAC logs

positional arguments:
file        input log file

optional arguments:
-h, --help  show this help message and exit
--json      Output as JSON


$ eac_logchecker logs/01.log
Log Integrity Checker   (C) 2010 by Andre Wiethoff

1. Log entry is fine!
$ eac_logchecker logs/01.log
$ eac_logchecker logs/05.log
Log Integrity Checker   (C) 2010 by Andre Wiethoff

1. Log entry is fine!
2. Log entry is fine!
$ eac_logchecker --json logs/05.log
[{"message": "Log entry is fine!", "status": "OK"}, {"message": "Log entry is fine!", "status": "OK"}]


  1. Strip the log file of newlines and BOMs.
  2. Cut off the existing signature block and (re-)encode the log text back into little-endian UTF-16
  3. Encrypt the log file with Rijndael-256:
    • in CBC mode
    • with a 256-bit block size (most AES implementations hard-code a 128-bit block size)
    • all-zeroes IV
    • zero-padding
    • the hex key 9378716cf13e4265ae55338e940b376184da389e50647726b35f6f341ee3efd9
  4. XOR together all of the resulting 256-bit ciphertext blocks. You can do it byte-by-byte, it doesn't matter in the end.
  5. Output the little-endian representation of the above number, in uppercase hex.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for eac-logchecker, version 0.8.1
Filename, size File type Python version Upload date Hashes
Filename, size eac_logchecker-0.8.1.tar.gz (5.0 kB) File type Source Python version None Upload date Hashes View
Filename, size eac_logchecker-0.8.1-py3-none-any.whl (5.7 kB) File type Wheel Python version py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page