Trait ServerPskSniKeyProvider

Source
pub trait ServerPskSniKeyProvider<'a>: Debug {
    // Required method
    fn key_for_sni(
        &self,
        sni: &CStr,
        session: &CoapServerSession<'_>,
    ) -> Option<PskKey<'a>>;
}
Expand description

Trait for things that can provide PSK DTLS keys for a given Server Name Indication.

Required Methods§

Source

fn key_for_sni( &self, sni: &CStr, session: &CoapServerSession<'_>, ) -> Option<PskKey<'a>>

Provide a key for the server name indication given as sni, or None if the SNI is not valid and no key is available.

Note that libcoap will remember the returned key and re-use it for future handshakes with the same SNI (even if the peer is not the same), the return value should therefore not depend on the provided session.

Implementations on Foreign Types§

Source§

impl<'a, T: Borrow<[u8]> + Debug + Eq + Hash, U: AsRef<PskKey<'a>> + Debug> ServerPskSniKeyProvider<'a> for HashMap<T, U>

Source§

fn key_for_sni( &self, sni: &CStr, _session: &CoapServerSession<'_>, ) -> Option<PskKey<'a>>

Return the map value if the key matches the given SNI.

Source§

impl<'a, T: Borrow<[u8]> + Debug + Ord, U: AsRef<PskKey<'a>> + Debug> ServerPskSniKeyProvider<'a> for BTreeMap<T, U>

Source§

fn key_for_sni( &self, sni: &CStr, _session: &CoapServerSession<'_>, ) -> Option<PskKey<'a>>

Return the map value if the key matches the given SNI.

Source§

impl<'a, T: AsRef<[u8]> + Debug, U: AsRef<PskKey<'a>> + Debug> ServerPskSniKeyProvider<'a> for Vec<(T, U)>

Source§

fn key_for_sni( &self, sni: &CStr, _session: &CoapServerSession<'_>, ) -> Option<PskKey<'a>>

Return the second tuple object if the first one matches the given SNI.

Source§

impl<'a, T: AsRef<[u8]> + Debug, U: AsRef<PskKey<'a>> + Debug> ServerPskSniKeyProvider<'a> for [(T, U)]

Source§

fn key_for_sni( &self, sni: &CStr, _session: &CoapServerSession<'_>, ) -> Option<PskKey<'a>>

Return the second tuple object if the first one matches the given SNI.

Implementors§