pub fn agree<S, P>(secret: &S, public: &P) -> Result<S, Error>where S: SecretKey, P: AsRef<[u8]>,
Agree on a shared secret