{ "info": { "author": "Austin Jackson", "author_email": "vesche@protonmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Information Technology", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.9", "Topic :: Internet", "Topic :: Security" ], "description": "# sickserv\n\nThis is a Python 3.6+ client-server wrapper & framework that allows you to rapidly build simple, fast, encrypted, asynchronous, multi-client application communication.\n\nHighlights:\n* Client/server wrapper around [Sanic](https://github.com/huge-success/sanic), [requests](https://github.com/psf/requests), and [websocket-client](https://github.com/websocket-client/websocket-client).\n* Provides a framework for multi-client communication, based around unique system identifiers.\n* Supports simplistically sending and receiving RC4 encrypted JSON payloads.\n* Supports sending either string or byte values using base64 encoding.\n* Provides a client and server for either websocket or non-websocket applications.\n* Natively asynchronous, provided by Sanic.\n* Client/server support for RC4 rekey on-the-fly.\n\n## Install\n\nDo it up:\n```\n$ pip install sickserv --user\n```\n\n## Communication Flow\n\nInitial payloads are always JSON (with a defined endpoint), which are then base64 encoded, RC4 encrypted, and then sent over HTTP or HTTPS (on any port desired).\n\n```\nSend data:\nJSON -> base64 encode values -> RC4 encrypt -> send (HTTPS)\n\nRecv data:\nrecv (HTTPS) -> RC4 decrypt -> base64 decode values -> JSON\n```\n\n## Simple Example (non-WebSocket)\n\nSee the `examples/` folder for more, including: a MUD, chat server, and reverse shell.\n\nServer:\n```python\nfrom sickserv import server, set_init_key\nfrom sickserv.server import response\n\nset_init_key('yellow-submarine')\n\n@server.app.route('/test/', methods=['POST',])\nasync def test(request, sysid):\n payload = server.unprocess_payload(sysid, request.body)\n print(payload)\n return_payload = server.process_payload(sysid, {'Look Mom': 'No Hands!'})\n return response.text(return_payload)\n\nserver.run(port=1337)\n```\n\nClient:\n```python\nfrom sickserv import SickServClient, set_init_key\n\nset_init_key('yellow-submarine')\nssc = SickServClient('127.0.0.1', port=1337)\npayload = {\n 'endpoint': 'test',\n 'example': 'This is some example test data'\n}\nresponse = ssc.send(payload)\nprint(response)\n```\n\nServer side:\n```\n$ python server.py\n\n _____ ____ __ __ _ _____ ___ ____ __ __ \n / ___/| | / ]| |/ ]/ ___/ / _]| \\| | |\n( \\_ | | / / | ' /( \\_ / [_ | D ) | |\n \\__ | | |/ / | \\ \\__ || _]| /| | |\n / \\ | | / \\_ | \\/ \\ || [_ | \\| : |\n \\ | | \\ || . |\\ || || . \\\\ / \n \\___||____\\____||__|\\_| \\___||_____||__|\\_| \\_/ \n\n v0.1.3 - https://github.com/vesche/sickserv \n\n[2019-10-26 06:12:47 -0500] [31313] [INFO] Goin' Fast @ http://0.0.0.0:1337\n[2019-10-26 06:12:47 -0500] [31313] [INFO] Starting worker [31313]\n{'example': 'This is some example test data'}\n[2019-10-26 06:12:57 -0500] - (sanic.access)[INFO][127.0.0.1:41550]: POST http://127.0.0.1:1337/test/b0610ba87aa2 200 60\n```\n\nClient side:\n```\n$ python test_client.py\n{'Look Mom': 'No Hands!'}\n```\n\n## Rekey\n\nAn initial, matching RC4 key must be supplied. However, the session can easily be rekeyed on the fly.\n\nA rekey is done from the client-end, like so:\n\n```python\nssc.rekey() # rekey with a random 16 character length key\nssc.rekey(length=32) # rekey with a random 32 character length key\nssc.rekey(key='purple-submarine') # rekey with a custom defined key\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/vesche/sickserv", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "sickserv", "package_url": "https://pypi.org/project/sickserv/", "platform": "", "project_url": "https://pypi.org/project/sickserv/", "project_urls": { "Homepage": "https://github.com/vesche/sickserv" }, "release_url": "https://pypi.org/project/sickserv/0.1.3/", "requires_dist": null, "requires_python": ">=3", "summary": "sickserv", "version": "0.1.3", "yanked": false, "yanked_reason": null }, "last_serial": 12955528, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "a0228435433ab0b4b1ec64c9c2bee123", "sha256": "c206df2a3c879207434610004f6ccfda30f9e485c029395b52bf897a9bff5cc1" }, "downloads": -1, "filename": "sickserv-0.0.1.tar.gz", "has_sig": false, "md5_digest": "a0228435433ab0b4b1ec64c9c2bee123", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 5424, "upload_time": "2019-10-01T00:29:50", "upload_time_iso_8601": "2019-10-01T00:29:50.307215Z", "url": "https://files.pythonhosted.org/packages/13/cb/f243feee1716247833ed0d86d84c867c90f0ca90f8e29d4f6061bf85c542/sickserv-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "934dc4847c9570db15bc87b20020eb71", "sha256": "718a160e6ef0b7c111a67cf0df0f21d7d6470741a5edd9581c829e9b40b7d7d9" }, "downloads": -1, "filename": "sickserv-0.0.3.tar.gz", "has_sig": false, "md5_digest": "934dc4847c9570db15bc87b20020eb71", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 6335, "upload_time": "2019-10-08T21:17:39", "upload_time_iso_8601": "2019-10-08T21:17:39.462550Z", "url": "https://files.pythonhosted.org/packages/56/0b/a73ebe693b961398651f60e841787025ad0e3dc1a51fb2c61699cec237a7/sickserv-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "67b5fabaac92cb370a182c6a7afc5a67", "sha256": "8ad0f5f90b9e9d0202ceb96c7123bba217e0767340903dcaa614732c52c8ff8d" }, "downloads": -1, "filename": "sickserv-0.0.4.tar.gz", "has_sig": false, "md5_digest": "67b5fabaac92cb370a182c6a7afc5a67", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 6291, "upload_time": "2019-10-11T16:31:36", "upload_time_iso_8601": "2019-10-11T16:31:36.373511Z", "url": "https://files.pythonhosted.org/packages/8e/20/8c60d4fa655bec31aaec53e34129ada145060e55f743f5b5b06da9edae22/sickserv-0.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "e206f134d9f90756c2fc70a733dc0198", "sha256": "6ae77acad88fcb3c07bb1d2cced33f4fbcf4ea2414279557a7f4f49cf309ad88" }, "downloads": -1, "filename": "sickserv-0.0.5.tar.gz", "has_sig": false, "md5_digest": "e206f134d9f90756c2fc70a733dc0198", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 6285, "upload_time": "2019-10-13T19:53:36", "upload_time_iso_8601": "2019-10-13T19:53:36.969140Z", "url": "https://files.pythonhosted.org/packages/2b/e7/3381404481d3ce35722fdea7c9c6a666c7a1cd23556e2b1bb136d2c49a55/sickserv-0.0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "f5fb97386b1e51340e1d59551b916225", "sha256": "70385fe3977e014b8ca57d5d3acd12e7285c4ecd30293090bc18d6dae812624b" }, "downloads": -1, "filename": "sickserv-0.0.6.tar.gz", "has_sig": false, "md5_digest": "f5fb97386b1e51340e1d59551b916225", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 6144, "upload_time": "2019-10-19T22:08:46", "upload_time_iso_8601": "2019-10-19T22:08:46.354781Z", "url": "https://files.pythonhosted.org/packages/cd/47/aadff0bc85bdacf9e1dd09b163a753e0e7ac3e6d3c7d6dae7b5fbb2e9e9f/sickserv-0.0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "c50f02107818f33c2f149bfb472bb3e2", "sha256": "0fd43aa8e3c2e2c866cfa3524ccff20215600ddaf2813a7660b219f85277e8c0" }, "downloads": -1, "filename": "sickserv-0.0.7.tar.gz", "has_sig": false, "md5_digest": "c50f02107818f33c2f149bfb472bb3e2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 6163, "upload_time": "2019-10-20T14:46:31", "upload_time_iso_8601": "2019-10-20T14:46:31.863429Z", "url": "https://files.pythonhosted.org/packages/d0/36/d821d6991cee697d6e11e754ea1a2ee404192168af43ba2ff501febe7e81/sickserv-0.0.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "495da7a85e21963935262e58b7759893", "sha256": "4b2853f8d01ececd6003488c74733be4b9395a6536d3a728ed9fe860645a33e6" }, "downloads": -1, "filename": "sickserv-0.1.0.tar.gz", "has_sig": false, "md5_digest": "495da7a85e21963935262e58b7759893", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 6547, "upload_time": "2019-10-26T16:48:29", "upload_time_iso_8601": "2019-10-26T16:48:29.760177Z", "url": "https://files.pythonhosted.org/packages/c4/f9/25746f0291638979d187d0d2b5a3bdbc28592cc56ff2dbabe65d6270ad9f/sickserv-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "10b15cf375c0173c7a5ab599d880e547", "sha256": "ce784e3976b75a4c2b198735ddb510b5add5b940577ec45323a4b5b1d2fc5821" }, "downloads": -1, "filename": "sickserv-0.1.1.tar.gz", "has_sig": false, "md5_digest": "10b15cf375c0173c7a5ab599d880e547", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 7133, "upload_time": "2020-03-21T18:33:44", "upload_time_iso_8601": "2020-03-21T18:33:44.035833Z", "url": "https://files.pythonhosted.org/packages/4c/7d/c743f16c05e4e06c4fc9fd261343a551b18752d000bf6076f09bd16f85a5/sickserv-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "28f6e55de79418326f21ddcff7c255db", "sha256": "0451023fc21797a17057fd46b4cdedda01ba6551a1a51e71305d7e3705eb803a" }, "downloads": -1, "filename": "sickserv-0.1.2.tar.gz", "has_sig": false, "md5_digest": "28f6e55de79418326f21ddcff7c255db", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 8852, "upload_time": "2021-04-27T19:49:26", "upload_time_iso_8601": "2021-04-27T19:49:26.726217Z", "url": "https://files.pythonhosted.org/packages/a4/49/518f8da9876038cef418a118c9834e9f76f7aa52fc959fbc228cc61c66f3/sickserv-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "094f71db84646866089eb62924b37d36", "sha256": "06c37ba7fa67a85ab2fad2d37e13b9d4a73473df5bfeec8e440c9f355f944dd5" }, "downloads": -1, "filename": "sickserv-0.1.3.tar.gz", "has_sig": false, "md5_digest": "094f71db84646866089eb62924b37d36", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 9123, "upload_time": "2022-02-21T02:27:18", "upload_time_iso_8601": "2022-02-21T02:27:18.435515Z", "url": "https://files.pythonhosted.org/packages/ee/ef/f14c1c0a7a0b38f7d4b25484448ef14532645d34401c115e0c7ca41c1239/sickserv-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "094f71db84646866089eb62924b37d36", "sha256": "06c37ba7fa67a85ab2fad2d37e13b9d4a73473df5bfeec8e440c9f355f944dd5" }, "downloads": -1, "filename": "sickserv-0.1.3.tar.gz", "has_sig": false, "md5_digest": "094f71db84646866089eb62924b37d36", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 9123, "upload_time": "2022-02-21T02:27:18", "upload_time_iso_8601": "2022-02-21T02:27:18.435515Z", "url": "https://files.pythonhosted.org/packages/ee/ef/f14c1c0a7a0b38f7d4b25484448ef14532645d34401c115e0c7ca41c1239/sickserv-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }