{"id":36589346,"url":"https://github.com/cryptimeleon/mclwrap","last_synced_at":"2026-01-12T08:09:51.582Z","repository":{"id":43293970,"uuid":"146083386","full_name":"cryptimeleon/mclwrap","owner":"cryptimeleon","description":"A wrapper to bring the mcl pairing library into cryptimeleon","archived":false,"fork":false,"pushed_at":"2022-03-09T14:02:22.000Z","size":4825,"stargazers_count":3,"open_issues_count":6,"forks_count":1,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2025-09-10T06:27:00.415Z","etag":null,"topics":["java-bindings","mcl-library"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cryptimeleon.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-25T09:38:54.000Z","updated_at":"2025-06-04T15:39:48.000Z","dependencies_parsed_at":"2022-08-24T01:10:17.677Z","dependency_job_id":null,"html_url":"https://github.com/cryptimeleon/mclwrap","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/cryptimeleon/mclwrap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptimeleon%2Fmclwrap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptimeleon%2Fmclwrap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptimeleon%2Fmclwrap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptimeleon%2Fmclwrap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cryptimeleon","download_url":"https://codeload.github.com/cryptimeleon/mclwrap/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptimeleon%2Fmclwrap/sbom","scorecard":{"id":310120,"data":{"date":"2025-08-11","repo":{"name":"github.com/cryptimeleon/mclwrap","commit":"138aa38f4b8ea7248c15a168528a861276c5184b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.3,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":5,"reason":"Found 5/10 approved changesets -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":4,"reason":"binaries present in source code","details":["Warn: binary detected: gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: src/main/resources/org/cryptimeleon/mclwrap/bn254/mcljava-linux-x64.so:1","Warn: binary detected: src/main/resources/org/cryptimeleon/mclwrap/bn254/mcljava-linux-x86.so:1","Warn: binary detected: src/main/resources/org/cryptimeleon/mclwrap/bn254/mcljava-mac-x64.dylib:1","Warn: binary detected: src/main/resources/org/cryptimeleon/mclwrap/bn254/mcljava-win-x64.dll:1","Warn: binary detected: src/main/resources/org/cryptimeleon/mclwrap/bn254/mcljava-win-x86.dll:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/dev-ci.yaml:1","Warn: no topLevel permission defined: .github/workflows/dev-embedded-mcl-ci.yaml:1","Warn: no topLevel permission defined: .github/workflows/main-ci.yaml:1","Warn: no topLevel permission defined: .github/workflows/main-embedded-mcl-ci.yaml:1","Warn: no topLevel permission defined: .github/workflows/scheduled-main-ci.yaml:1","Warn: no topLevel permission defined: .github/workflows/tagged_release.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/dev-ci.yaml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/cryptimeleon/mclwrap/dev-ci.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/dev-ci.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/cryptimeleon/mclwrap/dev-ci.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/dev-embedded-mcl-ci.yaml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/cryptimeleon/mclwrap/dev-embedded-mcl-ci.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/dev-embedded-mcl-ci.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/cryptimeleon/mclwrap/dev-embedded-mcl-ci.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main-ci.yaml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/cryptimeleon/mclwrap/main-ci.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main-ci.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/cryptimeleon/mclwrap/main-ci.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main-embedded-mcl-ci.yaml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/cryptimeleon/mclwrap/main-embedded-mcl-ci.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main-embedded-mcl-ci.yaml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/cryptimeleon/mclwrap/main-embedded-mcl-ci.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/scheduled-main-ci.yaml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/cryptimeleon/mclwrap/scheduled-main-ci.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/scheduled-main-ci.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/cryptimeleon/mclwrap/scheduled-main-ci.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tagged_release.yaml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/cryptimeleon/mclwrap/tagged_release.yaml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tagged_release.yaml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/cryptimeleon/mclwrap/tagged_release.yaml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tagged_release.yaml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/cryptimeleon/mclwrap/tagged_release.yaml/develop?enable=pin","Info:   0 out of  12 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v3.2.0 not signed: https://api.github.com/repos/cryptimeleon/mclwrap/releases/57151281","Warn: release artifact v3.1.0 not signed: https://api.github.com/repos/cryptimeleon/mclwrap/releases/55352749","Warn: release artifact v3.0.0 not signed: https://api.github.com/repos/cryptimeleon/mclwrap/releases/49965885","Warn: release artifact v2.0.0 not signed: https://api.github.com/repos/cryptimeleon/mclwrap/releases/45418280","Warn: release artifact v1.0.0 not signed: https://api.github.com/repos/cryptimeleon/mclwrap/releases/40073668","Warn: release artifact v3.2.0 does not have provenance: https://api.github.com/repos/cryptimeleon/mclwrap/releases/57151281","Warn: release artifact v3.1.0 does not have provenance: https://api.github.com/repos/cryptimeleon/mclwrap/releases/55352749","Warn: release artifact v3.0.0 does not have provenance: https://api.github.com/repos/cryptimeleon/mclwrap/releases/49965885","Warn: release artifact v2.0.0 does not have provenance: https://api.github.com/repos/cryptimeleon/mclwrap/releases/45418280","Warn: release artifact v1.0.0 does not have provenance: https://api.github.com/repos/cryptimeleon/mclwrap/releases/40073668"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 25 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T23:01:27.526Z","repository_id":43293970,"created_at":"2025-08-17T23:01:27.527Z","updated_at":"2025-08-17T23:01:27.527Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337224,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["java-bindings","mcl-library"],"created_at":"2026-01-12T08:09:47.146Z","updated_at":"2026-01-12T08:09:51.576Z","avatar_url":"https://github.com/cryptimeleon.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Build Status](https://github.com/cryptimeleon/mclwrap/actions/workflows/dev-ci.yaml/badge.svg)\n![Build Status](https://github.com/cryptimeleon/mclwrap/actions/workflows/dev-embedded-mcl-ci.yaml/badge.svg)\n![Build Status](https://github.com/cryptimeleon/mclwrap/actions/workflows/main-ci.yaml/badge.svg)\n![Build Status](https://github.com/cryptimeleon/mclwrap/actions/workflows/scheduled-main-ci.yaml/badge.svg)\n# Mclwrap\n\nMclwrap provides a wrapper around the BN-254 and BLS12-381 bilinear group implemented in the [MCL library](https://github.com/herumi/mcl). As the bilinear groups implemented in the Cryptimeleon Math library are not particulary efficient, use of this wrapper is recommended for proper benchmarks.\nSpecifically, the Mclwrap implementation's group operations are roughly 100 times as fast as our own implementation.\n\n## Security Disclaimer\n**WARNING: This library is meant to be used for prototyping and as a research tool *only*. It has not been sufficiently vetted for use in security-critical production environments. All implementations are to be considered experimental.**\n\n## Table Of Contents\n\n* [Quickstart Guide](#quickstart)\n    * [Adding Maven Dependency](#adding-mclwrap-dependency-with-maven)\n    * [Adding Gradle Dependency](#adding-mclwrap-dependency-with-gradle)\n* [Compiling mcl on Linux/macOS](#compiling-mcl-on-linux-or-macos)\n* [Compiling mcl on Windows](#compiling-mcl-on-windows)\n* [Miscellaneous Information](#miscellaneous-information)\n\n## Quickstart\n\nSimply add mclwrap as a dependency (see below for [maven](#adding-mclwrap-dependency-with-maven) and [gradle](#adding-mclwrap-dependency-with-gradle) snippets) and start using the `MclBilinearGroup` in your code.\nYou can pass `GroupChoice.BN254` or `GroupChoice.BLS12_381` to the constructor of `MclBilinearGroup` to choose which group to use.\nNote that we currently do not support instantiating both groups at the same time.\n\nFor full performance, you should compile the underlying mcl library for your system yourself (by default, a precompiled maximum-compatibility version of mcl is used, which may miss out on some modern processor features).\nInstructions for this can be found below. \n\n### Adding Mclwrap Dependency With Maven\nTo add the newest Mclwrap version as a dependency, add this to your project's POM:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.cryptimeleon\u003c/groupId\u003e\n    \u003cartifactId\u003emclwrap\u003c/artifactId\u003e\n    \u003cversion\u003e[3.0,)\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### Adding Mclwrap Dependency With Gradle\n\nMclwrap is published via Maven Central.\nTherefore, you need to add `mavenCentral()` to the `repositories` section of your project's `build.gradle` file.\nThen, add `implementation group: 'org.cryptimeleon', name: 'mclwrap', version: '3.+'` to the `dependencies` section of your `build.gradle` file.\n\nFor example:\n\n```groovy\nrepositories {\n    mavenCentral()\n}\n\ndependencies {\n    implementation group: 'org.cryptimeleon', name: 'mclwrap', version: '3.+'\n}\n```\n\n## Compiling mcl on Linux or macOS\nThis is optional, but strongly recommended for full performance on modern CPUs.\n\nYou can peform most of the installation automatically by using the [scripts/install_fast_mcljava_linux_mac.sh](scripts/install_fast_mcljava_linux_mac.sh) script contained in this repository. \nIt will compile the mcl library as well as the Java bindings, and move the shared library to the correct library folder.\nAs a prerequisite, you need to have the `libgmp-dev` package (i.e. libgmp and the corresponding headers) installed. You can also run the [install_mcljava_with_optimized_gmp.sh](scripts/install_mcljava_with_optimized_gmp.sh) script with an arbitrary second parameter in order to download and compile gmp from source and install it to /usr/local/{include,lib} for future use.\nYou will also need `make` and `g++` (or `clang++` if using FreeBSD or OpenBSD).\n\nThe [scripts/install_fast_mcljava_linux_mac.sh](scripts/install_fast_mcljava_linux_mac.sh) script takes the `include` path of your Java JDK as its only argument. \nThe path should be given without a trailing forward slash.  \nThe created binary library is optimized for roughly the CPU model and operating system version the script was executed on and **might not work** on other CPUs and system versions. If you want the created library to be portable to other machines, use the scripts whose names contain \"portable\".\n\nFinally, the [install_mcljava_with_optimized_gmp.sh](scripts/install_mcljava_with_optimized_gmp.sh) script takes the same `include` paramter, but tries to link against an existing or compiles an optimized libgmp to or from /usr/locale/lib. On some systems, especially older CPUs running Linux, this can achieve additional performance compared to the install_fast_mcljava_linux_mac.sh script, while on other systems the resulting library is slower.\n\n## Compiling mcl on Windows\nThis is optional, but strongly recommended for full performance on modern CPUs.\n\nAs prerequisites you need Visual Studio with C++ build tools and the Windows 10 SDK installed.\nThese should be easily installable using the setup application that comes with Visual Studio, which you can access by going to the program deinstallation settings in Windows and then selecting modify under Visual Studio.\nThen select the C++ workload and deselect everything but the C++ build tools and the Windows 10 SDK.\nFurthermore, you need a Java SDK Version 8 or higher as well as the Git command line application (or some other way to clone git repos).\n\nI did this using Visual Studio 2019 Community Edition and Oracle JDK Version 15 on Windows 10.\n\nThe below commands are executed in the Developer Command Prompt for VS 2019 since this allows using the C++ build tools without having to manipulate PATH.\n\nBefore you start with the actual installation, you need to make sure that x64 is selected as target architecure in the Command Prompt.\nFor VS 2017 or later, this is done by executing `vcvarsall.bat x64` in the `C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Auxiliary\\Build\\` folder (replace with your Visual Studio location). For VS 2015, the batch file will be in `C:\\Program Files (x86)\\Microsoft Visual Studio 15.0\\VC\\` instead.\n\nNow, we need to clone [Mcl](https://github.com/herumi/mcl) and [Cybozu_ext](https://github.com/herumi/cybozulib_ext). The repositories need to be in the same folder. Furthermore, we need to ensure that the correct version of Mcl is checked out. To set the version (vX.YZ) of mcl in the following snippet see [scripts/install_fast_mcljava_linux_mac.sh](https://github.com/cryptimeleon/mclwrap/blob/f46bfb7e8c18c9534aeabd68612071ae7642362f/scripts/install_fast_mcljava_linux_mac.sh#L2).\n```\ngit clone https://github.com/herumi/mcl.git\ngit clone https://github.com/herumi/cybozulib_ext.git\ncd mcl\ngit checkout vX.YZ\n```\n\nNext, we build Mcl:\n```\nmklib\nmk -s test\\bls12_test.cpp \u0026\u0026 bin\\bls12_test.exe\n```\nThis will build Mcl as a static library and run some tests.\nIf you get a `module machine type 'X654' conflicts with target machine type 'x86'` error, you probably forgot to execute `vcvarsall.bat x64` during the first step.\nIf `c1` or `lib` cannot be found, you don't have the C++ build tools installed or they cannot be found.\nIf the compiler complains about missing headers, you are probably missing the Windows 10 SDK.\n\nIf this succeeds, we can move on to building the java bindings. This will require you to set the `JAVA_HOME` variable to your Java SDK installation folder.\n```\ncd ffi\\java\nset JAVA_HOME=C:\\PROGRA~1\\Java\\jdk-15\nmake_wrap\n```\nIf you are wondering what is going with that `JAVA_HOME` path, the script seems to not like spaces in folder names so we are using DOS folder names which don't contain spaces.\nYou can find out the DOS folder names by executing `dir /X`.\n\nLastly, we need to move the compiled DLL to the correct path. This is basically a path that is in your system variable PATH.  \nYou can find the dll that you have to move under `mcl\\bin\\mcljava.dll`.\nOne way to find one of the target paths is to run the `.\\gradlew test` for mclwrap. Then the PATH should be printed in the console in the first warning, because mclwrap cannot find the `mcljava.dll`, but lists all the places where it looked for it. One example is the path: `C:\\Users\\\u003cUser\u003e\\.jdks\\openjdk-15\\bin`, where the jdk may vary depending on your setup.\nThe second option is to just look at your PATH (or extend it with a path of your choice) and but the `mcljava.dll` in one of the included paths.\n\n\n## Miscellaneous Information\n\n- Official Documentation can be found [here](https://cryptimeleon.org).\n- Mclwrap adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n- The changelog can be found [here](CHANGELOG.md).\n- A description of how we have built the packaged precompiled mcl library can be found [here](PORTABLE.md).\n- Mclwrap is licensed under Apache License 2.0, see [LICENSE file](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptimeleon%2Fmclwrap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcryptimeleon%2Fmclwrap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptimeleon%2Fmclwrap/lists"}