@@ -60,13 +60,13 @@ let guard_msg t msg =
60
60
let msgid = message_to_id msg in
61
61
guard (id = msgid) (" Unexpected message " ^ string_of_int (message_id_to_int msgid))
62
62
63
+ let host_key_algs key =
64
+ List. filter Hostkey. (alg_matches (priv_to_typ key)) Hostkey. preferred_algs
65
+
63
66
let make host_key user_db =
64
67
let open Ssh in
65
68
let server_kexinit =
66
- let algs =
67
- List. filter Hostkey. (alg_matches (priv_to_typ host_key))
68
- Hostkey. preferred_algs
69
- in
69
+ let algs = host_key_algs host_key in
70
70
Kex. make_kexinit algs Kex. server_supported ()
71
71
in
72
72
let banner_msg = Ssh. Msg_version version_banner in
@@ -112,7 +112,8 @@ let rekey t =
112
112
match t.keying, (Kex. is_keyed t.keys_stoc) with
113
113
| false , true -> (* can't be keying and must be keyed *)
114
114
let server_kexinit =
115
- Kex. make_kexinit Hostkey. preferred_algs Kex. server_supported ()
115
+ let algs = host_key_algs t.host_key in
116
+ Kex. make_kexinit algs Kex. server_supported ()
116
117
in
117
118
let t = { t with server_kexinit; keying = true } in
118
119
Some (t, Ssh. Msg_kexinit server_kexinit)
@@ -343,13 +344,13 @@ let input_msg t msg now =
343
344
expect = Some MSG_NEWKEYS }
344
345
([ Msg_kexdh_reply (pub_host_key, f, signature); Msg_newkeys ] @ (
345
346
if t.ext_info then
346
- let preferred_algs =
347
+ let algs =
347
348
String. concat " ,"
348
- (List. map Hostkey. alg_to_string Hostkey. preferred_algs );
349
+ (List. map Hostkey. alg_to_string (host_key_algs t.host_key) );
349
350
in
350
351
let extensions =
351
352
[Extension { name = " server-sig-algs" ;
352
- value = preferred_algs ; }]
353
+ value = algs ; }]
353
354
in
354
355
[ Msg_ext_info extensions ]
355
356
else [] ))
0 commit comments