Paul Miller avatar

I make projects which help developers to build awesome things. I adore learning more about infosec & austrian economics. Ping me on twitter, check out my github, gitlab, Hell Yeah, or send me an email. My PGP is 46BEEF337A641ABB


noble cryptography is a high-security, easily auditable set of contained cryptographic libraries and tools with following features:
  • No dependencies, tiny files
  • Easily auditable TypeScript code
  • Supported in all major browsers and stable node.js versions
  • All releases are signed with PGP keys
The idea was to: 1) improve knowledge of cryptography 2) improve supply chain security of JS ecosystem 3) provide libraries that could be used for learning, because other libs are too low-level / unfriendly to beginners. There are 4 libraries right now, they are available on github, gitlab and NPM:
  • secp256k1 (GH, GL, NPM): RFC6979 deterministic ECDSA, BIP0340 Schnorr signatures, ECDH
  • ed25519 (GH, GL, NPM): RFC8032 EDDSA, ristretto255 prime-order group
  • bls12-381 (GH, GL, NPM): Boneh-Lynn-Shacham threshold signatures and pairings usable by zk-SNARKs
  • hashes (GH, GL, NPM): SHA2, SHA3, RIPEMD, BLAKE2/3, HMAC, HKDF, PBKDF2 & Scrypt

Brief history of Noble

Demo 1: Elliptic curve calculator

This is a simple form that allows to calculate elliptic curve public keys and signatures with noble. “Random” button uses crypto.getRandomValues, which is cryptographically secure RNG. We are converting EC x, y coordinates into base-16 form for compactness. The source code is available on GitHub.