{"id":18552951,"url":"https://github.com/cryptosense/key-parsers","last_synced_at":"2025-04-09T22:32:06.332Z","repository":{"id":2630524,"uuid":"45904114","full_name":"cryptosense/key-parsers","owner":"cryptosense","description":"OCaml parsers for multiple key formats","archived":false,"fork":false,"pushed_at":"2024-08-01T08:56:29.000Z","size":462,"stargazers_count":15,"open_issues_count":1,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-24T13:21:20.661Z","etag":null,"topics":["cryptography","ocaml","ocaml-library","parsers"],"latest_commit_sha":null,"homepage":null,"language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cryptosense.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-11-10T10:15:39.000Z","updated_at":"2024-08-01T08:56:34.000Z","dependencies_parsed_at":"2023-01-11T16:11:25.684Z","dependency_job_id":null,"html_url":"https://github.com/cryptosense/key-parsers","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptosense%2Fkey-parsers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptosense%2Fkey-parsers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptosense%2Fkey-parsers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptosense%2Fkey-parsers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cryptosense","download_url":"https://codeload.github.com/cryptosense/key-parsers/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248123805,"owners_count":21051537,"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":["cryptography","ocaml","ocaml-library","parsers"],"created_at":"2024-11-06T21:15:37.319Z","updated_at":"2025-04-09T22:32:05.834Z","avatar_url":"https://github.com/cryptosense.png","language":"OCaml","funding_links":[],"categories":[],"sub_categories":[],"readme":"# key-parsers\n\n[![Build Status][build_status_badge]][build_status_link]\n\nKey-parsers offers parsers and printers for various asymmetric key formats.\n\n## `Key_parsers`\n\nIt currently comes with four submodules.\n\n### `Asn1`\n\nNote that all the parsers in this module expect the raw DER encoded byte string. They\ndon't handle PEM armoring (`----BEGIN X----` and `----END X----`) nor decode Base64 or\nhex.\n\nHere you can find parsers for the following formats:\n\n- PKCS#1 encoding of RSA Private and Public keys as defined in\n  [PKCS#1 v2.2](https://tools.ietf.org/html/rfc8017#appendix-A)\n- PKCS#8 encoding of RSA, DSA, EC and DH Private keys as defined in\n  [RFC 5208](https://tools.ietf.org/html/rfc5208#section-5)\n- X.509 SubjectPublicKeyInfo encoding of RSA, DSA, EC and DH Public keys as defined in\n  [RFC 5280](https://tools.ietf.org/html/rfc5280#appendix-A)\n- DER encodings of DSA, EC and DH Parameters and Private keys as produced by OpenSSL\n  commands such as `dsaparam` and `gendsa`\n\n### `Pgp`\n\nParsers for PGP (Pretty Good Privacy) encodings of DSA, RSA and Elgamal Public and\nPrivate keys and user IDs as defined in [RFC 4880] (https://datatracker.ietf.org/doc/html/rfc4880)\nNote that the parsers in this module expect raw byte string. They don't handle PEM armoring\nnor decode Base64 or hex.\n\n### `Ltpa`\n\nParsers for LTPA (Lightweight Third Party Authentication) encodings of RSA private and\npublic keys.\n\n### `Cvc`\n\nParsers for CVC (Card Verifiable Certificates) encodings of RSA and EC Public keys.\n\n## Make a new version\n\nCheck that the changelog is up to date.\n\nCreate an annotated tag with the new version:\n\n```bash\ngit tag --message 'Version 1.2.3' 1.2.3\n```\n\nThen, use `dune-release`:\n\n```bash\ndune-release distrib\ndune-release check\ndune-release publish\ndune-release opam pkg\ndune-release opam submit\n```\n\nThe command `dune-release bistro` can do all of that in one invocation but can be more\nconfusing if you're not used to `dune-release`.\n\n[build_status_badge]: https://github.com/cryptosense/key-parsers/actions/workflows/main.yml/badge.svg\n[build_status_link]: https://github.com/cryptosense/key-parsers/actions/workflows/main.yml\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptosense%2Fkey-parsers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcryptosense%2Fkey-parsers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptosense%2Fkey-parsers/lists"}