fn new(
        backend: &impl OpenMlsCryptoProvider,
        joiner_secret: &JoinerSecret,
        psk: Option<PskSecret>,
    ) -> Self {
        log_crypto!(trace, "PSK input: {:x?}", psk.as_ref().map(|p| p.secret()));
        let secret = joiner_secret
            .secret
            .hkdf_extract(backend, psk.as_ref().map(|p| p.secret()));
        log_crypto!(trace, "Intermediate secret: {:x?}", secret);
        Self { secret }
    }
/// Derive an `IntermediateSecret` from a `JoinerSecret` and an optional
/// PSK.
Derive an `IntermediateSecret` from a `JoinerSecret` and an optional
PSK.
Derive an ` IntermediateSecret ` from a ` JoinerSecret ` and an optional PSK .
fn new(
        backend: &impl OpenMlsCryptoProvider,
        joiner_secret: &JoinerSecret,
        psk: Option<PskSecret>,
    ) -> Self {
        log_crypto!(trace, "PSK input: {:x?}", psk.as_ref().map(|p| p.secret()));
        let secret = joiner_secret
            .secret
            .hkdf_extract(backend, psk.as_ref().map(|p| p.secret()));
        log_crypto!(trace, "Intermediate secret: {:x?}", secret);
        Self { secret }
    }
fn new ( backend : & impl OpenMlsCryptoProvider , joiner_secret : & JoinerSecret , psk : Option < PskSecret > , ) -> Self { log_crypto ! ( trace " " psk as_ref ( ) map ( p p secret ( ) ) ) ; let secret = joiner_secret . secret . hkdf_extract ( backend , psk . as_ref ( ) . map ( | p | p . secret ( ) ) ) ; log_crypto ! ( trace " " secret ) ; Self { secret } }
Derive an `IntermediateSecret` from a `JoinerSecret` and an optional
PSK.
Derive an ` IntermediateSecret ` from a ` JoinerSecret ` and an optional PSK .
backend
&impl OpenMlsCryptoProvider
joiner_secret
&JoinerSecret
psk
Option<PskSecret>
backend
&impl OpenMlsCryptoProvider
joiner_secret
&JoinerSecret
psk
Option<PskSecret>