mpc_websocket/
lib.rs

1//! # Hazmat
2//!
3//! DO NOT use this in production without end-to-end encryption as it is
4//! vulnerable to a MITM attack if the server is compromised.
5//!
6//! Instead you can should use a
7//! [framework](https://github.com/mpc-sdk/framework) with
8//! end-to-end encryption.
9//!
10//! # About
11//!
12//! Experimental websocket server for MPC key generation and
13//! signing using JSON-RPC.
14//!
15//! The library has been designed so that the messages transferred
16//! between parties are only stored in memory for the shortest lifetime;
17//! that is just enough time to extract the required routing information
18//! to be able to handle the message.
19//!
20//! Auditors will want to pay particular attention to the handling
21//! of the `SESSION_MESSAGE` and `NOTIFY_PROPOSAL` methods which
22//! are sensitive for security and privacy reasons.
23//!
24//! By looking at the source for [Group](Group), [Session](Session)
25//! and [State](State) structs auditors can verify that no sensitive
26//! information is stored in the server state.
27//!
28//! A session may have associated data in it's `value` which is
29//! public information that can be shared between clients; the `value`
30//! may be set by the session *owner* when the session is created and
31//! later retrieved by other clients when they join the session.
32//!
33//! The associated session data is typically used by signing sessions
34//! to indicate the message or transaction that will be signed.
35#![deny(missing_docs)]
36mod server;
37pub mod services;
38
39pub use server::*;