class Net::SSH::Authentication::ED25519::OpenSSHPrivateKeyLoader

def self.bcrypt_pbkdf_key(password, salt, length, rounds)

def self.bcrypt_pbkdf_key(password, salt, length, rounds)
  begin
    require_bcrypt_pbkdf
  rescue LoadError
    raise DecryptError.new("bcrypt_pbkdf is required to decrypt bcrypt-encrypted OpenSSH private keys")
  end
  raise DecryptError.new("Passphrase required for encrypted private key", encrypted_key: true) if password.nil? || password.empty?
  key = BCryptPbkdf::key(password, salt, length, rounds)
  raise DecryptError.new("BCryptPbkdf failed", encrypted_key: true) unless key
  key
end