Expand description
A small Protocol Library for Portal - An encrypted file transfer utility
This crate enables a consumer to:
- Create/serialize/deserialize Portal request/response messages.
- Negoticate a symmetric key with a peer using SPAKE2
- Encrypt files with Chacha20-Poly1305 using either the RustCrypto implementation or Ring’s
- Send/receive files through a Portal relay
The library is broken up into two abstractions:
- A higher level API, exposted via the
Portal
struct, to facilitate automating transfers easily - A lower level API, exposed via the
protocol::Protocol
struct, if you need access to lower-level facilities
Re-exports§
pub use protocol::*;
Modules§
- errors
- protocol
- Lower level protocol methods. Use these if the higher-level Portal interface is too abstract.
Structs§
- Portal
- The primary interface into the library.
Constants§
- CHUNK_
SIZE - Default chunk size
- DEFAULT_
PORT - Arbitrary port for the Portal protocol
- NO_
PROGRESS_ CALLBACK - None constant for optional progress callbacks - Helper
- NO_
VERIFY_ CALLBACK - None constant for optional verify callbacks - Helper