{ "info": { "author": "Jim Carroll", "author_email": "jim@carroll.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Topic :: Security", "Topic :: Software Development :: Build Tools", "Topic :: System :: Software Distribution" ], "description": "Signet - Protect your users and customers from hackers\n******************************************************\n\nFULL HTML Documentation: http://jamercee.github.io/signet/\n\nSignet provides support for building and delivering tamper resistant python to\nyour users and customers.\n\nSignet creates a custom python loader which you deliver with your script. On\neach invocation, the loader will verify no tampering has ocurred before it\nruns the python script.\n\nUsers have the confidence of knowing their scripts are safe and yet retain\nfull access to the python source for code review and enhancement. And you know\nyour users are running the right version of code.\n\nSignet is fully integrated with `distutils `_ to make the process of\nbuilding and installing new python projects as simple and painless as possible.\n\nHow does it work?\n=================\n\nSignet relies on the strength of cryptographic hash to reliably detect file\nmodifications. Signet builds hashes of your script and all it's dependencies.\nThese hashes are incorporated into a custom python loader which will handle\nre-verifying the hashes before it will run your script.\n\nIf your script or any of it's dependencies are tampered with, the loader will\nemit an error and exit. If everything matches, the loader will run your script.\n\nExample usage\n=============\n\nFor example, if you had a simple script ``hello.py``::\n\n import os\n print('hello from %s' % os.name)\n\nAnd you deployed it with this simple ``setup.py``::\n\n from distutils.core import setup, Extension\n from signet.command.build_signet import build_signet\n\n setup(name = 'hello',\n cmdclass = {'build_signet': build_signet, },\n ext_modules = [Extension('hello', sources=['hello.py'])],\n )\n\nBuild your loader::\n\n python setup.py build_signet\n\nOn Windows you'll have ``hello.exe`` and on Linux you'll have ``hello``.\n\nThe signet system also provides facilities for code signing::\n\n from distutils.core import setup, Extension\n from signet.command.build_signet import build_signet, sign_code\n\n setup(name = 'hello',\n cmdclass = {'build_signet': build_signet,\n 'sign_code': sign_code,\n },\n ext_modules = [Extension('hello', sources=['hello.py'])],\n )\n\nBuild your loader::\n\n python setup.py build_signet\n python setup.py sign_code --savedpassword --pfx-file {path-to-pfx}\n\n\nInstalling Signet\n=================\n\nSignet is hosted on github at https://github.com/jamercee/signet\n\nInstallation using git::\n\n git clone https://github.com/jamercee/signet\n cd signet\n python setup.py install\n\nSignet can also be installed with pip::\n\n pip install signet\n\nFeatures\n========\n\n* Multiplatform: works under\n\n * Windows (32/64-bit)\n * Linux\n * FreeBSD\n\n* Integrated with Distutils\n* Protection from tampering (SHA1 hashed content)\n* On Windows\n\n * Provides code signing executables\n * PE executable verification\n * Automatic resource file generation\n * Customizable program icon\n\n* Customizable python loader (full c++ included)\n* Unique process name \n\n * show ``hello`` rather than ``python hello.py``\n\n* Compatible with virtualenv\n\n", "description_content_type": null, "docs_url": null, "download_url": "http://github.com/jamercee/signet", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://jamercee.github.io/signet", "keywords": "", "license": "Signet is licensed under the 3-clause BSD License", "maintainer": "", "maintainer_email": "", "name": "signet", "package_url": "https://pypi.org/project/signet/", "platform": "", "project_url": "https://pypi.org/project/signet/", "project_urls": { "Download": "http://github.com/jamercee/signet", "Homepage": "http://jamercee.github.io/signet" }, "release_url": "https://pypi.org/project/signet/1.0.20/", "requires_dist": null, "requires_python": "", "summary": "Signet provides support for building and delivering tamper resistant python to your users and customers.", "version": "1.0.20" }, "last_serial": 3403616, "releases": { "1.0.10": [ { "comment_text": "", "digests": { "md5": "813f583880b7cd99aacf46633fb40d86", "sha256": "ea6445bab9e19051cefb514dce58ecbbf3bc7f1fb72065bea6ec4efbf7945e93" }, "downloads": -1, "filename": "signet-1.0.10.zip", "has_sig": false, "md5_digest": "813f583880b7cd99aacf46633fb40d86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30112, "upload_time": "2014-07-28T15:32:33", "url": "https://files.pythonhosted.org/packages/74/47/e81a2e905fdb8ecf1f3bccfba4ec827f7d18f0b9be518896d65acfa42747/signet-1.0.10.zip" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "3005bbb23110e36b4ab6ea8775b37841", "sha256": "684b4fa099d95a584579a2a414a8d19ffcf45f409c5c5299867df89c25454d57" }, "downloads": -1, "filename": "signet-1.0.11.zip", "has_sig": false, "md5_digest": "3005bbb23110e36b4ab6ea8775b37841", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30121, "upload_time": "2014-07-31T14:48:33", "url": "https://files.pythonhosted.org/packages/1a/16/cbf7cfad5356390f95c3ec0b3ad2638549647287d88b1af08a8bb46d8e8a/signet-1.0.11.zip" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "43e394250366ff4db65f3a1984414e5f", "sha256": "f0346ae0ebbf941247927b3ecaa7cc6c109ceba6059295ceb58be60d9cb1b6b1" }, "downloads": -1, "filename": "signet-1.0.12.zip", "has_sig": false, "md5_digest": "43e394250366ff4db65f3a1984414e5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30469, "upload_time": "2014-07-31T15:47:58", "url": "https://files.pythonhosted.org/packages/a7/74/c27dc3d1382330833632b82c7b0add8bf6411db71947d165a3d26fb5b154/signet-1.0.12.zip" } ], "1.0.14": [ { "comment_text": "", "digests": { "md5": "21b81835aa91a201005882ddc996f9c1", "sha256": "9465577433ea0c1425f3103435b4aead73aa09632c86537a2bc7e3d163a639ee" }, "downloads": -1, "filename": "signet-1.0.14.zip", "has_sig": false, "md5_digest": "21b81835aa91a201005882ddc996f9c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30600, "upload_time": "2014-08-07T17:23:01", "url": "https://files.pythonhosted.org/packages/9c/b8/4fffafc4dad243d780b5a79bdddd60b6ae876ccfedef6990019ab55dacde/signet-1.0.14.zip" } ], "1.0.15": [ { "comment_text": "", "digests": { "md5": "21996374f0dc9808d7e3c23cc3423e35", "sha256": "c156327348b449794f06efa3a73038b4dd5eaf060e212bf34bbd6b47c70b2d08" }, "downloads": -1, "filename": "signet-1.0.15.zip", "has_sig": false, "md5_digest": "21996374f0dc9808d7e3c23cc3423e35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31644, "upload_time": "2014-08-09T20:27:59", "url": "https://files.pythonhosted.org/packages/d9/1b/771b1fbd5a96e34488665ec36970f8275c8d979c8b080381a4db9f4f8f08/signet-1.0.15.zip" } ], "1.0.16": [ { "comment_text": "", "digests": { "md5": "a9e49e9d34daf138461889bacf484bf0", "sha256": "0fc75462ad631a9a57b2ba378da5b9c06825d2b82b60a16a3e750144f53e42b1" }, "downloads": -1, "filename": "signet-1.0.16.zip", "has_sig": false, "md5_digest": "a9e49e9d34daf138461889bacf484bf0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31761, "upload_time": "2014-08-10T17:06:04", "url": "https://files.pythonhosted.org/packages/9c/b0/60b6e585f309816524cdc5552898018c9708dde3f2976888bac39e72fb3c/signet-1.0.16.zip" } ], "1.0.17": [ { "comment_text": "", "digests": { "md5": "aee76a0bfbbf245e07a51051b3123e78", "sha256": "53820ecaae8257c3f0312bdcf93424e618c23e43fe7a61a352ed965de4c7e5f6" }, "downloads": -1, "filename": "signet-1.0.17.zip", "has_sig": false, "md5_digest": "aee76a0bfbbf245e07a51051b3123e78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31972, "upload_time": "2014-09-20T18:59:14", "url": "https://files.pythonhosted.org/packages/42/2e/574f0022262617d7f7288edbdecda11af76557352e13bea5af08fa43c154/signet-1.0.17.zip" } ], "1.0.18": [ { "comment_text": "", "digests": { "md5": "1b1045ba8c84cf96bff14292e8b978eb", "sha256": "1cf4b5d1f59eb3fe60bbce7111b81a48b8cd953f7831975a9e5d1984333d39d9" }, "downloads": -1, "filename": "signet-1.0.18.zip", "has_sig": false, "md5_digest": "1b1045ba8c84cf96bff14292e8b978eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31964, "upload_time": "2014-09-21T11:36:39", "url": "https://files.pythonhosted.org/packages/27/16/5437c56dc4147b52b0a58959b940df6abad65a40c4705ae752be1b613817/signet-1.0.18.zip" } ], "1.0.20": [ { "comment_text": "", "digests": { "md5": "41035f9f24378b906bf4b101f05c2efa", "sha256": "c8ed3f3c593b73dba9f4f8c8a88f90bff8f57b2f8ea4232f87dd988643799852" }, "downloads": -1, "filename": "signet-1.0.20.tar.gz", "has_sig": false, "md5_digest": "41035f9f24378b906bf4b101f05c2efa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30637, "upload_time": "2017-12-09T14:42:39", "url": "https://files.pythonhosted.org/packages/57/ad/f6ff7aa4c0b092853b2a88d95c69a96d50b7d36fd5c67ff9627da1c33f71/signet-1.0.20.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "02ecb47a13be332e868e8c987da72921", "sha256": "095152f9fe78b4d0d786624f710399a5881a6f24e8a9446c4057f41dc8adf5c8" }, "downloads": -1, "filename": "signet-1.0.9.zip", "has_sig": false, "md5_digest": "02ecb47a13be332e868e8c987da72921", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30058, "upload_time": "2014-07-28T14:43:46", "url": "https://files.pythonhosted.org/packages/75/6e/1d2c68dffcb76a326391b651dc28593ca8446cbfa6d1974dfa86fe7d33db/signet-1.0.9.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "41035f9f24378b906bf4b101f05c2efa", "sha256": "c8ed3f3c593b73dba9f4f8c8a88f90bff8f57b2f8ea4232f87dd988643799852" }, "downloads": -1, "filename": "signet-1.0.20.tar.gz", "has_sig": false, "md5_digest": "41035f9f24378b906bf4b101f05c2efa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30637, "upload_time": "2017-12-09T14:42:39", "url": "https://files.pythonhosted.org/packages/57/ad/f6ff7aa4c0b092853b2a88d95c69a96d50b7d36fd5c67ff9627da1c33f71/signet-1.0.20.tar.gz" } ] }