{"id":19081591,"url":"https://github.com/thobbs/pure-sasl","last_synced_at":"2025-04-05T02:12:11.267Z","repository":{"id":47057094,"uuid":"5895102","full_name":"thobbs/pure-sasl","owner":"thobbs","description":"A pure python SASL client","archived":false,"fork":false,"pushed_at":"2023-06-25T06:59:40.000Z","size":113,"stargazers_count":37,"open_issues_count":11,"forks_count":32,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-01T15:51:58.894Z","etag":null,"topics":["kerberos","python","python3","sasl"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thobbs.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-09-21T00:58:28.000Z","updated_at":"2024-10-15T21:15:22.000Z","dependencies_parsed_at":"2024-06-18T15:37:37.737Z","dependency_job_id":"e88c2183-4c3f-4c6b-bb22-423f2d242210","html_url":"https://github.com/thobbs/pure-sasl","commit_stats":{"total_commits":114,"total_committers":21,"mean_commits":5.428571428571429,"dds":0.7543859649122807,"last_synced_commit":"b215f70a5878a5fad670b513289822bf1f006412"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thobbs%2Fpure-sasl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thobbs%2Fpure-sasl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thobbs%2Fpure-sasl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thobbs%2Fpure-sasl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thobbs","download_url":"https://codeload.github.com/thobbs/pure-sasl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246668844,"owners_count":20814741,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kerberos","python","python3","sasl"],"created_at":"2024-11-09T02:37:24.575Z","updated_at":"2025-04-05T02:12:11.240Z","avatar_url":"https://github.com/thobbs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"pure-sasl\n=========\n\n.. image:: https://travis-ci.org/thobbs/pure-sasl.png?branch=master\n   :target: https://travis-ci.org/thobbs/pure-sasl\n\npure-sasl is a pure python client-side SASL implementation.\n\nAt the moment, it supports the following mechanisms: ANONYMOUS, PLAIN, EXTERNAL,\nCRAM-MD5, DIGEST-MD5, and GSSAPI. Support for other mechanisms may be added in the\nfuture. Only GSSAPI supports a QOP higher than auth. Always use TLS!\n\nBoth Python 2 and Python 3 are supported.\n\nExample Usage\n-------------\n\n.. code-block:: python\n\n    from puresasl.client import SASLClient\n\n    sasl = SASLClient('somehost2', 'customprotocol')\n    conn = get_connection_to('somehost2')\n    available_mechs = conn.get_mechanisms()\n    sasl.choose_mechanism(available_mechs, allow_anonymous=False)\n    while True:\n        status, challenge = conn.get_challenge()\n        if status == 'COMPLETE':\n            break\n        elif status == 'OK':\n            response = sasl.process(challenge)\n            conn.send_response(response)\n        else:\n            raise Exception(status)\n\n    if not sasl.complete:\n        raise Exception(\"SASL negotiation did not complete\")\n\n    # begin normal communication\n    encoded = conn.fetch_data()\n    decoded = sasl.unwrap(encoded)\n    response = process_data(decoded)\n    conn.send_data(sasl.wrap(response))\n\n\nLicense\n-------\nSome of the mechanisms and utility functions are based on work done\nby David Alan Cridland and Lance Stout in Suelta: https://github.com/dwd/Suelta\n\npure-sasl is open source under the\n`MIT license \u003chttp://www.opensource.org/licenses/mit-license.php\u003e`_.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthobbs%2Fpure-sasl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthobbs%2Fpure-sasl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthobbs%2Fpure-sasl/lists"}