class Net::SSH::Transport::Kex::Curve25519Sha256
def self.ensure_supported!
def self.ensure_supported! unless OpenSSL::PKey.respond_to?(:generate_key) && OpenSSL::PKey.respond_to?(:new_raw_public_key) raise UnsupportedError, "OpenSSL::PKey raw public key APIs are unavailable" end key = generate_x25519_key public_key = new_raw_public_key(key.raw_public_key) validate_key_bytes!(key.derive(public_key), "shared secret", KEY_BYTES) rescue OpenSSL::PKey::PKeyError => e raise UnsupportedError, e.message end