{ "info": { "author": "Latchset Contributors", "author_email": "cheimes@redhat.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Programming Language :: C", "Programming Language :: Cython", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Security", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. WARNING: AUTO-GENERATED FILE. DO NOT EDIT.\n\nHigh performance ASN.1 parser for Kerberos KDC Proxy [MS-KKDCP]\n===============================================================\n\n.. image:: https://travis-ci.org/tiran/kkdcpasn1.svg?branch=master\n :target: https://travis-ci.org/tiran/kkdcpasn1\n\n\nThe Kerberos Key Distribution Center Proxy Protocol [MS-KKDCP] provides\na mechanism to proxy Kerberos over HTTPS. Standard Kerberos payload is\nwrapped in an additional ``KDC-PROXY-MESSAGE`` sequence and sent as\nHTTPS POST request to a proxy server. The proxy server unwraps the\nrequest and forwards its inner request to a KDC. The proxy server\nusually resides in the DMZ.\n\nThe ``kkdcpasn1`` package provides a high performance, low memory usage\ndecoder and encoder for ``KDC-PROXY-MESSAGE``. The ASN.1 part is handled\nby a C parser auto-generated by ``asn1c``. The Python interface is\nimplemented in Cython. On modern hardware it takes less than 15ns to\ndecode a request and wrap a response.\n\nAuthor: Christian Heimes cheimes@redhat.com\n\nhttps://msdn.microsoft.com/en-us/library/hh553774.aspx\n\nParse request\n-------------\n\n::\n\n >>> import kkdcpasn1\n >>> asreq1 = b'''0\\x81\\xc4\\xa0\\x81\\xb0\\x04\\x81\\xad\\x00\\x00\\x00\\xa9j\\\n \\x81\\xa60\\x81\\xa3\\xa1\\x03\\x02\\x01\\x05\\xa2\\x03\\x02\\x01\\n\\xa3\\x0e0\\x0c\\\n 0\\n\\xa1\\x04\\x02\\x02\\x00\\x95\\xa2\\x02\\x04\\x00\\xa4\\x81\\x860\\x81\\x83\\xa0\\\n \\x07\\x03\\x05\\x00@\\x00\\x00\\x10\\xa1\\x120\\x10\\xa0\\x03\\x02\\x01\\x01\\xa1\\\n \\t0\\x07\\x1b\\x05admin\\xa2\\x0f\\x1b\\rFREEIPA.LOCAL\\xa3\"0 \\xa0\\x03\\x02\\\n \\x01\\x02\\xa1\\x190\\x17\\x1b\\x06krbtgt\\x1b\\rFREEIPA.LOCAL\\xa5\\x11\\x18\\\n \\x0f20150514104238Z\\xa7\\x06\\x02\\x04\\x11\\xc8c\\xb5\\xa8\\x140\\x12\\x02\\x01\\\n \\x12\\x02\\x01\\x11\\x02\\x01\\x10\\x02\\x01\\x17\\x02\\x01\\x19\\x02\\x01\\x1a\\xa1\\\n \\x0f\\x1b\\rFREEIPA.LOCAL'''\n >>> result = kkdcpasn1.decode_kkdcp_request(asreq1)\n >>> result.realm\n 'FREEIPA.LOCAL'\n >>> result.dclocator_hint\n 0\n >>> result.request_type\n 'asreq'\n >>> result.consumed\n 169\n >>> result.offset\n 4\n >>> result.request\n ...\n\nRequest types are\n\n- ``asreq`` authentication server request\n- ``tgsreq`` ticket granting server Request\n- ``apreq`` kpasswd change request\n\nWrap response\n-------------\n\n::\n\n >>> import kkdcpasn1\n >>> wrapped = kkdcpasn1.wrap_kkdcp_response(tcp_data)\n >>> wrapped = kkdcpasn1.wrap_kkdcp_response(udp_data, add_prefix=True)\n\nASN.1\n=====\n\n::\n\n KKDCP DEFINITIONS EXPLICIT TAGS ::=\n BEGIN\n\n AS-REQ ::= [APPLICATION 10] KDC-REQ\n\n TGS-REQ ::= [APPLICATION 12] KDC-REQ\n\n KDC-REQ ::= SEQUENCE {\n pvno [1] INTEGER,\n msg-type [2] INTEGER,\n padata [3] SEQUENCE OF PA-DATA OPTIONAL,\n req-body [4] KDC-REQ-BODY\n }\n\n PA-DATA ::= SEQUENCE {\n padata-type [1] INTEGER,\n pa-data [2] OCTET STRING\n }\n\n KDC-REQ-BODY ::= SEQUENCE {\n kdc-options [0] KDCOptions,\n cname [1] PrincipalName OPTIONAL,\n realm [2] Realm,\n sname [3] PrincipalName OPTIONAL,\n from [4] KerberosTime OPTIONAL,\n till [5] KerberosTime,\n rtime [6] KerberosTime OPTIONAL,\n nonce [7] INTEGER,\n etype [8] SEQUENCE OF INTEGER,\n addresses [9] HostAddresses OPTIONAL,\n enc-authorization-data [10] EncryptedData OPTIONAL,\n additional-tickets [11] SEQUENCE OF Ticket OPTIONAL\n }\n\n KDCOptions ::= BIT STRING {\n reserved(0),\n forwardable(1),\n forwarded(2),\n proxiable(3),\n proxy(4),\n allow-postdate(5),\n postdated(6),\n unused7(7),\n renewable(8),\n unused9(9),\n renewable-ok(27),\n enc-tkt-in-skey(28),\n renew(30),\n validate(31)\n }\n\n PrincipalName ::= SEQUENCE {\n name-type [0] INTEGER,\n name-string [1] SEQUENCE OF GeneralString\n }\n\n Realm ::= GeneralString\n\n KerberosTime ::= GeneralizedTime\n\n HostAddress ::= SEQUENCE {\n addr-type [0] INTEGER,\n address [1] OCTET STRING\n }\n\n HostAddresses ::= SEQUENCE OF HostAddress\n\n EncryptedData ::= SEQUENCE {\n etype [0] INTEGER,\n kvno [1] INTEGER OPTIONAL,\n cipher [2] OCTET STRING\n }\n\n Ticket ::= [APPLICATION 1] SEQUENCE {\n tkt-vno [0] INTEGER,\n realm [1] Realm,\n sname [2] PrincipalName,\n enc-part [3] EncryptedData\n }\n\n AP-REQ ::= [APPLICATION 14] SEQUENCE {\n pvno [0] INTEGER,\n msg-type [1] INTEGER,\n ap-options [2] APOptions,\n ticket [3] Ticket,\n authenticator [4] EncryptedData\n }\n\n APOptions ::= BIT STRING {\n reserved(0),\n use-session-key(1),\n mutual-required(2)\n }\n\n KRB-PRIV ::= [APPLICATION 21] SEQUENCE {\n pvno [0] INTEGER,\n msg-type [1] INTEGER,\n enc-part [3] EncryptedData\n }\n\n KDC-PROXY-MESSAGE ::= SEQUENCE {\n kerb-message [0] OCTET STRING,\n target-domain [1] Realm OPTIONAL,\n dclocator-hint [2] INTEGER OPTIONAL\n }\n\n END\n\n.. |Build Status| image:: https://travis-ci.org/tiran/kkdcpasn1.svg?branch=master\n :target: https://travis-ci.org/tiran/kkdcpasn1", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tiran/kkdcpasn1", "keywords": "asn1 kkdcp kerberos proxy", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "kkdcpasn1", "package_url": "https://pypi.org/project/kkdcpasn1/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/kkdcpasn1/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/tiran/kkdcpasn1" }, "release_url": "https://pypi.org/project/kkdcpasn1/0.2/", "requires_dist": null, "requires_python": null, "summary": "High performance ASN.1 parser for Kerberos KDC Proxy [KKDCP]", "version": "0.2" }, "last_serial": 2506608, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "73f8db3e947c65b8ab59cf2886fcc03e", "sha256": "2a68eb59d9b156c61d49ba690fceb36b77c74197d33957de142fe808e6053639" }, "downloads": -1, "filename": "kkdcpasn1-0.1.tar.gz", "has_sig": true, "md5_digest": "73f8db3e947c65b8ab59cf2886fcc03e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 143138, "upload_time": "2016-12-07T18:59:32", "url": "https://files.pythonhosted.org/packages/9b/c9/49d6077b29bd1b42c2cc03d7db2fd052a8a2e8f5b618ebe9f23b9d0fd032/kkdcpasn1-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "78f47fe8a0a551a772ea1dcf23ecf1c4", "sha256": "69e88fcc0ca6b0145da7113349bba93a507e63a2fd82596bfeff0d514235d616" }, "downloads": -1, "filename": "kkdcpasn1-0.2.tar.gz", "has_sig": true, "md5_digest": "78f47fe8a0a551a772ea1dcf23ecf1c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 146535, "upload_time": "2016-12-08T11:16:04", "url": "https://files.pythonhosted.org/packages/a9/98/7873b74b174cb84af2a1b1783ee13693f08fab8e30e5a1b515e64b2fbdb5/kkdcpasn1-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "78f47fe8a0a551a772ea1dcf23ecf1c4", "sha256": "69e88fcc0ca6b0145da7113349bba93a507e63a2fd82596bfeff0d514235d616" }, "downloads": -1, "filename": "kkdcpasn1-0.2.tar.gz", "has_sig": true, "md5_digest": "78f47fe8a0a551a772ea1dcf23ecf1c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 146535, "upload_time": "2016-12-08T11:16:04", "url": "https://files.pythonhosted.org/packages/a9/98/7873b74b174cb84af2a1b1783ee13693f08fab8e30e5a1b515e64b2fbdb5/kkdcpasn1-0.2.tar.gz" } ] }