spacedrive/crates/crypto
jake 9fb01fc9d2
[ENG-341] OS Keychains (#554)
* super barebones keychain start

* working+unfinished linux keychain

* add `copy` to `Identifier` and add `delete()`

* add generic errors + code cleanup

* cleanup code & add support for apple keychains

* remove `users` dep

* use uppercase UUID and tweak apple `account` variable

* revert uppercase change and clean up linux labels

* code cleanup & add a readme to the crypto crate

* remove useless `map`

* correctly handle keyring not supported errors

* add `Send` to `Box<dyn Keyring>`

* remove useless `cfg`s

* only return `Ok()` if we support keychains (pls work CI)

* clippy

* Minor fixes

---------

Co-authored-by: Ericson Fogo Soares <ericson.ds999@gmail.com>
2023-02-01 00:11:03 +00:00
..
assets [ENG-307] Key manager features (#467) 2022-12-02 10:18:21 +00:00
benches disable benchmarks as they need async support 2023-01-24 14:25:42 +00:00
examples update examples 2023-01-24 14:25:19 +00:00
src [ENG-341] OS Keychains (#554) 2023-02-01 00:11:03 +00:00
Cargo.toml [ENG-341] OS Keychains (#554) 2023-02-01 00:11:03 +00:00
README.md [ENG-341] OS Keychains (#554) 2023-02-01 00:11:03 +00:00

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 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.