{"id":20589674,"url":"https://github.com/coreos/openssh-keys","last_synced_at":"2025-04-13T07:47:12.088Z","repository":{"id":34402671,"uuid":"101450955","full_name":"coreos/openssh-keys","owner":"coreos","description":"A pure-Rust library to read and write OpenSSH public keys","archived":false,"fork":false,"pushed_at":"2025-03-01T00:12:00.000Z","size":204,"stargazers_count":36,"open_issues_count":10,"forks_count":19,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-13T07:46:55.433Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://crates.io/crates/openssh-keys","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coreos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":"code_of_conduct.md","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":"2017-08-26T00:06:10.000Z","updated_at":"2024-08-09T20:00:05.000Z","dependencies_parsed_at":"2024-07-10T19:25:05.214Z","dependency_job_id":"d4c579cd-694c-4a5e-94f6-7fdc996cb723","html_url":"https://github.com/coreos/openssh-keys","commit_stats":{"total_commits":132,"total_committers":15,"mean_commits":8.8,"dds":0.6515151515151515,"last_synced_commit":"96dd2b8043b826bf1f00766bc32d631bd4dc8152"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coreos%2Fopenssh-keys","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coreos%2Fopenssh-keys/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coreos%2Fopenssh-keys/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coreos%2Fopenssh-keys/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coreos","download_url":"https://codeload.github.com/coreos/openssh-keys/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248681494,"owners_count":21144700,"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":[],"created_at":"2024-11-16T07:30:37.183Z","updated_at":"2025-04-13T07:47:12.060Z","avatar_url":"https://github.com/coreos.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# openssh-keys \u0026emsp; [![Latest Version]][crates.io] [![Docs Badge]][docs]\n\n[Latest Version]: https://img.shields.io/crates/v/openssh-keys.svg\n[crates.io]: https://crates.io/crates/openssh-keys\n[Docs Badge]: https://docs.rs/openssh-keys/badge.svg\n[docs]: https://docs.rs/openssh-keys\n\nA pure-Rust library to handle OpenSSH public keys.\n\n`openssh-keys` can parse, print, and fingerprint OpenSSH public keys.\nIt supports the following algorithms:\n\n* RSA\n* DSA\n* ECDSA (nistp256, nistp384, nistp521)\n* ED25519\n\nIt can construct RSA and DSA keys from their components using the `PublicKey::from_rsa()` and\n`PublicKey::from_dsa()` functions respectively.\n\n## Example\n\n```rust\nextern crate openssh_keys;\n\nuse std::{env, fs, io, path};\nuse std::io::BufRead;\n\nfn main() {\n    let home = env::home_dir().unwrap_or(path::PathBuf::from(\"/home/core/\"));\n    let pub_path = home.join(\".ssh\").join(\"id_rsa.pub\");\n    println!(\"Inspecting '{}':\", pub_path.to_string_lossy());\n    let file = fs::File::open(\u0026pub_path).expect(\"unable to open RSA pubkey\");\n    let reader = io::BufReader::new(file);\n    \n    for (i, line) in reader.lines().enumerate() {\n        let line = line.expect(\u0026format!(\"unable to read key at line {}\", i + 1));\n        let pubkey = openssh_keys::PublicKey::parse(\u0026line).expect(\"unable to parse RSA pubkey\");\n        println!(\" * Pubkey #{} -\u003e {}\", i + 1, pubkey.to_fingerprint_string());\n    }\n}\n```\n\nSome more examples are available under [examples](examples).\n\n## Release process\n\nReleases can be performed by [creating a new release ticket][new-release-ticket] and following the steps in the checklist there.\n\n## License\n\nLicensed under either of\n\n* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or\n  http://www.apache.org/licenses/LICENSE-2.0)\n* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\nat your option.\n\n## Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be\ndual licensed as above, without any additional terms or conditions.\n\n[new-release-ticket]: https://github.com/coreos/openssh-keys/issues/new?labels=release\u0026template=release-checklist.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoreos%2Fopenssh-keys","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoreos%2Fopenssh-keys","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoreos%2Fopenssh-keys/lists"}