`ssh_certificate_parser` is a small library for interacting with [OpenSSH host/user certificates](https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/usr.bin/ssh/PROTOCOL.certkeys?rev=1.15&content-type=text/plain). Specifically, it supports RSA, DSA, and Ed25519 keys signed by an RSA certificate authority. It does not currently validate the CA signature, but merely parses out some fields.
![CI](https://github.com/EasyPost/ssh_certificate_parser/workflows/CI/badge.svg)
[![Documentation Status](https://readthedocs.org/projects/ssh-certificate-parser/badge/?version=latest)](https://ssh-certificate-parser.readthedocs.io/en/latest/?badge=latest)
This work is licensed under the ISC license, a copy of which can be found at [LICENSE.txt](LICENSE.txt)
## Usage
This module contains a single class, `SSHCertificate`. You can construct it with the `.from_bytes` or `.from_file` classmethods.
```python
from ssh_certificate_parser import SSHCertificate
cert = SSHCertificate.from_file('/etc/ssh/ssh_host_rsa_key-cert.pub')
remaining_seconds_of_validity = cert.remaining_validity
```
Full documentation is at <https://ssh-certificate-parser.readthedocs.io/en/latest/>.
## Development
```sh
# Install dependencies
make install
# Lint project
make lint
# Test project
make test
make coverage
```
Raw data
{
"_id": null,
"home_page": "https://github.com/easypost/ssh_certificate_parser",
"name": "ssh-certificate-parser",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "James Brown",
"author_email": "jbrown@easypost.com",
"download_url": "https://files.pythonhosted.org/packages/ae/55/caabacbd0dbeac7178aba19d05bcef77c6f82b9c2f45b222d8499473ee57/ssh_certificate_parser-1.6.0.tar.gz",
"platform": null,
"description": "`ssh_certificate_parser` is a small library for interacting with [OpenSSH host/user certificates](https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/usr.bin/ssh/PROTOCOL.certkeys?rev=1.15&content-type=text/plain). Specifically, it supports RSA, DSA, and Ed25519 keys signed by an RSA certificate authority. It does not currently validate the CA signature, but merely parses out some fields.\n\n![CI](https://github.com/EasyPost/ssh_certificate_parser/workflows/CI/badge.svg)\n[![Documentation Status](https://readthedocs.org/projects/ssh-certificate-parser/badge/?version=latest)](https://ssh-certificate-parser.readthedocs.io/en/latest/?badge=latest)\n\nThis work is licensed under the ISC license, a copy of which can be found at [LICENSE.txt](LICENSE.txt)\n\n## Usage\n\nThis module contains a single class, `SSHCertificate`. You can construct it with the `.from_bytes` or `.from_file` classmethods.\n\n```python\nfrom ssh_certificate_parser import SSHCertificate\n\ncert = SSHCertificate.from_file('/etc/ssh/ssh_host_rsa_key-cert.pub')\n\nremaining_seconds_of_validity = cert.remaining_validity\n```\n\nFull documentation is at <https://ssh-certificate-parser.readthedocs.io/en/latest/>.\n\n## Development\n\n```sh\n# Install dependencies\nmake install\n\n# Lint project\nmake lint\n\n# Test project\nmake test\nmake coverage\n```\n",
"bugtrack_url": null,
"license": "ISC",
"summary": "Python library for interacting with OpenSSH Certificates",
"version": "1.6.0",
"project_urls": {
"Docs": "https://ssh-certificate-parser.readthedocs.io/",
"Homepage": "https://github.com/easypost/ssh_certificate_parser",
"Source": "https://github.com/EasyPost/ssh_certificate_parser",
"Tracker": "https://github.com/EasyPost/ssh_certificate_parser/issues"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7ff2956d6eedd62ef46c8adf948fee9ef1faa150ded671aed1bf6280170808a2",
"md5": "3e500fd3e4a9e61883edf9659dcea168",
"sha256": "55929067b4a9ddac9602a68b6647f41b9634668b107cb6361a33c7d8224f08aa"
},
"downloads": -1,
"filename": "ssh_certificate_parser-1.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3e500fd3e4a9e61883edf9659dcea168",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 6126,
"upload_time": "2023-06-09T17:46:32",
"upload_time_iso_8601": "2023-06-09T17:46:32.322442Z",
"url": "https://files.pythonhosted.org/packages/7f/f2/956d6eedd62ef46c8adf948fee9ef1faa150ded671aed1bf6280170808a2/ssh_certificate_parser-1.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ae55caabacbd0dbeac7178aba19d05bcef77c6f82b9c2f45b222d8499473ee57",
"md5": "44450496098f7a99d18b39dc0932d982",
"sha256": "9258798a47a417b0eeb960006feb547c58051aca19544c58ba6c54b975057c0e"
},
"downloads": -1,
"filename": "ssh_certificate_parser-1.6.0.tar.gz",
"has_sig": false,
"md5_digest": "44450496098f7a99d18b39dc0932d982",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7006,
"upload_time": "2023-06-09T17:46:33",
"upload_time_iso_8601": "2023-06-09T17:46:33.968988Z",
"url": "https://files.pythonhosted.org/packages/ae/55/caabacbd0dbeac7178aba19d05bcef77c6f82b9c2f45b222d8499473ee57/ssh_certificate_parser-1.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-09 17:46:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "easypost",
"github_project": "ssh_certificate_parser",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"test_requirements": [],
"lcname": "ssh-certificate-parser"
}