Expand description

Credentials

Credentials are used to to authenticate messages and members of a group are represented by a Credential. Clients create a CredentialBundle which contains the private key material and expose a Credential in the key packages they generate.

The MLS protocol spec allows credentials to change over time. Concretely, members can issue an Update proposal or a Full Commit to update their credential. The new credential still needs to be signed by the old credential.

When receiving a credential update from another member, applications must ensure the new credential is valid and need to query the Authentication Service for that matter.

Credentials are specific to a signature scheme, which is part of the ciphersuite of a group. Clients can have several credentials with different signature schemes.

Structs

A `BasicCredential as defined in the MLS protocol spec:

Struct containing an X509 certificate chain, as per Spec.

Struct containing MLS credential data, where the data depends on the type.

This struct contains a credential and the corresponding private key.

Enums

An error that occurs in methods of a [Credential].

Enum for Credential Types. We only need this for encoding/decoding.

This enum contains the different available credentials.