core_crypto/mls/credential/
typ.rs

1use std::unreachable;
2
3use openmls::prelude::CredentialType;
4
5/// Lists all the supported Credential types. Could list in the future some types not supported by
6/// openmls such as Verifiable Presentation
7#[derive(Default, Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd)]
8#[repr(u8)]
9pub enum MlsCredentialType {
10    /// Basic credential i.e. a KeyPair
11    #[default]
12    Basic = 0x01,
13    /// A x509 certificate generally obtained through e2e identity enrollment process
14    X509 = 0x02,
15}
16
17impl From<CredentialType> for MlsCredentialType {
18    fn from(value: CredentialType) -> Self {
19        match value {
20            CredentialType::Basic => MlsCredentialType::Basic,
21            CredentialType::X509 => MlsCredentialType::X509,
22            _ => unreachable!("Unknown credential type"),
23        }
24    }
25}
26
27impl From<MlsCredentialType> for CredentialType {
28    fn from(value: MlsCredentialType) -> Self {
29        match value {
30            MlsCredentialType::Basic => CredentialType::Basic,
31            MlsCredentialType::X509 => CredentialType::X509,
32        }
33    }
34}