mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2025-12-11 20:15:30 +01:00
* Upgrade rspc + Specta + PCR * fix jsonrpc executor * fix invalidate excessive logging * fix `Protected` type * fix mobile * clippy * lol
Crypto
This crate contains Spacedrive's cryptographic modules.
This includes things such as:
- The key manager
- Encryption and decryption
- Encrypted file header formats (with extremely fast serialization and deserialization)
- Key hashing and derivation
- Keyring interfaces to access native OS keystores
It has support for the following cryptographic functions:
Argon2idBalloonhashingBLAKE3key derivationXChaCha20-Poly1305AES-256-GCM
It aims to be (relatively) lightweight, easy to maintain and platform-agnostic where possible. It does contain some platform-specific code, although it's only built if the target matches.
Features
A list of all features can be found below (NOTE: none of these features are enabled by default)
serde- provides integration with theserdeandserde_jsoncrates. this also enables header metadatarspc- provides integration with therspccratekeymanager- provides an interface for handling the encryption, decryption, storage and derivation of passwords/keys. this enables theos-keyringsfeatureos-keyrings- provides a unified interface for interacting with OS-keyrings (currently only supports MacOS/iOS and Gnome/KDE (viagnome-keyringandkwalletrespectively))
Security Notice
This crate has NOT received any security audit - however, a couple of our upstream libraries (provided by RustCrypto) have.
You may find them below:
- AES-GCM and XChaCha20-Poly1305 audit by NCC group (link)
Breaking changes are very likely! Use at your own risk - no stability or security is guaranteed.