     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21

    mod curve25519;
    // mod dh_group_sha1;

    pub use self::curve25519::Curve25519;
    // pub use self::dh_group_sha1::DhGroupSha1;

    use connection::Connection;
    use packet::Packet;

    pub enum KexResult {
        Ok(Packet),
        Done(Packet),
        Error,
    }

    pub trait KeyExchange {
        fn process(&mut self, conn: &mut Connection, packet: Packet) -> KexResult;
        fn shared_secret<'a>(&'a self) -> Option<&'a [u8]>;
        fn exchange_hash<'a>(&'a self) -> Option<&'a [u8]>;
        fn hash(&self, data: &[&[u8]]) -> Vec<u8>;
    }

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result
+
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)