{"id":19442974,"url":"https://github.com/syncom/libg2hec","last_synced_at":"2025-04-25T00:32:08.894Z","repository":{"id":38117648,"uuid":"542135","full_name":"syncom/libg2hec","owner":"syncom","description":"A Genus 2 Crypto C++ Library","archived":false,"fork":false,"pushed_at":"2024-03-27T00:43:36.000Z","size":993,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-03T13:39:22.624Z","etag":null,"topics":["genus-2-curves","hyperelliptic-curves"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/syncom.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2010-03-02T00:24:22.000Z","updated_at":"2025-04-02T23:22:43.000Z","dependencies_parsed_at":"2023-01-31T00:46:25.855Z","dependency_job_id":"91a6550b-b218-4d88-a3f8-3087c64956d5","html_url":"https://github.com/syncom/libg2hec","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syncom%2Flibg2hec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syncom%2Flibg2hec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syncom%2Flibg2hec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syncom%2Flibg2hec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/syncom","download_url":"https://codeload.github.com/syncom/libg2hec/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250733345,"owners_count":21478344,"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":["genus-2-curves","hyperelliptic-curves"],"created_at":"2024-11-10T15:41:36.378Z","updated_at":"2025-04-25T00:32:08.618Z","avatar_url":"https://github.com/syncom.png","language":"C","readme":"# THE G2HEC LIBRARY\n\n[![Sanity Checks](https://github.com/syncom/libg2hec/actions/workflows/sanity.yml/badge.svg)](https://github.com/syncom/libg2hec/actions/workflows/sanity.yml)\n[![CodeQL Static Analysis](https://github.com/syncom/libg2hec/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/syncom/libg2hec/actions/workflows/codeql-analysis.yml)\n[![Clang Static Analysis](https://github.com/syncom/libg2hec/actions/workflows/clang-sa.yml/badge.svg)](https://github.com/syncom/libg2hec/actions/workflows/clang-sa.yml)\n[![Docs Status](https://github.com/syncom/libg2hec/actions/workflows/publish-docs.yml/badge.svg)](https://github.com/syncom/libg2hec/actions/workflows/publish-docs.yml)\n\nThe G2HEC (Genus 2 HyperElliptic Curve) library is a free portable C++\nlibrary providing divisor group operations in the Jacobian of genus 2\n(imaginary) hyperelliptic curve.  Such curves can be used for\ndiscrete-logarithm-based cryptosystems with advantages over elliptic\ncurves (genus 1 curves).  Divisor group operations are essential to\nusing genus 2 curves for cryptography.\n\nIt is built on top of [V. Shoup's NTL\nlibrary](http://www.shoup.net/ntl/), \"a high performance, portable C++\nlibrary providing data structures and algorithms for arbitrary length\nintegers; for vectors, matrices, and polynomials over the integers and\nover finite fields; and for arbitrary precision floating point\narithmetic.\" G2HEC has been tested with NTL 5.5 on an `x86_64` Ubuntu.\nYou may refer to build scripts\n[scripts/install-ntl-5.5.sh](./scripts/install-ntl-5.5.sh) and\n[scripts/build.sh](./scripts/build.sh) for sample commands building the\nlibrary.\n\nIt is recommended to build NTL using GMP (the GNU Multi-Precision\npackage) for best performance.  However, the G2HEC library can be built\nand used with and without the existence of GMP.  The GMP library\nhomepage: http://www.swox.com/gmp/.\n\nThis library does not assume users' familiarity with any non-trivial\nmath background except basic concepts of finite fields and polynomials.\nNo prior knowledge of genus 2 curve is needed to used the library.\n\nThe G2HEC library is released under the GNU Lesser General Public\nLicense Version 2.1.  See the file COPYING for details.\n\n## How to build\n\nOn Ubuntu,\n\n```bash\n$ cd libg2hec/\n# Install dependencies\n$ sudo apt install autotools-dev autoconf texinfo build-essential bear\n# Bootstrap\n$ autoreconf -vi\n# Build NTL and libg2hec\n$ ./scripts/build.sh\n# Install libg2hec\n$ make install \n```\n\nThis installs NTL and libg2hec (including documentation) in a temporary\ndirectory by default (useful for CI testing). You may override the\ninstallation location using the `INSTALL_DIR_PREFIX` environment\nvariable when calling `./script/build.sh`, e.g.,\n\n```bash\nINSTALL_DIR_PREFIX=/tmp/nssw ./script/build.sh\n```\n\n## Documentation\n\n\u003chttps://syncom.github.io/libg2hec/\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyncom%2Flibg2hec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsyncom%2Flibg2hec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyncom%2Flibg2hec/lists"}