{"id":15373030,"url":"https://github.com/vi/curve25519tool","last_synced_at":"2026-04-28T04:02:01.552Z","repository":{"id":137140057,"uuid":"239125090","full_name":"vi/curve25519tool","owner":"vi","description":"Command-line tool to perform curve25519 and ed25519 operations","archived":false,"fork":false,"pushed_at":"2020-08-10T20:08:11.000Z","size":26,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-11T19:41:49.767Z","etag":null,"topics":["cli","command-line","command-line-tool","curve25519","ed25519","prebuilt"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/vi.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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-08T11:58:23.000Z","updated_at":"2021-07-07T18:20:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"196659d1-ca06-419c-8804-ca681b8072ce","html_url":"https://github.com/vi/curve25519tool","commit_stats":{"total_commits":16,"total_committers":1,"mean_commits":16.0,"dds":0.0,"last_synced_commit":"baee1a12b8b24e76e8573c32df429adf880b0fae"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/vi/curve25519tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vi%2Fcurve25519tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vi%2Fcurve25519tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vi%2Fcurve25519tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vi%2Fcurve25519tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vi","download_url":"https://codeload.github.com/vi/curve25519tool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vi%2Fcurve25519tool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32365519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"online","status_checked_at":"2026-04-28T02:00:07.250Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cli","command-line","command-line-tool","curve25519","ed25519","prebuilt"],"created_at":"2024-10-01T13:54:08.068Z","updated_at":"2026-04-28T04:02:01.522Z","avatar_url":"https://github.com/vi.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# curve25519tool\nCommand-line tool to perform curve25519 / ed25519 operations\n\nAllows to generate private and public keys, derive shared keys (without the hashing step), sign and verify signatures.\n\nThere are pre-built executables on Github Releases.\n\n```\n$ curve25519tool --help\nUsage: target/debug/curve25519tool \u003ccommand\u003e [\u003cargs\u003e]\n\nUse curve25519 and ed25519 from command line\n\nOptions:\n  --help            display usage information\n\nCommands:\n  gen               Generate new private curve25519 or ed25519 key and print it\n                    as hex to stdout\n  massage           Set and clear bits from a 32-byte hex string specified on\n                    stdin for it to be suitable x25519 private key\n  pub               Read private key from stdin and print public key to stdout.\n  base              Print basepoint (9) as hex.\n  mul               Read private key from stdin and public key from command line\n                    argument, then print shared key as hex to stdout\n  sign              Sign stdin data using private key read from specified file\n  verify            Verify signature of data supplied to stdin\n  curve2ed          Convert MontgomeryPoint to CompressedEdwardsY point\n  ed2curve          Convert CompressedEdwardsY to MontgomeryPoint and a sign (0\n                    or 1), space-separated\n  expand_ed         Extract private key from ed25519 seed value (read from\n                    stdin)\n  scalar            Subcommands involving scalars or add/sub\n\n$ curve25519tool gen\n6071c98d7db4d7fead9b9409c06aa39d691c6065d584d2bc2127fb5ecfa18d64\n\n$ echo 6071c98d7db4d7fead9b9409c06aa39d691c6065d584d2bc2127fb5ecfa18d64 | curve25519tool pub\nf36adf3861d5b0e8ea1e999368f4a558832ed8b4b44accc337848ec847bf5779\n\n$ echo 6071c98d7db4d7fead9b9409c06aa39d691c6065d584d2bc2127fb5ecfa18d64 | curve25519tool mul 0900000000000000000000000000000000000000000000000000000000000000\nf36adf3861d5b0e8ea1e999368f4a558832ed8b4b44accc337848ec847bf5779\n```\n\nCurrently signing slightly differs from a typical ed25519:\n\n* Randomness is not derived from a hash of a seed. It can be specified explicitly. Private curve25519 point is used explicitly instead of deriving one from a hash\n* Typically unused highest bit of a signature stores sign bit to help to convert curve25519 pubkey to a ed25519 pubkey.\n\nThis allows using the same pubkey for Diffie-Hellman, encryption and signing.\n\nSupport for usual ed25519 keys is also provided.\n\nVersion 0.1 is based on curve25519-donna and \"ref10\" ed25519 implementation, version 0.2 defaults to \"dalek\" implementation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvi%2Fcurve25519tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvi%2Fcurve25519tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvi%2Fcurve25519tool/lists"}