summaryrefslogtreecommitdiff
path: root/lib/chessh/ssh/server_key.ex
blob: eae9577744cd460e66fc0f2019726f482ec6319c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
defmodule Chessh.SSH.ServerKey do
  alias Chessh.PlayerSession
  alias Chessh.Auth.KeyAuthenticator

  @behaviour :ssh_server_key_api

  def is_auth_key(key, username, _daemon_options) do
    PlayerSession.update_sessions_and_player_satisfies(
      username,
      fn player -> KeyAuthenticator.authenticate(player, key) end
    )
  end

  def host_key(algorithm, daemon_options) do
    :ssh_file.host_key(algorithm, daemon_options)
  end
end