{ "info": { "author": "Keith Gaughan", "author_email": "k@stereochro.me", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Communications :: Email :: Mail Transport Agents", "Topic :: Security", "Topic :: Utilities" ], "description": "===========\ndovecotauth\n===========\n\nA client for the `Dovecot Authentication Protocol v1.1`__.\n\n.. __: https://wiki2.dovecot.org/Design/AuthProtocol\n\nWhy?\n====\n\nDovecot is a convenient authentication backend for some stuff running on my\nserver, most notably the OpenID provider it looks as if I'm going to have to\nwrite, and it's less trouble to write a small client to talk to it than get\nsomething talking to PAM.\n\nI figure that somebody might be in the same position, so why not unbundle it\nfrom the OpenID provider.\n\nDevelopment\n===========\n\nTo set up your development environment, run::\n\n make dev\n\nTo upload a new release to PyPI::\n\n make release\n\nUsage\n=====\n\n.. note::\n This API is subject to change.\n\nUse the ``connect`` context manager to connect to a DAP server. This takes a\n``service`` name (such as 'imap') and either a path to a Unix domain socket or in\nthe ``unix`` named parameter, or a tuple consisting of a hostname and port\nnumber in the ``inet`` named parameter.\n\nThe context manager returns a ``Protocol`` object, on which you can called the\n``auth`` method. This takes the name of a SASL_ mechanism (currently only\n'PLAIN' is supported), a username, and a password, as well as a number of\nadditional arguments optional arguments, which I need to document.\n\nThe return value is a two tuple, consisting of a boolean indicating success or\nfailure and the arguments of the response as a dictionary, or ``None``,\nindicating a *CONT* response and that further data is needed.\n\nFor instance::\n\n with connect('imap', unix='./auth.sock') as conn:\n status, flags = conn.auth('imap', username, password)\n if status:\n print(\"Authentication succeeded\")\n else:\n print(\"Authentication failed or needs more data\")\n\nDemos\n=====\n\nThe library comes with two demonstrations, allowing you to test it out\nseparately from Dovecot itself. Running ``dovecotauth.py server`` will give\nyou a simple DAP server, and ``dovecotauth.py client`` gives you a\ncommand-line client. Note, however, that both are not intended to be robust,\nbut just to give you enough to test things out.\n\nBoth share two flags ``--unix`` and ``--inet``. The former lets you specify\na Unix domain socket path, and the latter allows you to specify an address to\nbind/connect to in the form *address:port*.\n\nThe client also allows you to specify the service name with the ``--service``\nflag ('imap' by default), the SASL_ mechanism to use with the ``--mech`` flag\n(currently only 'PLAIN' is supported, so this can be ignored for now), and a\nusername, which defaults to the value of the ``USER`` environment variable.\n\nFor example::\n\n ./dovecotauth.py client --unix ./auth.sock --user user\n\nYou will then be prompted for a password.\n\nThe server takes a flag, ``--htpasswd``, which allows you to specify the path\nto a htpasswd_ file to authenticate against::\n\n ./dovecotauth.py server --unix ./auth.sock --htpasswd ./passwd\n\n.. _SASL: https://en.wikipedia.org/wiki/Simple_Authentication_and_Security_Layer\n.. _htpasswd: https://httpd.apache.org/docs/2.4/en/programs/htpasswd.html\n\n.. vim:set ft=rst:\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kgaughan/dovecotauth", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "dovecotauth", "package_url": "https://pypi.org/project/dovecotauth/", "platform": "", "project_url": "https://pypi.org/project/dovecotauth/", "project_urls": { "Homepage": "https://github.com/kgaughan/dovecotauth" }, "release_url": "https://pypi.org/project/dovecotauth/1.0.1/", "requires_dist": [ "passlib; extra == \"dev\"" ], "requires_python": ">=3.3", "summary": "A client library for the Dovecot Authentication Protocol v1.1", "version": "1.0.1" }, "last_serial": 4856238, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "d33e0b3ba9deee9346140853446c4741", "sha256": "661de7d6cf842c50ceaf75ff69e5ac7fa8bbc2a00d1565b99faa0e8a1232b8b2" }, "downloads": -1, "filename": "dovecotauth-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d33e0b3ba9deee9346140853446c4741", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5279, "upload_time": "2017-10-02T11:12:01", "url": "https://files.pythonhosted.org/packages/02/a2/313d58e85772df3f2ac7cfb107447dfd96f53e9d16ef0df47ac2038689f0/dovecotauth-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae7d53455ecbf57993691c15ee35dc60", "sha256": "b5e95b82dd6b0e41ac5943fa185e40cef2a85df08aa0a507f87befa30c5802d9" }, "downloads": -1, "filename": "dovecotauth-0.0.1.tar.gz", "has_sig": false, "md5_digest": "ae7d53455ecbf57993691c15ee35dc60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3754, "upload_time": "2017-10-02T11:12:02", "url": "https://files.pythonhosted.org/packages/73/cb/97d40c08a3eba00ef5a5de5b8203a8b9c124b9649fee3e397f1686670bc3/dovecotauth-0.0.1.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "3e2852a988f50bfe4bbe7290b31b6872", "sha256": "9fe0a0c804a59683384ddc1674e78a891ec27cd8276e2425dbbec1e97752b74f" }, "downloads": -1, "filename": "dovecotauth-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3e2852a988f50bfe4bbe7290b31b6872", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.3", "size": 14278, "upload_time": "2019-02-22T22:46:50", "url": "https://files.pythonhosted.org/packages/9e/23/797733860acb1bf4ef8559891d68357aaadacab11bb0dcf47df4f525079e/dovecotauth-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82251ca7769007eef09830581f14ca3f", "sha256": "7ec0b4a04ece4de2df9790ec5116a592e80978fb747fce9ac6c712db6715c070" }, "downloads": -1, "filename": "dovecotauth-1.0.1.tar.gz", "has_sig": false, "md5_digest": "82251ca7769007eef09830581f14ca3f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 6348, "upload_time": "2019-02-22T22:46:53", "url": "https://files.pythonhosted.org/packages/5c/da/74b6743956562db79de3d44985196dc830be947ad91cebd2eafd03bf0c70/dovecotauth-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3e2852a988f50bfe4bbe7290b31b6872", "sha256": "9fe0a0c804a59683384ddc1674e78a891ec27cd8276e2425dbbec1e97752b74f" }, "downloads": -1, "filename": "dovecotauth-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3e2852a988f50bfe4bbe7290b31b6872", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.3", "size": 14278, "upload_time": "2019-02-22T22:46:50", "url": "https://files.pythonhosted.org/packages/9e/23/797733860acb1bf4ef8559891d68357aaadacab11bb0dcf47df4f525079e/dovecotauth-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82251ca7769007eef09830581f14ca3f", "sha256": "7ec0b4a04ece4de2df9790ec5116a592e80978fb747fce9ac6c712db6715c070" }, "downloads": -1, "filename": "dovecotauth-1.0.1.tar.gz", "has_sig": false, "md5_digest": "82251ca7769007eef09830581f14ca3f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.3", "size": 6348, "upload_time": "2019-02-22T22:46:53", "url": "https://files.pythonhosted.org/packages/5c/da/74b6743956562db79de3d44985196dc830be947ad91cebd2eafd03bf0c70/dovecotauth-1.0.1.tar.gz" } ] }