circl – github.com/cloudflare/circl Index | Files | Directories

package circl

import "github.com/cloudflare/circl"

Package circl provides a collection of cryptographic primitives. The goal of this module is to be used as a tool for experimental deployment of cryptographic algorithms targeting Post-Quantum (PQ) and Elliptic Curve Cryptography (ECC).

Following blog post describes ideas behind CIRCL in more details: https://blog.cloudflare.com/introducing-circl/

Index

Source Files

doc.go

Directories

PathSynopsis
abePackage abe provides Attribute-based data encryption algorithms.
abe/cpabePackage cpabe provides Ciphertext-Policy Attribute-based Encryption algorithms.
abe/cpabe/tkn20Package tkn20 implements a ciphertext-policy ABE by Tomida, Kawahara, Nishimaki.
abe/cpabe/tkn20/internal
blindsignPackage blindsign provides blind signature schemes.
blindsign/blindrsaPackage blindrsa implements the RSA Blind Signature Protocol as defined in [RFC9474].
blindsign/blindrsa/internal
blindsign/blindrsa/partiallyblindrsaPackage partiallyblindrsa implements a partially blind RSA protocol.
cipherPackage cipher provides data encryption algorithms.
cipher/asconPackage ascon provides ASCON family of light-weight AEAD ciphers.
dhPackage dh provides variety of Diffie-Hellman key exchange methods.
dh/csidhPackage csidh implements commutative supersingular isogeny-based Diffie-Hellman key exchange algorithm (CSIDH) resulting from the group action.
dh/curve4qPackage curve4q implements Diffie-Hellman operations using the FourQ curve at the 128-bit security level.
dh/sidhPackage sidh is deprecated, it provides SIDH and SIKE key encapsulation mechanisms.
dh/sidh/internal
dh/x25519Package x25519 provides Diffie-Hellman functions as specified in RFC-7748.
dh/x448Package x448 provides Diffie-Hellman functions as specified in RFC-7748.
eccPackage ecc provides implementation of arithmetic on some elliptic curves.
ecc/bls12381Package bls12381 provides bilinear pairings using the BLS12-381 curve.
ecc/bls12381/ffPackage ff provides finite fields of characteristic P381.
ecc/fourqPackage fourq provides elliptic curve operations over FourQ curve.
ecc/goldilocksPackage goldilocks provides elliptic curve operations over the goldilocks curve.
ecc/p384Package p384 provides optimized elliptic curve operations on the P-384 curve.
expanderPackage expander generates arbitrary bytes from an XOF or Hash function.
groupPackage group provides prime-order groups based on elliptic curves.
hpkePackage hpke implements the Hybrid Public Key Encryption (HPKE) standard specified by draft-irtf-cfrg-hpke-07.
internal
kemPackage kem provides a unified interface for KEM schemes.
kem/frodoPackage frodo provides the key encapsulation mechanism FrodoKEM.
kem/frodo/frodo640shakePackage frodo640shake implements the variant FrodoKEM-640 with SHAKE.
kem/hybridPackage hybrid defines several hybrid classical/quantum KEMs for use in TLS.
kem/kyberPackage kyber implements the CRYSTALS-Kyber.CCAKEM IND-CCA2 secure key encapsulation mechanism (KEM) as submitted to round 3 of the NIST PQC competition and described in
kem/kyber/kyber1024Package kyber1024 implements the IND-CCA2 secure key encapsulation mechanism Kyber1024.CCAKEM as submitted to round 3 of the NIST PQC competition and described in
kem/kyber/kyber512Package kyber512 implements the IND-CCA2 secure key encapsulation mechanism Kyber512.CCAKEM as submitted to round 3 of the NIST PQC competition and described in
kem/kyber/kyber768Package kyber768 implements the IND-CCA2 secure key encapsulation mechanism Kyber768.CCAKEM as submitted to round 3 of the NIST PQC competition and described in
kem/mlkemPackage mlkem implements IND-CCA2 secure ML-KEM key encapsulation mechanism (KEM) as defined in FIPS 203.
kem/mlkem/mlkem1024Package mlkem1024 implements the IND-CCA2 secure key encapsulation mechanism ML-KEM-1024 as defined in FIPS203.
kem/mlkem/mlkem512Package mlkem512 implements the IND-CCA2 secure key encapsulation mechanism ML-KEM-512 as defined in FIPS203.
kem/mlkem/mlkem768Package mlkem768 implements the IND-CCA2 secure key encapsulation mechanism ML-KEM-768 as defined in FIPS203.
kem/schemesPackage schemes contains a register of KEM schemes.
kem/sikePackage sike is deprecated, it contains the SIKE key encapsulation mechanism.
kem/sike/sikep434Package sikep434 is deprecated, it implements the key encapsulation mechanism SIKEp434.
kem/sike/sikep503Package sikep503 is deprecated, it implements the key encapsulation mechanism SIKEp503.
kem/sike/sikep751Package sikep751 is deprecated, it implements the key encapsulation mechanism SIKEp751.
kem/xwingPackage xwing implements the X-Wing PQ/T hybrid KEM
mathPackage math provides some utility functions for big integers.
math/fp25519Package fp25519 provides prime field arithmetic over GF(2^255-19).
math/fp448Package fp448 provides prime field arithmetic over GF(2^448-2^224-1).
math/mlsbsetPackage mlsbset provides a constant-time exponentiation method with precomputation.
math/polynomialPackage polynomial provides representations of polynomials over the scalars of a group.
oprfPackage oprf provides Verifiable, Oblivious Pseudo-Random Functions.
otPackage ot provides oblivious-transfer protocols.
ot/simot
pkePackage pke provides a variety of public key encryption mechanisms.
pke/kyberPackage kyber implements the CRYSTALS-Kyber.CPAPKE public key encryption as submitted to round 3 of the NIST PQC competition and described in
pke/kyber/internal
pke/kyber/kyber1024kyber1024 implements the IND-CPA-secure Public Key Encryption scheme Kyber1024.CPAPKE as submitted to round 3 of the NIST PQC competition and described in
pke/kyber/kyber1024/internal
pke/kyber/kyber512kyber512 implements the IND-CPA-secure Public Key Encryption scheme Kyber512.CPAPKE as submitted to round 3 of the NIST PQC competition and described in
pke/kyber/kyber512/internal
pke/kyber/kyber768kyber768 implements the IND-CPA-secure Public Key Encryption scheme Kyber768.CPAPKE as submitted to round 3 of the NIST PQC competition and described in
pke/kyber/kyber768/internal
pki
secretsharingPackage secretsharing provides methods to split secrets into shares.
signPackage sign provides unified interfaces for signature schemes.
sign/blsPackage bls provides BLS signatures using the BLS12-381 pairing curve.
sign/dilithiumDeprecated.
sign/dilithium/mode2mode2 implements the CRYSTALS-Dilithium signature scheme Dilithium2 as submitted to round3 of the NIST PQC competition and described in
sign/dilithium/mode2/internal
sign/dilithium/mode3mode3 implements the CRYSTALS-Dilithium signature scheme Dilithium3 as submitted to round3 of the NIST PQC competition and described in
sign/dilithium/mode3/internal
sign/dilithium/mode5mode5 implements the CRYSTALS-Dilithium signature scheme Dilithium5 as submitted to round3 of the NIST PQC competition and described in
sign/dilithium/mode5/internal
sign/ed25519Package ed25519 implements Ed25519 signature scheme as described in RFC-8032.
sign/ed448Package ed448 implements Ed448 signature scheme as described in RFC-8032.
sign/eddilithium2Package eddilithium2 implements the hybrid signature scheme Ed25519-Dilithium2.
sign/eddilithium3Package eddilithium3 implements the hybrid signature scheme Ed448-Dilithium3.
sign/internal
sign/mldsamldsa implements NIST post-quantum signature scheme ML-DSA (FIPS204)
sign/mldsa/mldsa44mldsa44 implements NIST signature scheme ML-DSA-44 as defined in FIPS204.
sign/mldsa/mldsa44/internal
sign/mldsa/mldsa65mldsa65 implements NIST signature scheme ML-DSA-65 as defined in FIPS204.
sign/mldsa/mldsa65/internal
sign/mldsa/mldsa87mldsa87 implements NIST signature scheme ML-DSA-87 as defined in FIPS204.
sign/mldsa/mldsa87/internal
sign/schemesPackage schemes contains a register of signature algorithms.
simdPackage simd provides parallel implementations of some primitives.
simd/keccakf1600Package keccakf1600 provides a two and four-way Keccak-f[1600] permutation in parallel.
tssPackage tss provides threshold signature schemes.
tss/rsaPackage rsa provides RSA threshold signature scheme.
tss/rsa/internal
vdafPackage vdaf provides verifiable distributed aggregation functions.
vdaf/prio3Package prio3 implements Prio3, a set of Verifiable Distributed Aggregation Functions (VDAFs).
vdaf/prio3/arithPackage arith provides arithmetic operations over prime fields, vectors, and polynomials.
vdaf/prio3/arith/fp128
vdaf/prio3/arith/fp64
vdaf/prio3/countPackage count is a VDAF for counting Boolean measurements.
vdaf/prio3/histogramPackage histogram is a VDAF for aggregating integer measurements into buckets.
vdaf/prio3/internal
vdaf/prio3/mhcvPackage mhcv is a VDAF for aggregating vectors of Booleans with bounded weight.
vdaf/prio3/sumPackage sum is a VDAF for aggregating integers in a pre-determined range.
vdaf/prio3/sumvecPackage sumvec is a VDAF for aggregating vectors of integers in a pre-determined range.
xofPackage xof provides an interface for eXtendable-Output Functions.
xof/k12k12 implements the KangarooTwelve XOF.
zkPackage zk provides primitives for zero-knowledge proofs of knowledge.
zk/dlPackage dl provides a Schnorr NIZK discrete-log proof.
zk/dleqPackage dleq provides zero-knowledge proofs of Discrete-Logarithm Equivalence (DLEQ).
zk/qndleqPackage qndleq provides zero-knowledge proofs of Discrete-Logarithm Equivalence (DLEQ) on Qn.
Version
v1.6.1 (latest)
Published
Apr 9, 2025
Platform
linux/amd64
Last checked
2 days ago

Tools for package owners.