A Scala cryptographic toolkit providing hash functions, signing, encoding, and authenticated data structures for secure applications.
Scrypto is a cryptographic toolkit for Scala that provides a suite of secure primitives including hash functions, signing algorithms, encoding schemes, and authenticated data structures. It solves the problem of making cryptography accessible and safe for developers building applications that require robust security features.
Scala developers working on applications needing cryptographic operations, such as blockchain projects, secure messaging systems, or any software requiring data integrity and authentication.
Developers choose Scrypto for its comprehensive, thread-safe implementations of essential cryptographic algorithms, its origin in the proven Scorex blockchain framework, and its permissive public domain license that allows unrestricted use.
Cryptographic primitives for Scala
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multiple secure hash algorithms like Blake2b, Keccak, and SHA, all implemented as thread-safe for concurrent use, as detailed in the 'Hash functions' section.
Implements two-party authenticated data structures with batching compression and verifier efficiency guarantees, based on academic research from the referenced IACR paper.
Provides a Scala wrapper for Curve25519-Java using JDK SecureRandom, ensuring robust elliptic curve signatures for Ed25519 and Curve25519, with simple API calls demonstrated in the README.
Includes Base16, Base58, and Base64 for reliable binary-to-text encoding and decoding, with clear examples like Base64.encode and decode in the documentation.
Focuses primarily on hashing, signing, and data structures, lacking common features such as symmetric encryption or key derivation functions, which limits its utility for broader cryptographic needs.
The README admits incomplete sections, notably the Merkle tree description marked as TODO, which can hinder developers seeking comprehensive guidance and examples.
Requires npm installation for ScalablyTyped and specific SBT memory settings, adding setup overhead and potential environment issues, as mentioned in the contributing section.