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 ¶
Directories ¶
Path | Synopsis |
---|---|
abe | Package abe provides Attribute-based data encryption algorithms. |
abe/cpabe | Package cpabe provides Ciphertext-Policy Attribute-based Encryption algorithms. |
abe/cpabe/tkn20 | Package tkn20 implements a ciphertext-policy ABE by Tomida, Kawahara, Nishimaki. |
abe/cpabe/tkn20/internal | |
blindsign | Package blindsign provides blind signature schemes. |
blindsign/blindrsa | Package blindrsa implements the RSA Blind Signature Protocol as defined in [RFC9474]. |
blindsign/blindrsa/internal | |
blindsign/blindrsa/partiallyblindrsa | Package partiallyblindrsa implements a partially blind RSA protocol. |
cipher | Package cipher provides data encryption algorithms. |
cipher/ascon | Package ascon provides ASCON family of light-weight AEAD ciphers. |
dh | Package dh provides variety of Diffie-Hellman key exchange methods. |
dh/csidh | Package csidh implements commutative supersingular isogeny-based Diffie-Hellman key exchange algorithm (CSIDH) resulting from the group action. |
dh/curve4q | Package curve4q implements Diffie-Hellman operations using the FourQ curve at the 128-bit security level. |
dh/sidh | Package sidh is deprecated, it provides SIDH and SIKE key encapsulation mechanisms. |
dh/sidh/internal | |
dh/x25519 | Package x25519 provides Diffie-Hellman functions as specified in RFC-7748. |
dh/x448 | Package x448 provides Diffie-Hellman functions as specified in RFC-7748. |
ecc | Package ecc provides implementation of arithmetic on some elliptic curves. |
ecc/bls12381 | Package bls12381 provides bilinear pairings using the BLS12-381 curve. |
ecc/bls12381/ff | Package ff provides finite fields of characteristic P381. |
ecc/fourq | Package fourq provides elliptic curve operations over FourQ curve. |
ecc/goldilocks | Package goldilocks provides elliptic curve operations over the goldilocks curve. |
ecc/p384 | Package p384 provides optimized elliptic curve operations on the P-384 curve. |
expander | Package expander generates arbitrary bytes from an XOF or Hash function. |
group | Package group provides prime-order groups based on elliptic curves. |
hpke | Package hpke implements the Hybrid Public Key Encryption (HPKE) standard specified by draft-irtf-cfrg-hpke-07. |
internal | |
kem | Package kem provides a unified interface for KEM schemes. |
kem/frodo | Package frodo provides the key encapsulation mechanism FrodoKEM. |
kem/frodo/frodo640shake | Package frodo640shake implements the variant FrodoKEM-640 with SHAKE. |
kem/hybrid | Package hybrid defines several hybrid classical/quantum KEMs for use in TLS. |
kem/kyber | Package 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/kyber1024 | Package 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/kyber512 | Package 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/kyber768 | Package 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/mlkem | Package mlkem implements IND-CCA2 secure ML-KEM key encapsulation mechanism (KEM) as defined in FIPS 203. |
kem/mlkem/mlkem1024 | Package mlkem1024 implements the IND-CCA2 secure key encapsulation mechanism ML-KEM-1024 as defined in FIPS203. |
kem/mlkem/mlkem512 | Package mlkem512 implements the IND-CCA2 secure key encapsulation mechanism ML-KEM-512 as defined in FIPS203. |
kem/mlkem/mlkem768 | Package mlkem768 implements the IND-CCA2 secure key encapsulation mechanism ML-KEM-768 as defined in FIPS203. |
kem/schemes | Package schemes contains a register of KEM schemes. |
kem/sike | Package sike is deprecated, it contains the SIKE key encapsulation mechanism. |
kem/sike/sikep434 | Package sikep434 is deprecated, it implements the key encapsulation mechanism SIKEp434. |
kem/sike/sikep503 | Package sikep503 is deprecated, it implements the key encapsulation mechanism SIKEp503. |
kem/sike/sikep751 | Package sikep751 is deprecated, it implements the key encapsulation mechanism SIKEp751. |
kem/xwing | Package xwing implements the X-Wing PQ/T hybrid KEM |
math | Package math provides some utility functions for big integers. |
math/fp25519 | Package fp25519 provides prime field arithmetic over GF(2^255-19). |
math/fp448 | Package fp448 provides prime field arithmetic over GF(2^448-2^224-1). |
math/mlsbset | Package mlsbset provides a constant-time exponentiation method with precomputation. |
math/polynomial | Package polynomial provides representations of polynomials over the scalars of a group. |
oprf | Package oprf provides Verifiable, Oblivious Pseudo-Random Functions. |
ot | Package ot provides oblivious-transfer protocols. |
ot/simot | |
pke | Package pke provides a variety of public key encryption mechanisms. |
pke/kyber | Package 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/kyber1024 | kyber1024 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/kyber512 | kyber512 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/kyber768 | kyber768 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 | |
secretsharing | Package secretsharing provides methods to split secrets into shares. |
sign | Package sign provides unified interfaces for signature schemes. |
sign/bls | Package bls provides BLS signatures using the BLS12-381 pairing curve. |
sign/dilithium | Deprecated. |
sign/dilithium/mode2 | mode2 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/mode3 | mode3 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/mode5 | mode5 implements the CRYSTALS-Dilithium signature scheme Dilithium5 as submitted to round3 of the NIST PQC competition and described in |
sign/dilithium/mode5/internal | |
sign/ed25519 | Package ed25519 implements Ed25519 signature scheme as described in RFC-8032. |
sign/ed448 | Package ed448 implements Ed448 signature scheme as described in RFC-8032. |
sign/eddilithium2 | Package eddilithium2 implements the hybrid signature scheme Ed25519-Dilithium2. |
sign/eddilithium3 | Package eddilithium3 implements the hybrid signature scheme Ed448-Dilithium3. |
sign/internal | |
sign/mldsa | mldsa implements NIST post-quantum signature scheme ML-DSA (FIPS204) |
sign/mldsa/mldsa44 | mldsa44 implements NIST signature scheme ML-DSA-44 as defined in FIPS204. |
sign/mldsa/mldsa44/internal | |
sign/mldsa/mldsa65 | mldsa65 implements NIST signature scheme ML-DSA-65 as defined in FIPS204. |
sign/mldsa/mldsa65/internal | |
sign/mldsa/mldsa87 | mldsa87 implements NIST signature scheme ML-DSA-87 as defined in FIPS204. |
sign/mldsa/mldsa87/internal | |
sign/schemes | Package schemes contains a register of signature algorithms. |
simd | Package simd provides parallel implementations of some primitives. |
simd/keccakf1600 | Package keccakf1600 provides a two and four-way Keccak-f[1600] permutation in parallel. |
tss | Package tss provides threshold signature schemes. |
tss/rsa | Package rsa provides RSA threshold signature scheme. |
tss/rsa/internal | |
vdaf | Package vdaf provides verifiable distributed aggregation functions. |
vdaf/prio3 | Package prio3 implements Prio3, a set of Verifiable Distributed Aggregation Functions (VDAFs). |
vdaf/prio3/arith | Package arith provides arithmetic operations over prime fields, vectors, and polynomials. |
vdaf/prio3/arith/fp128 | |
vdaf/prio3/arith/fp64 | |
vdaf/prio3/count | Package count is a VDAF for counting Boolean measurements. |
vdaf/prio3/histogram | Package histogram is a VDAF for aggregating integer measurements into buckets. |
vdaf/prio3/internal | |
vdaf/prio3/mhcv | Package mhcv is a VDAF for aggregating vectors of Booleans with bounded weight. |
vdaf/prio3/sum | Package sum is a VDAF for aggregating integers in a pre-determined range. |
vdaf/prio3/sumvec | Package sumvec is a VDAF for aggregating vectors of integers in a pre-determined range. |
xof | Package xof provides an interface for eXtendable-Output Functions. |
xof/k12 | k12 implements the KangarooTwelve XOF. |
zk | Package zk provides primitives for zero-knowledge proofs of knowledge. |
zk/dl | Package dl provides a Schnorr NIZK discrete-log proof. |
zk/dleq | Package dleq provides zero-knowledge proofs of Discrete-Logarithm Equivalence (DLEQ). |
zk/qndleq | Package 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.