diff options
author | Hans Nilsson <[email protected]> | 2015-08-04 10:57:26 +0200 |
---|---|---|
committer | Hans Nilsson <[email protected]> | 2015-08-04 10:57:26 +0200 |
commit | 85d2630e9b4c0f982b88528f5f9dd4dd2472de84 (patch) | |
tree | 525bb852287bf096279ce6734c3b3ecae6bb5508 /lib/ssh/src/ssh_message.erl | |
parent | 1bc032259f571f3c7c00aad8ee1b93fb452f2d40 (diff) | |
parent | e05f0b617f85547cc3c537dda3678d9c9a0e80c1 (diff) | |
download | otp-85d2630e9b4c0f982b88528f5f9dd4dd2472de84.tar.gz otp-85d2630e9b4c0f982b88528f5f9dd4dd2472de84.tar.bz2 otp-85d2630e9b4c0f982b88528f5f9dd4dd2472de84.zip |
Merge branch 'maint'
* maint:
ssh: added more groups for gex
ssh: rm ssh_math and use crypto:compute_key instead
ssh: filter algs unknown to crypto (except pk)
ssh: add test group
ssh: Add experimental 'diffie-hellman-group-exchange-sha256 support
ssh: Repair/add experimental diffie-hellman-group-exchange-sha1 support
Diffstat (limited to 'lib/ssh/src/ssh_message.erl')
-rw-r--r-- | lib/ssh/src/ssh_message.erl | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/ssh/src/ssh_message.erl b/lib/ssh/src/ssh_message.erl index 1f0f6fb15f..7b786b8fff 100644 --- a/lib/ssh/src/ssh_message.erl +++ b/lib/ssh/src/ssh_message.erl @@ -237,7 +237,7 @@ encode(#ssh_msg_kex_dh_gex_request{ max = Max }) -> ssh_bits:encode([?SSH_MSG_KEX_DH_GEX_REQUEST, Min, N, Max], - [byte, uint32, uint32, uint32, uint32]); + [byte, uint32, uint32, uint32]); encode(#ssh_msg_kex_dh_gex_request_old{n = N}) -> ssh_bits:encode([?SSH_MSG_KEX_DH_GEX_REQUEST_OLD, N], [byte, uint32]); @@ -257,7 +257,7 @@ encode(#ssh_msg_kex_dh_gex_reply{ }) -> EncKey = encode_host_key(Key), EncSign = encode_sign(Key, Signature), - ssh_bits:encode([?SSH_MSG_KEXDH_REPLY, EncKey, F, EncSign], [byte, binary, mpint, binary]); + ssh_bits:encode([?SSH_MSG_KEX_DH_GEX_REPLY, EncKey, F, EncSign], [byte, binary, mpint, binary]); encode(#ssh_msg_ignore{data = Data}) -> ssh_bits:encode([?SSH_MSG_IGNORE, Data], [byte, string]); @@ -442,6 +442,19 @@ decode(<<?BYTE(?SSH_MSG_KEX_DH_GEX_GROUP), p = Prime, g = Generator }; +decode(<<?BYTE(?SSH_MSG_KEX_DH_GEX_INIT), ?UINT32(Len), E:Len/big-signed-integer-unit:8>>) -> + #ssh_msg_kex_dh_gex_init{ + e = E + }; +decode(<<?BYTE(?SSH_MSG_KEX_DH_GEX_REPLY), + ?UINT32(Len0), Key:Len0/binary, + ?UINT32(Len1), F:Len1/big-signed-integer-unit:8, + ?UINT32(Len2), Hashsign:Len2/binary>>) -> + #ssh_msg_kex_dh_gex_reply{ + public_host_key = decode_host_key(Key), + f = F, + h_sig = decode_sign(Hashsign) + }; decode(<<?BYTE(?SSH_MSG_KEXDH_REPLY), ?UINT32(Len0), Key:Len0/binary, ?UINT32(Len1), F:Len1/big-signed-integer-unit:8, ?UINT32(Len2), Hashsign:Len2/binary>>) -> |