{ "info": { "author": "Joel Maher", "author_email": "jmaher@mozilla.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9" ], "description": "=======\nwinsign\n=======\n\n.. image:: https://img.shields.io/pypi/v/winsign.svg\n :target: https://pypi.python.org/pypi/winsign\n\n.. image:: https://readthedocs.org/projects/winsign/badge/?version=latest\n :target: https://winsign.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n`winsign` is a python module for signing and manipulating `Authenticode\n`_ signatures in PE and MSI files.\n\n* Works on Python 3.6 and up.\n* Free software: MPL2\n\nRequirements\n============\nMost dependencies are specified in requirements/base.txt, however, currently\nyou also need `osslsigncode` installed to perform signing. This utility can be\nfetched from your distribution's package repository, or from e.g.\nhttps://github.com/theuni/osslsigncode\n\nSigning MSIX/APPX files currently requires Mozilla's fork of `msix-packaging\n`_.\n\nInstallation\n============\n`pip install winsign`\n\nCLI Usage\n=========\n::\n\n usage: winsign [-h] --certs CERTS --key PRIV_KEY [-n COMMENT] [-i URL] -d\n {sha1,sha256} [-t {old,rfc3161}] [-v] [-q]\n infile [outfile]\n\n positional arguments:\n infile unsigned file to sign\n outfile where to write output to. defaults to infile\n\n optional arguments:\n -h, --help show this help message and exit\n --certs CERTS certificates to include in the signature\n --key PRIV_KEY private key used to sign\n -n COMMENT comment to include in signature\n -i URL url to include in signature\n -d {sha1,sha256} digest to use for signing. must be one of sha1 or sha256\n -t {old,rfc3161}\n -v, --verbose\n -q, --quiet\n\nFuture plans\n============\n* Stop using osslsigncode for PE signatures\n* Refactor code so that osslsigncode functionality is in its own module\n* Add python support for MSI, then we can drop dependency on osslsigncode\n\nDevelopment\n===========\nHighly recommended to create a virtualenv, then run:\n * *python setup.py develop*\n * make your changes to the source files\n * run local tests: *tox*\n\nupon successful r+ and merging to *master* branch, you need to release a new version on PyPi.\n * edit setup.py to adjust the version\n * generate .whl file locally: *python setup.py bdist_wheel*\n * file will exist in: *./dist/winsign-{version}-py3-none-any.whl*\n * (assuming you have pypi access to upload)\n * upload to pypi: *twine upload --verbose dist/winsign-{version}-py3-none-any.whl*\n\nCredits\n=======\n\n* Chris AtLee\n* Ben Hearsum \n* Joel Maher \n\n\nHistory\n=======\n\n2.2.3 (2021-11-26)\n------------------\n* make timestampfile an argument to sign_file and use with -untrusted\n\n2.2.2 (2021-10-20)\n------------------\n* make CAfile an argument to sign_file\n* small tweaks to readme, history, version number\n\n2.2.0 (2021-10-13)\n------------------\n* Added support for osslsigncode 2.1+ (required -CAfile cli)\n* updated documentation for packaging and ownership\n\n2.1.0 (2021-07-14)\n------------------\n* Added support for MSIX/APPX signing\n\n2.0.0 (2019-10-17)\n------------------\n* Breaking API: Some functions are now async. In particular, the top-level\n `sign_file` function is now an async function.\n* Restructured module layout\n* Added docs\n\n1.3.0 (2019-09-12)\n------------------\n\n* Fixed old style timestamp generation\n* Added signature verification code\n* Removed autograph support. Client code can implement their own autograph\n signing hooks for `winsign.sign.sign_file`\n\n1.2.0 (2019-09-10)\n------------------\n\n* Updated logging so that is_signed doesn't produce error logs when files aren't signed\n\n1.1.0 (2019-09-05)\n------------------\n\n* Added is_signed method to check if files are signed\n\n\n1.0.0 (2019-08-30)\n------------------\n\n* First release\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mozilla/winsign", "keywords": "winsign", "license": "MPL2.0", "maintainer": "", "maintainer_email": "", "name": "winsign", "package_url": "https://pypi.org/project/winsign/", "platform": "", "project_url": "https://pypi.org/project/winsign/", "project_urls": { "Homepage": "https://github.com/mozilla/winsign" }, "release_url": "https://pypi.org/project/winsign/2.2.3/", "requires_dist": [ "construct", "cryptography", "pyasn1", "pyasn1-modules" ], "requires_python": "", "summary": "Utilities to support code signing Windows executable files", "version": "2.2.3", "yanked": false, "yanked_reason": null }, "last_serial": 13183955, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "6dc408045f4fe4538346ae38ea29c80f", "sha256": "0cff4caf76c92f3ce19678b1b3dcd649387690d9140646270d57dea6bf85c426" }, "downloads": -1, "filename": "winsign-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6dc408045f4fe4538346ae38ea29c80f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12749, "upload_time": "2019-08-29T14:40:44", "upload_time_iso_8601": "2019-08-29T14:40:44.051638Z", "url": "https://files.pythonhosted.org/packages/ad/76/9715e5e1c45fb0714d8df313a465de89c62c8052ccee9fa7446829e8e619/winsign-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "4e77a3cc8291816559be5894900389f6", "sha256": "7b404dfc20e410f137cca63f2d30a79e3e548ac22c4823d70338771d58fa14ad" }, "downloads": -1, "filename": "winsign-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4e77a3cc8291816559be5894900389f6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12904, "upload_time": "2019-09-05T14:54:49", "upload_time_iso_8601": "2019-09-05T14:54:49.788462Z", "url": "https://files.pythonhosted.org/packages/7e/a6/9c55ac560bc129c9bc927d78ccd263b494682963fcbab5ae4808f865aa87/winsign-1.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "8b38cd5e948e2f0e5a457ed8151e0c40", "sha256": "5d868743c86750a3509b29400780996159d84ec3119b496c57ced2593133466d" }, "downloads": -1, "filename": "winsign-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8b38cd5e948e2f0e5a457ed8151e0c40", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12939, "upload_time": "2019-09-10T16:02:17", "upload_time_iso_8601": "2019-09-10T16:02:17.912843Z", "url": "https://files.pythonhosted.org/packages/a9/72/5da126ede8792cf93c7db3eddf17037955ea87009a2b3cb7c820d8c6b67c/winsign-1.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "37322b0d218d14719b6791ef0e62bf06", "sha256": "2d0411ae8d0ad760f1216e71cbaf02412debd194f4ca6d89216179de964f3738" }, "downloads": -1, "filename": "winsign-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "37322b0d218d14719b6791ef0e62bf06", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17201, "upload_time": "2019-09-12T14:38:20", "upload_time_iso_8601": "2019-09-12T14:38:20.810122Z", "url": "https://files.pythonhosted.org/packages/54/41/9ac50666f65a2f19329948b0418a140b43366eb0fc4c8a49527c2a375199/winsign-1.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "e5dba13474caa959d7fd6c1c939406a9", "sha256": "9b0d15ed7b1edded2337c23d77c99fc1a9274e22a43abc03155403d1a36f65be" }, "downloads": -1, "filename": "winsign-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e5dba13474caa959d7fd6c1c939406a9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22900, "upload_time": "2019-10-22T15:21:19", "upload_time_iso_8601": "2019-10-22T15:21:19.350782Z", "url": "https://files.pythonhosted.org/packages/71/65/c2d85aa500a1c9e9e6d6d0d00e5b1f6a2ab5385a6273eaffdd42916c8641/winsign-2.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "37ba5bff1dff603852ffda8832c4b9b5", "sha256": "0338dca86728f219ca0f7e98d916f58b7be939d87d92f4c8fcb4256914679738" }, "downloads": -1, "filename": "winsign-2.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "37ba5bff1dff603852ffda8832c4b9b5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27058, "upload_time": "2021-07-14T15:32:46", "upload_time_iso_8601": "2021-07-14T15:32:46.661326Z", "url": "https://files.pythonhosted.org/packages/e6/c3/ea788e2ad34e19675d25cc4477a5ac0ddcacb28debe6491a839da8fbc48d/winsign-2.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "b7114340f935ccc923f4ba5d480f430a", "sha256": "f90323ae066b07023707e383ee374a2216615f30f1227169a68591025935010f" }, "downloads": -1, "filename": "winsign-2.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b7114340f935ccc923f4ba5d480f430a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27637, "upload_time": "2021-10-13T20:28:04", "upload_time_iso_8601": "2021-10-13T20:28:04.672822Z", "url": "https://files.pythonhosted.org/packages/0b/e5/8b74d55969ecf8408985ef1228620cdcc3be9706a443475551a7a11f6d59/winsign-2.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.2.2": [ { "comment_text": "", "digests": { "md5": "f42174d4a97e1bdb2245b78a12ebe880", "sha256": "a176cb3087c089139123e7a3cd054e7b5c4293fa5a3ede7764b245a69afc6d5c" }, "downloads": -1, "filename": "winsign-2.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f42174d4a97e1bdb2245b78a12ebe880", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27734, "upload_time": "2021-10-20T20:14:13", "upload_time_iso_8601": "2021-10-20T20:14:13.601738Z", "url": "https://files.pythonhosted.org/packages/5d/b2/df3e402260ba01b9249910f57f957f6cc4e1d7e0ed6e53afb7c4cb9ca816/winsign-2.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "2.2.3": [ { "comment_text": "", "digests": { "md5": "7ceb996e09c36c74f3c4fedf350e202e", "sha256": "2853b366dc63c2ea8654de389e0832b0424deefe53ebd76df62d9033eed5c9d7" }, "downloads": -1, "filename": "winsign-2.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7ceb996e09c36c74f3c4fedf350e202e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27837, "upload_time": "2021-11-16T22:21:13", "upload_time_iso_8601": "2021-11-16T22:21:13.843255Z", "url": "https://files.pythonhosted.org/packages/f9/7c/51ca32c30b360ea8a6bf8464d0d2b9293777c55c4cfaf313c5deaa12bb87/winsign-2.2.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7ceb996e09c36c74f3c4fedf350e202e", "sha256": "2853b366dc63c2ea8654de389e0832b0424deefe53ebd76df62d9033eed5c9d7" }, "downloads": -1, "filename": "winsign-2.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7ceb996e09c36c74f3c4fedf350e202e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27837, "upload_time": "2021-11-16T22:21:13", "upload_time_iso_8601": "2021-11-16T22:21:13.843255Z", "url": "https://files.pythonhosted.org/packages/f9/7c/51ca32c30b360ea8a6bf8464d0d2b9293777c55c4cfaf313c5deaa12bb87/winsign-2.2.3-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }