Skip to main content

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 https://github.com/puddly/eac_logsigner, 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.

Requirements

  • Python 3.5+
  • pprp==0.2.6

Installation

From PyPI:

$ pip install eac-logchecker

From source:

$ git clone https://github.com/OPSnet/eac_logchecker.py
$ cd eac_logchecker.py
$ python setup.py install

Usage

usage: eac_logchecker.py [-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

Example

$ 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"}]

Algorithm

  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.

Metadata

Release files for eac-logchecker 0.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eac-logchecker 0.8.1
File Size Uploaded Provenance
eac_logchecker-0.8.1.tar.gz 5.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for eac-logchecker 0.8.1
File Interpreter ABI Platform
eac_logchecker-0.8.1-py3-none-any.whl Python 3 none any Details

Total release size: 10.7 kB

Release files / eac_logchecker-0.8.1.tar.gz

Download URL eac_logchecker-0.8.1.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
681d83ec8ee7b581a394e190bf50f91929ac34a12af0584609bb71fa427ea177
BLAKE2b-256 checksum
How to use checksums
fe2cf01a9a6d8b0fb70aa5db561b51f674e67b46bf6a95a7c92d6dfccf6165c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.7

Release files / eac_logchecker-0.8.1-py3-none-any.whl

Download URL eac_logchecker-0.8.1-py3-none-any.whl
Size 5.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
374cad78dcbf5df3c86ff96693e4b81ab9c47f7aad378488221bc3fb4bbbeac9
BLAKE2b-256 checksum
How to use checksums
a1a4a9cd81196b79145d261e4b1f8b8aaa0bd1e6157da404ca718c075c116360
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.7

Security for eac-logchecker 0.8.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page