{"id":16909565,"url":"https://github.com/yjdoc2/kerberos-python-library","last_synced_at":"2025-03-20T17:46:58.156Z","repository":{"id":52696300,"uuid":"255279577","full_name":"YJDoc2/Kerberos-Python-Library","owner":"YJDoc2","description":"Python module for giving an API over Kerberos protocol.This gives interface to create Authentication server, Ticket Granting Server, and Servers to be protected.","archived":false,"fork":false,"pushed_at":"2021-04-20T19:49:15.000Z","size":64,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-25T16:28:54.609Z","etag":null,"topics":["kerberos-protocol","python3","security"],"latest_commit_sha":null,"homepage":"","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/YJDoc2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security.md","support":null}},"created_at":"2020-04-13T09:09:08.000Z","updated_at":"2023-05-08T17:31:01.000Z","dependencies_parsed_at":"2022-08-19T22:41:19.970Z","dependency_job_id":null,"html_url":"https://github.com/YJDoc2/Kerberos-Python-Library","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YJDoc2%2FKerberos-Python-Library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YJDoc2%2FKerberos-Python-Library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YJDoc2%2FKerberos-Python-Library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YJDoc2%2FKerberos-Python-Library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YJDoc2","download_url":"https://codeload.github.com/YJDoc2/Kerberos-Python-Library/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244666308,"owners_count":20490283,"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-protocol","python3","security"],"created_at":"2024-10-13T18:56:15.926Z","updated_at":"2025-03-20T17:46:58.135Z","avatar_url":"https://github.com/YJDoc2.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kerberos Python Library\n\nThis is a Python library for implementing Kerberos Protocol.  \nThis does not actually implement the Kerberos Protocol at low-level api, but provides helper classes that can be used to implement Kerberos over some other protocol such as HTTP.\n\nFor More information on Kerberos Protocol, see \u003ca href='https://github.com/YJDoc2/Kerberos-Python-Library/blob/master/Kerberos.md'\u003eKerberos md\u003c/a\u003e file.\n\nFor API documentation see \u003ca href = 'https://github.com/YJDoc2/Kerberos-Python-Library/blob/master/API.md'\u003eAPI md\u003c/a\u003e file.\n\nThere is a corresponding JS Module of this project : \u003ca href='https://github.com/YJDoc2/Kerberos-JS-Module'\u003eKerberos JS Module\u003c/a\u003e\n\nAlso For example usage of this , check out \u003ca href='https://github.com/YJDoc2/Kerberos-Examples'\u003eKerberos Examples\u003c/a\u003e Repository. It contains commented examples of how to use this and python library.\n\n\u003cstrong\u003eNOTE\u003c/strong\u003e Before any usage of this, one should test the security aspects of this thoroughly.\n\n## About\n\nThis library provides classes for setting up Kerberos methods over a protocol.\n\nThis contains has three main parts :\n\n\u003cul\u003e\n\u003cli\u003eKDC classes\u003c/li\u003e\n\u003cli\u003eServer class\u003c/li\u003e\n\u003cli\u003eClient class\u003c/li\u003e\n\u003c/ul\u003e\n\nKey Distribution Centre (KDC) classes, which are used in generating initial authentication and Ticket Granting Ticket (TGT), and then tickets for individual servers, which are to be protected by this protocol.\nThe main classes are Kerberos_AS and Kerberos_TGS, and Kerberos_KDC provides an easier-to-use interface over them for the cases when Authentication Service and Ticket Granting Service is to be set up in same server program.\n\u003cstrong\u003eNOTE\u003c/strong\u003e that Kerberos_KDC class does not provide any extra functionality, and its work can be done by using individual instances of Kerberos_AS and Kerberos_TGS. The Kerberos_KDC class is implemented so that one need not maintain instances of two classes.\n\nThe Server class provides methods which are used on a server that is to be protected by Kerberos.  \n\u003cstrong\u003eNOTE\u003c/strong\u003e that this does not actually set up any server, just contain methods related to kerberos protocol that are used on Server.\n\nThe Client class provides methods which are used by a client which is used to access data on servers protected by Kerberos.\n\u003cstrong\u003eNOTE\u003c/strong\u003e that this does not actually set up any client, just contain methods related to kerberos protocol that are used by client.\n\nThis library provides default classes for basic database and cryptographic requirements,but custom classes can be used as well by making them extend appropriate classes. See API documentation for more information.\n\n## Dependencies\n\nThis Module uses pycryptodome module for the AES 256 CTR mode encryption used by default.\n\nOther than that this uses pytest as testing framework.\n\n## Basic Usage Information\n\n\u003cstrong\u003eNote\u003c/strong\u003e that this was developed with idea that made the three components mentioned in about section function independently. Which means it is not compulsory to use KDC,Server and Client of Python library only.The components of this Python library can be used along with those in JS Module. The examples repository shows the use in this manner only.\n\nThe API has been decently commented, though not as best it could have been.\nThe detailed API documentation for usage can be found in API md file.\n\nThe outermost \\_\\_init\\_\\_.py file exports all the components.\n\nAll classes and constants exported by the module can be brought in by using :\u003cbr /\u003e\n\u003ccode\u003efrom 'path/to/Kerberos-py-library' import ComponentClass\u003c/code\u003e\n\n\u003cstrong\u003eNote\u003c/strong\u003e that some methods of API have a large number of params, upto 6, clearly breaking the max-number-of-params-should-be-3 guideline of good programming.For slightly easier use of these, **all params** of **all** methods follow the following order :  \nrandom number ; request server ; UIDs for user : key ; encryption/decryption data ; tickets ; optional params.\nwhichever are present.\n\n## Working/Security\n\nThis uses the AES 256 bit CTR mode by default for all encryptions and decryptions.\nFor security considerations check \u003ca href='https://github.com/YJDoc2/Kerberos-Python-Library/blob/master/security.md'\u003esecurity md\u003c/a\u003e.\n\u003cstrong\u003eNote that developer neither gives any guarantee nor takes any responsibility for the security of this library.\u003c/strong\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyjdoc2%2Fkerberos-python-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyjdoc2%2Fkerberos-python-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyjdoc2%2Fkerberos-python-library/lists"}