Audited, minimal JavaScript implementation of elliptic curve cryptography with support for multiple curves and signature schemes.
noble-curves is a JavaScript library that provides audited, minimal implementations of elliptic curve cryptography. It solves the need for a secure, dependency-light cryptographic toolkit in JavaScript environments, offering a wide range of curves and algorithms like ECDSA, EdDSA, Schnorr, BLS, ECDH, and hash-to-curve.
JavaScript and TypeScript developers building applications requiring cryptographic signatures, key exchange, or advanced elliptic curve operations, particularly in security-sensitive domains like blockchain, authentication, and secure messaging.
Developers choose noble-curves for its independent security audits, minimal bundle size, comprehensive feature set, and adherence to cryptographic standards, all while maintaining high performance and cross-platform compatibility without heavy dependencies.
Audited & minimal JS implementation of elliptic curve cryptography.
Independently audited by multiple firms like Cure53 and Trail of Bits, with PGP-signed releases and transparent builds, ensuring high trustworthiness for security-critical applications.
Tree-shakeable design excludes unused code, resulting in a small footprint (29KB gzipped) and optimal bundle sizes, as highlighted in the README's performance benchmarks.
Implements a comprehensive suite of curves including secp256k1, P-256, ed25519, and BLS12-381, supporting Weierstrass, Edwards, and Montgomery forms for diverse cryptographic needs.
Hand-optimized for JavaScript engine caveats with extensive benchmarking, providing fast operations for signatures and key exchange, as shown in the speed section with M4 benchmarks.
Works in browsers, Node.js, Deno, and React Native (with polyfills), making it versatile for various JavaScript environments without heavy dependencies.
Admits in the security section that constant-timeness is extremely hard to achieve in JS due to JIT and GC, potentially exposing timing attacks in sensitive applications.
Advanced features like FROST threshold signatures are marked as new and not audited yet, posing potential security risks for early adopters, as warned in the README.
Upgrading from v1 to v2 involved significant breaking changes, such as switching to prehashed messages by default and renaming methods, which can disrupt existing implementations and require careful migration.
Relies on noble-hashes for cryptographic hashing, adding a dependency that, while minimal, means security audits must cover both libraries, and updates might be tied to its release cycle.
JavaScript library of crypto standards.
bcrypt for NodeJs
[DEPRECATED] Stanford Javascript Crypto Library
A tiny (18.5 kB gzip), zero-dependency, Javascript library to perform OpenSSL RSA Encryption, Decryption, and Key Generation.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.