{"id":30237620,"url":"https://github.com/ellectroid/ecdh-binarycurves-basic","last_synced_at":"2025-08-15T02:05:58.971Z","repository":{"id":303804877,"uuid":"1016726005","full_name":"ellectroid/ECDH-binarycurves-basic","owner":"ellectroid","description":"A small library for doing elliptic curve Diffie-Hellman key exchange using binary curves (NOT CONSTANT TIME)","archived":false,"fork":false,"pushed_at":"2025-07-09T13:32:05.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-09T14:43:30.908Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ellectroid.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,"zenodo":null}},"created_at":"2025-07-09T12:38:32.000Z","updated_at":"2025-07-09T13:32:08.000Z","dependencies_parsed_at":"2025-07-09T14:44:42.099Z","dependency_job_id":"44fd52be-a190-44eb-b06a-6f05bd44f860","html_url":"https://github.com/ellectroid/ECDH-binarycurves-basic","commit_stats":null,"previous_names":["ellectroid/ecdh-binarycurves-basic"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ellectroid/ECDH-binarycurves-basic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ellectroid%2FECDH-binarycurves-basic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ellectroid%2FECDH-binarycurves-basic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ellectroid%2FECDH-binarycurves-basic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ellectroid%2FECDH-binarycurves-basic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ellectroid","download_url":"https://codeload.github.com/ellectroid/ECDH-binarycurves-basic/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ellectroid%2FECDH-binarycurves-basic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270511293,"owners_count":24597666,"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","status":"online","status_checked_at":"2025-08-15T02:00:12.559Z","response_time":110,"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":[],"created_at":"2025-08-15T02:05:55.970Z","updated_at":"2025-08-15T02:05:58.956Z","avatar_url":"https://github.com/ellectroid.png","language":"C++","readme":"# ECDH-binarycurves-basic\nA small library for doing elliptic curve Diffie-Hellman key exchange using binary curves.\n\n## WARNING\nThis library is \u003cb\u003enot a constant time library\u003c/b\u003e. It only gives algebraically correct results!\n\n## Description\nA tiny recreational elliptic curve Diffie-Hellman key exchange library.   \nDependencies: none. Doesn't use standard libraries, doesn't use any runtime libraries (even no memset or memcpy), doesn't #include anything at all.  \nIt should be fully C-compatible C++ code.  \nShould work on any platform for which one can compile C or C++.   \nMin language requirements: C11/C++11 (only because of alignas)   \nThere is room for optimization of underlying algorithms for better use of CPU time   \nThis library can work as a reference   \n\nTested with curves K-163, B-163, K-233, K-283 (Binary curves only! Prime curves not supported!)   \n\nTested on desktop   \nTested on ARM Cortex-M7 STM32F746 @ 216MHz:\n  - ~1.35KiB peak RAM usage with keys and calculations with 37 bytes allocated per GF(2) vector (e.g. with K-283)\n  - ~1.15KiB peak RAM usage with keys and calculations with 32 bytes allocated per GF(2) vector (e.g. with K-233)\n  - ~6.5KiB ROM use for debug build\n  - ~2.9KiB ROM use for release build\n  - Calculating a public key from a private key took around 25 seconds using curve K-233 (curves greater than K-233 seem impractical for it)\n \n## Usage\nThe library doesn't provide curve parameters, but this repository includes library test code that contains parameters for K-163, B-163, K-233 and K-283.   \nMake sure to adjust compile-time value GF2_VECTOR_MAX_BYTELEN in galois_field2.h to make sure it fits your GF(2) vector. Use one byte more than required to fit the entire vector.\nBy default it's 32, so it won't fit K-283 without adjustment.  \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fellectroid%2Fecdh-binarycurves-basic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fellectroid%2Fecdh-binarycurves-basic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fellectroid%2Fecdh-binarycurves-basic/lists"}