diff options
author | Hans Nilsson <[email protected]> | 2015-12-07 10:26:44 +0100 |
---|---|---|
committer | Hans Nilsson <[email protected]> | 2015-12-07 10:26:44 +0100 |
commit | c84f85cc31ae8f13e8a44b866b90ad51f1c676c3 (patch) | |
tree | f348f0e9bc196a0ccae2d2d0c4eb97d5ab2c2341 /lib/ssh/src/ssh_auth.erl | |
parent | 6436c0d210b46b949f5e2de7ad328d3081eb3fa4 (diff) | |
parent | 1d1677c2a85ebce0ada828d254c7a1122b825e0a (diff) | |
download | otp-c84f85cc31ae8f13e8a44b866b90ad51f1c676c3.tar.gz otp-c84f85cc31ae8f13e8a44b866b90ad51f1c676c3.tar.bz2 otp-c84f85cc31ae8f13e8a44b866b90ad51f1c676c3.zip |
Merge branch 'maint'
* maint:
ssh: tests skips if not supported crypto
ssh: ssh_auth checks support for user pubkey alg
ssh: client pub key opt implemented
ssh: client pub key testcase
ssh: client pub key documentation
Diffstat (limited to 'lib/ssh/src/ssh_auth.erl')
-rw-r--r-- | lib/ssh/src/ssh_auth.erl | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/ssh/src/ssh_auth.erl b/lib/ssh/src/ssh_auth.erl index 4967a2e4cd..fdbb5c152a 100644 --- a/lib/ssh/src/ssh_auth.erl +++ b/lib/ssh/src/ssh_auth.erl @@ -118,11 +118,16 @@ init_userauth_request_msg(#ssh{opts = Opts} = Ssh) -> service = "ssh-connection", method = "none", data = <<>>}, + Algs0 = proplists:get_value(pref_public_key_algs, Opts, ?SUPPORTED_USER_KEYS), + %% The following line is not strictly correct. The call returns the + %% supported HOST key types while we are interested in USER keys. However, + %% they "happens" to be the same (for now). This could change.... + %% There is no danger as long as the set of user keys is a subset of the set + %% of host keys. + CryptoSupported = ssh_transport:supported_algorithms(public_key), + Algs = [A || A <- Algs0, + lists:member(A, CryptoSupported)], - - Algs = proplists:get_value(public_key, - proplists:get_value(preferred_algorithms, Opts, []), - ssh_transport:default_algorithms(public_key)), Prefs = method_preference(Algs), ssh_transport:ssh_packet(Msg, Ssh#ssh{user = User, userauth_preference = Prefs, |