https://github.com/cloudflare/circl Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code + Explore + All features + Documentation + GitHub Skills + Blog * Solutions + For + Enterprise + Teams + Startups + Education + By Solution + CI/CD & Automation + DevOps + DevSecOps + Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles + Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} cloudflare / circl Public * Notifications * Fork 92 * Star 833 CIRCL: Cloudflare Interoperable Reusable Cryptographic Library blog.cloudflare.com/introducing-circl License View license 833 stars 92 forks Star Notifications * Code * Issues 28 * Pull requests 12 * Actions * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Wiki * Security * Insights cloudflare/circl This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 6 branches 5 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/c] Use Git or checkout with SVN using the web URL. [gh repo clone cloudf] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @bwesterb bwesterb tkn20: Don't build outdated source file ... 459b64f Dec 19, 2022 tkn20: Don't build outdated source file Temporary workaround for #385. 459b64f Git stats * 479 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .etc Bumping linter to v1.49 Aug 25, 2022 .github/workflows Setting up CodeQL analyzer. Oct 19, 2022 abe/cpabe/tkn20 tkn20: Don't build outdated source file Dec 19, 2022 blindsign Add deterministic blind RSA verifier (#379) Oct 17, 2022 dh Reorder Fp2Mul Aug 27, 2022 ecc Formating files with new go1.19 fmt tool. Aug 9, 2022 expander Formatting code with linter. Mar 4, 2022 group Add Scalar/SetBigInt function (#377) Oct 10, 2022 hpke Bumping linter to v1.49 Aug 25, 2022 internal Formating files with new go1.19 fmt tool. Aug 9, 2022 kem Formating files with new go1.19 fmt tool. Aug 9, 2022 math Bumping up to go 1.19 version. Aug 17, 2022 oprf Moves dleq to new top-level zero-knowledge package. Aug 31, 2022 ot/simot simOT Sep 14, 2022 pke Fix generation of code depending on io/ioutil. Aug 9, 2022 pki Formatting code with linter. Mar 4, 2022 sign dilithium: fix typo Aug 15, 2022 simd Formating files with new go1.19 fmt tool. Aug 9, 2022 tss/rsa Adds RSA Threshold signatures (#364) Oct 10, 2022 xof Formating files with new go1.19 fmt tool. Aug 9, 2022 zk zk dl Sep 15, 2022 CITATION.cff Updating readme for v1.3.0. Nov 11, 2022 LICENSE Set year to the original date. Jul 14, 2020 Makefile Setting up CodeQL analyzer. Oct 19, 2022 README.md Updating readme for v1.3.0. Nov 11, 2022 codecov.yml add codecov.io to ci and readme badge Mar 3, 2020 doc.go Fix small typo (from armfazh) Sep 12, 2019 go.mod Bumping up to go 1.19 version. Aug 17, 2022 go.sum Bumping up to go 1.19 version. Aug 17, 2022 View code [ ] CIRCL Security Disclaimer Installation List of Algorithms Diffie-Hellman Protocol Digital Signature Schemes Groups based on Elliptic Curves High-Level Protocols Post-Quantum Key Encapsulation Methods Post-Quantum Public-Key Encryption Post-Quantum Digital Signature Schemes Field Arithmetic Elliptic Curves Parallel SIMD XOF: eXtendable Output Functions Zero-knowledge Proofs Testing and Benchmarking Contributing How to Cite License README.md [icon] CIRCL GitHub release CIRCL GoDoc Go Report Card codecov CIRCL (Cloudflare Interoperable, Reusable Cryptographic Library) is a collection of cryptographic primitives written in Go. The goal of this library is to be used as a tool for experimental deployment of cryptographic algorithms targeting Post-Quantum (PQ) and Elliptic Curve Cryptography (ECC). Security Disclaimer This library is offered as-is, and without a guarantee. Therefore, it is expected that changes in the code, repository, and API occur in the future. We recommend to take caution before using this library in a production application since part of its content is experimental. All security issues must be reported, please notify us immediately following the instructions given in our Security Policy. Installation You can get CIRCL by fetching: go get -u github.com/cloudflare/circl List of Algorithms Diffie-Hellman Protocol * X25519 * X448 * Curve4Q Digital Signature Schemes * Ed25519 * Ed448 Groups based on Elliptic Curves * P-256, P-384, P-521, FIPS 186-4 * Ristretto * Hash to Curve High-Level Protocols * HPKE: Hybrid Public-Key Encryption * VOPRF: Verifiable Oblivious Pseudorandom function: OPRF, VOPRF and POPRF modes. * BlindRSA: Blind RSA signatures. * CPABE: Ciphertext-policy Attribute-based Encryption. Post-Quantum Key Encapsulation Methods * CSIDH: Post-Quantum Commutative Group Action * Kyber KEM: modes 512, 768, 1024 * FrodoKEM KEM: modes 640-SHAKE * (insecure, deprecated) SIDH/SIKE: Supersingular Key Encapsulation with primes p434, p503, p751 Post-Quantum Public-Key Encryption * Kyber PKE: modes 512, 768, 1024 Post-Quantum Digital Signature Schemes * Dilithium: modes 2, 3, 5 Field Arithmetic * Fp25519, Fp448, Fp381 Elliptic Curves * P-384 Curve * FourQ * Goldilocks * BLS12-381: Bilinear pairings, hash to G1 and G2. Parallel SIMD * Keccak f1600 Permutation XOF: eXtendable Output Functions * FIPS 202: SHAKE128 and SHAKE256 * BLAKE2X: BLAKE2XB and BLAKE2XS Zero-knowledge Proofs * Schnorr: Prove knowledge of the Discrete Logarithm. * DLEQ: Prove knowledge of the Discrete Logarithm Equality. Testing and Benchmarking Library comes with number of make targets which can be used for testing and benchmarking: * test performs testing of the binary. * bench runs benchmarks. * cover produces coverage. * lint runs set of linters on the code base. Contributing To contribute, fork this repository and make your changes, and then make a Pull Request. A Pull Request requires approval of the admin team and a successful CI build. How to Cite To cite CIRCL, use one of the following formats and update the version and date you accessed this project. APA Style Faz-Hernandez, A. and Kwiatkowski, K. (2019). Introducing CIRCL: An Advanced Cryptographic Library. Cloudflare. Available at https://github.com/cloudflare/circl. v1.3.0 Accessed Nov, 2022. Bibtex Source @manual{circl, title = {Introducing CIRCL: An Advanced Cryptographic Library}, author = {Armando Faz-Hern\'{a}ndez and Kris Kwiatkowski}, organization = {Cloudflare}, abstract = {{CIRCL (Cloudflare Interoperable, Reusable Cryptographic Library) is a collection of cryptographic primitives written in Go. The goal of this library is to be used as a tool for experimental deployment of cryptographic algorithms targeting Post-Quantum (PQ) and Elliptic Curve Cryptography (ECC).}}, note = {Available at \url{https://github.com/cloudflare/circl}. v1.3.0 Accessed Nov, 2022}, month = jun, year = {2019} } CFF Style See attached CITATION.cff file. License The project is licensed under the BSD-3-Clause License. About CIRCL: Cloudflare Interoperable Reusable Cryptographic Library blog.cloudflare.com/introducing-circl Topics go golang cryptography pki ed25519 elliptic-curves circl post-quantum sidh dilithium kyber ed448 hpke sike csidh Resources Readme License View license Code of conduct Code of conduct Security policy Security policy Stars 833 stars Watchers 40 watching Forks 92 forks Releases 4 CIRCL v1.3.0 Latest Nov 11, 2022 + 3 releases Used by 898 * @Whiteh4tWolf * @goark * @passbolt * @passbolt * @kdo-wildsau * @shinebayar-g + 890 Contributors 16 * * * * * * * * * * * + 5 contributors Languages * Go 75.0% * Assembly 22.7% * C 2.2% * Other 0.1% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.