{"id":22367,"library":"signify","title":"signify","description":"signify is a Python library for generating and verifying Portable Executable (PE) digital signatures. The current version is 0.9.2. It requires Python >=3.9. The library provides tools to sign PE files and verify existing signatures, primarily for Windows executables. Release cadence is low; updates are infrequent.","status":"active","version":"0.9.2","language":"python","source_language":"en","source_url":"https://github.com/ralphje/signify","tags":["pe","signature","authenticode","security","windows"],"install":[{"cmd":"pip install signify","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"wrong":"from signify import sign","symbol":"sign","correct":"from signify import sign"},{"wrong":"from signify import verify","symbol":"verify","correct":"from signify import verify"},{"wrong":"from signify import cast","symbol":"cast","correct":"from signify import cast"}],"quickstart":{"code":"from signify import sign, verify\n\n# Sign a PE file\nsign('path/to/file.exe', 'path/to/certificate.pfx', 'password')\n\n# Verify a signature\nresult = verify('path/to/signed.exe')\nprint(result)","lang":"python","description":"Signs a PE file using a PFX certificate and verifies the signature."},"warnings":[{"fix":"Upgrade Python to 3.9 or later.","message":"The library requires Python >=3.9 and may not work on older versions.","severity":"breaking","affected_versions":"<0.9.0"},{"fix":"Ensure your certificate is in PFX format. Use OpenSSL to convert if needed.","message":"The signing function 'sign' expects a PFX file path and password. For other formats, manual conversion is needed.","severity":"gotcha","affected_versions":"all"},{"fix":"Use 'pefile' library to inspect PE structure before verification.","message":"Verification may fail on files without a signature block; check that the file indeed has a PE signature.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'0.9.2':20 '3.9':24 'authenticod':50 'cadenc':42 'current':17 'digit':14 'execut':12,40 'exist':35 'file':32 'generat':8 'infrequ':47 'librari':6,26 'low':44 'pe':13,31,48 'portabl':11 'primarili':37 'provid':27 'python':5,23 'releas':41 'requir':22 'secur':51 'sign':30 'signatur':15,36,49 'signifi':1,2 'tool':28 'updat':45 'verifi':10,34 'version':18 'window':39,52","created_at":"2026-04-27T17:04:47.581361+00:00","updated_at":"2026-04-27T17:04:47.581361+00:00","problems":{"verify_error":"Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\nImportError: cannot import name 'sign' from 'signify' (/tmp/tmpyo4sfmck/venv/lib/python3.12/site-packages/signify/__init__.py)"},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"0.9.2","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/ralphje/signify","docs":"http://signify.readthedocs.io/en/latest/","changelog":"https://signify.readthedocs.io/en/latest/changelog.html","pypi":"https://pypi.org/project/signify/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["auth-security","serialization"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"import_fail","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-07-10","install_tag":null}}