A pure-Rust library implementing multi-hop Proxy Re-encryption (Transform Encryption) for secure data delegation.
Recrypt is a pure-Rust cryptographic library that implements a multi-hop Proxy Re-encryption scheme, known as Transform Encryption. It solves the problem of secure data delegation by allowing ciphertexts encrypted for one user to be transformed so they can be decrypted by another user, without the intermediary ever accessing the plaintext or private keys.
Developers building systems that require secure data sharing, access control, or privacy-preserving data delegation, particularly those working in Rust or WebAssembly environments.
It provides a rigorously audited, production-ready implementation of a collusion-safe, multi-hop Proxy Re-encryption scheme with performance optimizations and memory protection, offering a foundational primitive for building advanced cryptographic applications.
A set of cryptographic primitives for building a multi-hop Proxy Re-encryption scheme, known as Transform Encryption.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The library has been formally audited by NCC Group, confirming cryptographic correctness and resistance to side-channel attacks, as noted in the README.
Automatically uses mlock on supported platforms to prevent sensitive data from swapping to disk, with an option to disable it via feature flags.
Includes a dedicated u32_backend and wasm feature flag for compiling to WebAssembly, enabling secure use in browser-based applications.
Supports chained transformations for flexible access control, allowing delegatees to further delegate decryption rights, as highlighted in the key features.
Requires careful selection of feature flags (e.g., u64_backend vs u32_backend) for different targets, and misconfiguration can lead to compile errors, adding setup overhead.
Benchmarks show operations like transform key generation and transformations take milliseconds, which may be too slow for latency-critical applications.
The AGPL license and associated patents could limit commercial use without a paid license, introducing legal and compliance hurdles for some projects.