pub trait UserPublic {
// Required methods
fn fetch_pk(&self) -> &DHPublicKey;
fn message_auth_pk(&self) -> &MessagePublicKey;
fn message_metadata_pk(&self) -> &MetadataPublicKey;
fn message_enc_pk(&self) -> &MessagePublicKey;
}Expand description
Users have the following (public traits) in common: They expose a fetch pubkey, a message auth pubkey (implicit authentication), and a collection of KeyBundles (tuples of keys - a keybundle contains all the key material required to send a message to a given user). A Source has a KeyBundle collection of size 1. A Journalist has KeyBundle collection of size > 1. Some users (Sources) use a key from their message bundle as their message auth key.
Required Methods§
fn fetch_pk(&self) -> &DHPublicKey
Sourcefn message_auth_pk(&self) -> &MessagePublicKey
fn message_auth_pk(&self) -> &MessagePublicKey
The long-term SD-APKE public key pk^APKE.
fn message_metadata_pk(&self) -> &MetadataPublicKey
Sourcefn message_enc_pk(&self) -> &MessagePublicKey
fn message_enc_pk(&self) -> &MessagePublicKey
The ephemeral SD-APKE public key pk^{APKE_E} from a key bundle.