signify
Module to generate and verify PE signatures
What it is and what it does
Signify is a Python module for validating and inspecting Windows Authenticode signatures—the digital certificates embedded in or attached to Windows executables, MSI installers, and catalog files. It parses and verifies these signatures to confirm software authenticity and detect tampering, making it a tool for security professionals and malware analysts who need to inspect code signatures outside their normal Windows ecosystem.
The library depends on cryptographic and certificate validation packages (certvalidator, asn1crypto, oscrypto, mscerts, typing_extensions) to handle the low-level signature verification. It supports PE executables (.exe, .dll), MSI files, catalog files (.stl, .cat), and any file signed through a catalog. Installation is straightforward via pip, with optional full support for additional file types.
Use it for:
- Verify that a downloaded Windows executable is legitimately signed by its publisher before execution.
- Analyze malware samples to determine whether they carry valid or forged Authenticode signatures.
- Batch-validate software distributions in enterprise environments to detect unsigned or tampered binaries.
- Extract and inspect certificate chains and signature metadata from Windows PE files for forensic analysis.
- Validate MSI installer integrity as part of automated security scanning pipelines.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Validates and inspects Windows Authenticode digital signatures embedded in or attached to executable files, MSI installers, and catalog files to verify software authenticity and integrity.
Yes, if you need to validate Windows Authenticode signatures outside the Windows ecosystem or in automated security workflows. The low install friction, MIT license, and active maintenance make it a practical choice for security professionals and malware analysts. The aging status (226 days since release) suggests slower development pace but not abandonment; verify that its cryptographic dependencies remain current for your threat model.
Install
signify on PyPI
pip
pip install signifyuv
uv add signifypoetry
poetry add signifyInstalling signify
Before you install
Low friction installation with a pure-Python wheel. The package is in beta status and aging (226 days since last release), but the repository remains active with recent commits and no archived status.
License in practice
MIT license permits unrestricted use, modification, and distribution with minimal restrictions, making it suitable for both open-source and commercial security tooling.
Quickstart
pip install signify
from signify.pe import SignedPE
pe = SignedPE('path/to/executable.exe')
pe.verify()
Requires Python 3.9 or later. MSI file support requires the full installation variant (pip install signify[full]).
Verify before relying
- Whether the package can validate signatures against current Windows certificate chains or requires manual chain setup.
- Performance characteristics when processing large executables or batch-validating many files.
- Extent of support for non-standard or legacy Authenticode implementations.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — certvalidator, asn1crypto, oscrypto, mscerts, typing_extensions |
| Maintenance | aging — 226 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 111,575/month — #12,410 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: signify-0.9.2-py3-none-any.whl
Keywords: authenticode, authentihash, fingerprinter, pe
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
ansible-signGenerates and validates checksums and GPG…
permissive · top 15,000 on PyPI
cursiveCursive validates digital signatures using…
permissive · top 15,000 on PyPI
truelayer-signingProduces and verifies cryptographic signatures…
permissive · top 15,000 on PyPI
c2pa-pythonRead, validate, create, and sign C2PA manifest…
permissive · top 15,000 on PyPI
python-flirtParse, compile, and match FLIRT signatures…
permissive · top 15,000 on PyPI
signxmlSignXML implements W3C XML Signature (XMLDSig)…
permissive · top 5,000 on PyPI
ciris-verifyProvides Python bindings to verify…
agpl · top 15,000 on PyPI
endesiveEndesive signs and verifies digital signatures…
unclear · top 15,000 on PyPI
securesystemslibSecuresystemslib provides a cryptography…
permissive · top 5,000 on PyPI
pefilepefile reads and parses Portable Executable…
permissive · top 5,000 on PyPI