Skip to main content

Simple CLI to stamp and verify PDFs with sidecars (execution-only).

Project description

InkDNA Fingerprint (Simple CLI — PDF only)

A lean, Windows-friendly CLI to stamp and verify PDFs.

What it does

  • stamp: embeds a compact InkDNA payload inside the PDF and writes a sidecar JSON next to the output (*_inkdna_signature.json).
  • verify: reads the embedded payload and recomputes a canonical hash of the page content streams (ignoring our own payload). Optionally, pass a sidecar to cross-check. Prints full forensic details every time.

No activation, no licensing, no remote calls. Execution-only.


Install (from PyPI)

py -m pip install --upgrade pip
py -m pip install --upgrade inkdna-fingerprint-legacy

This installs the inkdna command.

(Optional) Install from source (developers)

:: from the project root containing pyproject.toml
py -m pip install --upgrade pip
py -m pip install .

Usage

Stamp

inkdna stamp "C:\\path\\input.pdf" -o "C:\\path\\output.pdf" --code "ORDER-123"
  • Always writes a sidecar: output_inkdna_signature.json

Verify (sidecar optional)

inkdna verify "C:\\path\\output.pdf"
inkdna verify "C:\\path\\output.pdf" --sidecar "C:\\path\\output_inkdna_signature.json"

Output (forensic JSON)

  • ok: true if the canonical hash matches.
  • embedded: payload embedded in the PDF (issuer, version, timestamp, code, file type, canonical hash, page count).
  • recomputed_canon_sha256: hash recomputed from page content streams (our own tiny marker stream is ignored).
  • page_streams: per-page stream counts and sizes.
  • sidecar_payload and sidecar_mismatches when a sidecar is supplied.

Note: The canonical hash is derived from page content streams only and does not include the code or timestamp. Stamping the same PDF multiple times yields the same canonical hash. Any real change to page content will change the hash.

Exit codes

  • 0 — verification passed (ok: true)
  • 1 — verification failed
  • 2 — input/usage error

Sidecar naming rule

<output_basename>_inkdna_signature.json Example: Resume_inkdna.pdfResume_inkdna_inkdna_signature.json.


License

MIT

Version

0.1.3

Project details


Download files

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

Source Distribution

inkdna_fingerprint_legacy-0.1.3.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

inkdna_fingerprint_legacy-0.1.3-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file inkdna_fingerprint_legacy-0.1.3.tar.gz.

File metadata

File hashes

Hashes for inkdna_fingerprint_legacy-0.1.3.tar.gz
Algorithm Hash digest
SHA256 d0c818b4eae94ae3adfb569d9f477f13141492a5b95d95e98d0a70b5a5f05518
MD5 f9e640daf5069f1ab622abea6046ea81
BLAKE2b-256 390fbff2e3370f7195a5c938766b6ae0ccc78f8189daea101fc3ba8b251d1ee8

See more details on using hashes here.

File details

Details for the file inkdna_fingerprint_legacy-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for inkdna_fingerprint_legacy-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f57f5d9fe2ee758c822811b6b1b71fbed60e617e7d7ecbd95de881137ef07681
MD5 bb532066b98ebf8db3bdeb83dd8879ad
BLAKE2b-256 5fca0e48631d9de33642742fe4b098a75123335d88f28ad335384010381eecf9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page