We're forwarding the `KeyPair` type from another crate. We should create a wrapper type for this. We should also be able to have a half-opened state for these - e.g. read-write vs just read