mirror of
https://github.com/sonr-io/crypto.git
synced 2026-09-17 01:26:23 +00:00
feat: init docs
This commit is contained in:
@@ -1,26 +1,81 @@
|
||||
# Sonr Crypto
|
||||
|
||||
Sonr Crypto is a collection of cryptographic primitives that are used by Sonr.
|
||||
Cryptographic primitives used by Sonr: elliptic-curve arithmetic, threshold signatures,
|
||||
multi-party computation, zero-knowledge proofs, and the identity layer built on top of them.
|
||||
|
||||
**Documentation: https://sonr-io.github.io/crypto**
|
||||
|
||||
```bash
|
||||
go get github.com/sonr-io/crypto
|
||||
```
|
||||
|
||||
Requires Go 1.24.7 or newer.
|
||||
|
||||
> [!WARNING]
|
||||
> This library has no public security audit, and several packages contain stubs or known defects.
|
||||
> Read the [security notes](https://sonr-io.github.io/crypto/reference/security) before depending on
|
||||
> any of it.
|
||||
|
||||
## Packages
|
||||
|
||||
- [Accumulator](./accumulator): Accumulator is a cryptographic accumulator that allows for efficient verification of large sets of data.
|
||||
- [Bulletproof](./bulletproof): Bulletproof is a zero-knowledge proof system that allows for efficient verification of large sets of data.
|
||||
- [Core](./core): Core is a collection of cryptographic primitives that are used by Sonr.
|
||||
- [Daed](./daed): Daed is a distributed key generation protocol that allows for efficient verification of large sets of data.
|
||||
- [Dkg](./dkg): Dkg is a distributed key generation protocol that allows for efficient verification of large sets of data.
|
||||
- [Ecies](./ecies): Ecies is a symmetric encryption algorithm that allows for efficient verification of large sets of data.
|
||||
- [Keys](./keys): Keys is a collection of cryptographic primitives that are used by Sonr.
|
||||
- [Mpc](./mpc): Mpc is a collection of cryptographic primitives that are used by Sonr.
|
||||
- [Ot](./ot): Ot is a collection of cryptographic primitives that are used by Sonr.
|
||||
- [Paillier](./paillier): Paillier is a cryptographic algorithm that allows for efficient verification of large sets of data.
|
||||
- [Sharing](./sharing): Sharing is a collection of cryptographic primitives that are used by Sonr.
|
||||
- [Signatures](./signatures): Signatures is a collection of cryptographic primitives that are used by Sonr.
|
||||
- [Subtle](./subtle): Subtle is a collection of cryptographic primitives that are used by Sonr.
|
||||
- [Tecdsa](./tecdsa): Tecdsa is a collection of cryptographic primitives that are used by Sonr.
|
||||
- [Ted25519](./ted25519): Ted25519 is a collection of cryptographic primitives that are used by Sonr.
|
||||
- [Ucan](./ucan): Ucan is a collection of cryptographic primitives that are used by Sonr.
|
||||
- [Zkp](./zkp): Zkp is a collection of cryptographic primitives that are used by Sonr.
|
||||
### Foundations
|
||||
|
||||
- [`core/curves`](./core/curves): the `Curve` / `Point` / `Scalar` abstraction every other package is
|
||||
written against, with secp256k1, NIST P-256, Ed25519, Pallas, BLS12-381, and BLS12-377.
|
||||
- [`core`](./core): modular arithmetic, hash-to-field, HMAC commitments, and safe-prime generation.
|
||||
- [`core/protocol`](./core/protocol): the message and iterator types that drive multi-round protocols.
|
||||
|
||||
### Symmetric and key derivation
|
||||
|
||||
- [`aead`](./aead): AES-256-GCM with generated, prepended nonces.
|
||||
- [`daed`](./daed): AES-SIV-CMAC deterministic AEAD (RFC 5297).
|
||||
- [`argon2`](./argon2): Argon2id password hashing and key derivation.
|
||||
- [`subtle`](./subtle): HKDF, X25519, and hash/curve name helpers.
|
||||
- [`salt`](./salt), [`password`](./password), [`secure`](./secure): salt handling, password policy,
|
||||
and memory-hygiene helpers.
|
||||
|
||||
### Signatures
|
||||
|
||||
- [`signatures/bls`](./signatures/bls): BLS signatures with aggregation, proof of possession, and
|
||||
threshold key generation.
|
||||
- [`signatures/bbs`](./signatures/bbs): BBS+ signatures for selective disclosure and blind signing.
|
||||
- [`signatures/schnorr`](./signatures/schnorr): Mina (Pallas/Poseidon) and NEM (Ed25519-Keccak) schemes.
|
||||
- [`ecdsa`](./ecdsa): low-S canonicalization and RFC 6979 deterministic signing.
|
||||
- [`vrf`](./vrf): verifiable random function over Edwards25519.
|
||||
|
||||
### Threshold cryptography and MPC
|
||||
|
||||
- [`sharing`](./sharing): Shamir, Feldman, and Pedersen secret sharing.
|
||||
- [`dkg`](./dkg): FROST and Gennaro distributed key generation.
|
||||
- [`tecdsa`](./tecdsa): two-party threshold ECDSA (DKLs18) with key refresh.
|
||||
- [`ted25519`](./ted25519): threshold Ed25519 and FROST threshold Schnorr signing.
|
||||
- [`ot`](./ot): base oblivious transfer and correlated OT extension — building blocks for the above.
|
||||
- [`mpc`](./mpc): threshold ECDSA packaged as a single enclave value: keygen, sign, verify, refresh.
|
||||
|
||||
### Zero-knowledge
|
||||
|
||||
- [`zkp/schnorr`](./zkp/schnorr): non-interactive proof of knowledge of a discrete log.
|
||||
- [`accumulator`](./accumulator): pairing-based accumulator with constant-size membership proofs.
|
||||
- [`bulletproof`](./bulletproof): inner-product argument and range proofs.
|
||||
- [`paillier`](./paillier): additively homomorphic encryption with a square-free modulus proof.
|
||||
|
||||
### Identity
|
||||
|
||||
- [`keys`](./keys): `did:key` encoding and decoding over libp2p public keys.
|
||||
- [`ucan`](./ucan): UCAN capability tokens, attenuation, and verification.
|
||||
- [`ecies`](./ecies): ECIES payload encryption over secp256k1.
|
||||
- [`wasm`](./wasm): Ed25519 signing and hash pinning for WebAssembly modules.
|
||||
|
||||
## Documentation
|
||||
|
||||
The site under `docs/` is built with [Blume](https://useblume.dev) and deployed to GitHub Pages by
|
||||
`.github/workflows/docs.yml`.
|
||||
|
||||
```bash
|
||||
npm ci
|
||||
npm run dev # local preview with hot reload
|
||||
npm run build # static output to dist/
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
|
||||
Reference in New Issue
Block a user