{ "info": { "author": "Pedro Torres", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "[![Build Status](https://travis-ci.com/pedrohbtp/aws_signv4_mqtt.svg?branch=master)](https://travis-ci.com/pedrohbtp/aws_signv4_mqtt)\n[![Coverage Status](https://coveralls.io/repos/github/pedrohbtp/aws_signv4_mqtt/badge.svg?branch=master)](https://coveralls.io/github/pedrohbtp/aws_signv4_mqtt?branch=master)\n# aws_signv4_mqtt\nFunctions to generate aws signature v4 to use with AWS IOT MQTT\n\nI created this because I couldn't find a library to easily generate signed urls that you can use with amazon's MQTT for IOT in python.\nAll the libraries I could find would be to generate headers for HTTP requests and it wouldn't work with wss for MQTT.\n\nInspired by:\n * https://gist.github.com/prestomation/24b959e51250a8723b9a5a4f70dcae08\n* https://gist.github.com/kn9ts/4b5a9942b6afbfc2534f2f14c87b9b54\n\n# Installing\n\n```bash\npip install aws-signv4-mqtt\n```\n\n# How to use use\n\nThere are two interfaces:\n```python\naws_signv4_mqtt.generate_signv4_mqtt( iot_host, iot_region, access_key, secret_key, session_token = None)\n```\n\nBasic interface to created the signed url.\n\n```python\naws_signv4_mqtt.generate_signv4_mqtt_boto( iot_host, iot_region)\n```\n\nGets the credentials from your environment or iam role internally using boto3.\n\n# Examples\n\n```python\nimport aws_signv4_mqtt\nprint(aws_signv4_mqtt.generate_signv4_mqtt('.iot.us-east-1.amazonaws.com', 'us-east-1', '', ''))\n```\nPrints something like:\n```\nwss://.iot.us-east-1.amazonaws.com/mqtt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=%3Caws_access_key%3E%2F20190216%2Fus-east-1%2Fiotdevicegateway%2Faws4_request&X-Amz-Date=20190216T115653Z&X-Amz-SignedHeaders=host&X-Amz-Signature=92bfc2b5a77489c5786a820044bf6c8ccb3c2f9b40c1d6a5f016b4d9c8662a5e\n```\n\n\n# Testing your url\n\nAfter you generate your url using AWS credentials with sufficient AWS IOT permissions, you can test it with any MQTT library.\n\nFor instance, you could execute the javascript code below:\n\n```javascript\nvar mqtt = require('mqtt')\nurl = ''\nport = 443\ntopic = ''\ni = 0\n\nvar client = mqtt.connect(url,\n {\n connectTimeout:5*1000,\n port: port,\n })\n\nclient.on('connect', function () {\n client.subscribe(topic, function (err) {\n if (!err) {\n client.publish(topic, 'Hello mqtt')\n }\n })\n})\n\nclient.on('message', function (topic, message) {\n console.log(message.toString())\n i = i+1\n client.publish(topic, 'Hello mqtt '+String(i))\n})\n```\n\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/pedrohbtp/aws_signv4_mqtt", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "aws-signv4-mqtt", "package_url": "https://pypi.org/project/aws-signv4-mqtt/", "platform": "", "project_url": "https://pypi.org/project/aws-signv4-mqtt/", "project_urls": { "Homepage": "https://github.com/pedrohbtp/aws_signv4_mqtt" }, "release_url": "https://pypi.org/project/aws-signv4-mqtt/0.2.0/", "requires_dist": null, "requires_python": "", "summary": "Utility to sign urls for aws mqtt", "version": "0.2.0" }, "last_serial": 4851290, "releases": { "0.1.3": [ { "comment_text": "", "digests": { "md5": "30d50d74a8dc4f858aab2363624d0868", "sha256": "7b64047913c39bb23991f5f3f33af35a4c73fb6bf327110a913a766a12d8139c" }, "downloads": -1, "filename": "aws_signv4_mqtt-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "30d50d74a8dc4f858aab2363624d0868", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4244, "upload_time": "2019-02-16T14:14:17", "url": "https://files.pythonhosted.org/packages/d4/c0/51f27077336842f914d4c0745503acad109edaa579ca25d46f3d69bd9674/aws_signv4_mqtt-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e63a10250d4e9db76157ae3e6e48763f", "sha256": "7d3354fb385dbed407d0fa6bf4a2460434dce90069a599e508126c7485d90086" }, "downloads": -1, "filename": "aws_signv4_mqtt-0.1.3.tar.gz", "has_sig": false, "md5_digest": "e63a10250d4e9db76157ae3e6e48763f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2725, "upload_time": "2019-02-16T14:14:19", "url": "https://files.pythonhosted.org/packages/21/e1/6b66a5b0bc969635bbc5c4d57db1bc6b0e8b5b8c3550e37bce3921b15c1a/aws_signv4_mqtt-0.1.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a0996ae02ddcef27e347a30758cb5caa", "sha256": "4fb69ba044a1712b4c8e0464c34efb27b186d545c0c4aaf5907b97e30eebcffb" }, "downloads": -1, "filename": "aws_signv4_mqtt-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a0996ae02ddcef27e347a30758cb5caa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4708, "upload_time": "2019-02-21T18:30:55", "url": "https://files.pythonhosted.org/packages/6b/51/981e08f75809fef6765eb56df5b567fb0af87862f53d96fdecdfe68486ab/aws_signv4_mqtt-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5ba58617a8febe93382e81468d65d781", "sha256": "59cb22ea836d3e72b0cd3dae0ef337ac29af3e9e498aed13a55e711c4c250413" }, "downloads": -1, "filename": "aws_signv4_mqtt-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5ba58617a8febe93382e81468d65d781", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3355, "upload_time": "2019-02-21T18:30:57", "url": "https://files.pythonhosted.org/packages/d0/57/ba3110490b3af46be9cd6f165e84898c16a411f1aa5c0d81d2b701ada9f2/aws_signv4_mqtt-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a0996ae02ddcef27e347a30758cb5caa", "sha256": "4fb69ba044a1712b4c8e0464c34efb27b186d545c0c4aaf5907b97e30eebcffb" }, "downloads": -1, "filename": "aws_signv4_mqtt-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a0996ae02ddcef27e347a30758cb5caa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4708, "upload_time": "2019-02-21T18:30:55", "url": "https://files.pythonhosted.org/packages/6b/51/981e08f75809fef6765eb56df5b567fb0af87862f53d96fdecdfe68486ab/aws_signv4_mqtt-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5ba58617a8febe93382e81468d65d781", "sha256": "59cb22ea836d3e72b0cd3dae0ef337ac29af3e9e498aed13a55e711c4c250413" }, "downloads": -1, "filename": "aws_signv4_mqtt-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5ba58617a8febe93382e81468d65d781", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3355, "upload_time": "2019-02-21T18:30:57", "url": "https://files.pythonhosted.org/packages/d0/57/ba3110490b3af46be9cd6f165e84898c16a411f1aa5c0d81d2b701ada9f2/aws_signv4_mqtt-0.2.0.tar.gz" } ] }