• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

crypto_provider/25-Apr-2025-1,425680

crypto_provider_boringssl/25-Apr-2025-1,6431,168

crypto_provider_default/25-Apr-2025-5229

crypto_provider_rustcrypto/25-Apr-2025-1,430988

crypto_provider_stubs/25-Apr-2025-553425

crypto_provider_test/25-Apr-2025-11,0418,621

README.mdD25-Apr-20251.3 KiB3824

README.md

1# What is this?
2
3A crypto provider that abstracts over different crypto implementations, mainly the Rust
4implementations by [RustCrypto](https://github.com/RustCrypto) and BoringSSL.
5
6## Project structure
7
8### `crypto_provider`
9
10Our own abstraction on top of crypto implementations, including functionalities
11like AES, SHA2, X25519 and P256 ECDH, HKDF, HMAC, etc.
12
13Two implementations are currently provided, `crypto_provider_rustcrypto` and
14`crypto_provider_boringssl`.
15
16#### `crypto_provider::aes`
17Abstraction on top plain AES, including AES-CTR and AES-CBC.
18
19Since we know we'll have multiple AES implementations in practice (an embedded
20device might want to use mbed, but a phone or server might use BoringSSL, etc),
21it's nice to define our own minimal AES interface that exposes only what we need
22and is easy to use from FFI (when we get to that point).
23
24### `crypto_provider_rustcrypto`
25
26Implementations of `crypto_provider` types using the convenient pure-Rust primitives
27from [Rust Crypto](https://github.com/RustCrypto).
28
29### `crypto_provider_boringssl`
30
31Implementations of `crypto_provider` types using the
32[bssl-crypto](https://boringssl.googlesource.com/boringssl/+/master/rust/bssl-crypto), which is a
33Rust binding layer for BoringSSL.
34
35## Setup
36
37See `nearby/presence/README.md` for machine setup instructions.
38