upstream commit

correctly match ECDSA subtype (== curve) for
 offered/recevied host keys. Fixes connection-killing host key mismatches when
 a server offers multiple ECDSA keys with different curve type (an extremely
 unlikely configuration).

ok markus, "looks mechanical" deraadt@
14 files changed
tree: 94692c77a4888f8adade706324fdee3a999bc6b0
  1. contrib/
  2. openbsd-compat/
  3. regress/
  4. scard/
  5. .cvsignore
  6. aclocal.m4
  7. addrmatch.c
  8. atomicio.c
  9. atomicio.h
  10. audit-bsm.c
  11. audit-linux.c
  12. audit.c
  13. audit.h
  14. auth-bsdauth.c
  15. auth-chall.c
  16. auth-krb5.c
  17. auth-options.c
  18. auth-options.h
  19. auth-pam.c
  20. auth-pam.h
  21. auth-passwd.c
  22. auth-rh-rsa.c
  23. auth-rhosts.c
  24. auth-rsa.c
  25. auth-shadow.c
  26. auth-sia.c
  27. auth-sia.h
  28. auth-skey.c
  29. auth.c
  30. auth.h
  31. auth1.c
  32. auth2-chall.c
  33. auth2-gss.c
  34. auth2-hostbased.c
  35. auth2-kbdint.c
  36. auth2-none.c
  37. auth2-passwd.c
  38. auth2-pubkey.c
  39. auth2.c
  40. authfd.c
  41. authfd.h
  42. authfile.c
  43. authfile.h
  44. bitmap.c
  45. bitmap.h
  46. blocks.c
  47. bufaux.c
  48. bufbn.c
  49. bufec.c
  50. buffer.c
  51. buffer.h
  52. buildpkg.sh.in
  53. canohost.c
  54. canohost.h
  55. chacha.c
  56. chacha.h
  57. channels.c
  58. channels.h
  59. cipher-3des1.c
  60. cipher-aes.c
  61. cipher-aesctr.c
  62. cipher-aesctr.h
  63. cipher-bf1.c
  64. cipher-chachapoly.c
  65. cipher-chachapoly.h
  66. cipher-ctr.c
  67. cipher.c
  68. cipher.h
  69. cleanup.c
  70. clientloop.c
  71. clientloop.h
  72. compat.c
  73. compat.h
  74. config.guess
  75. config.sub
  76. configure.ac
  77. crc32.c
  78. crc32.h
  79. CREDITS
  80. crypto_api.h
  81. deattack.c
  82. deattack.h
  83. defines.h
  84. dh.c
  85. dh.h
  86. digest-libc.c
  87. digest-openssl.c
  88. digest.h
  89. dispatch.c
  90. dispatch.h
  91. dns.c
  92. dns.h
  93. ed25519.c
  94. entropy.c
  95. entropy.h
  96. fatal.c
  97. fe25519.c
  98. fe25519.h
  99. fixalgorithms
  100. fixpaths
  101. fixprogs
  102. ge25519.c
  103. ge25519.h
  104. ge25519_base.data
  105. groupaccess.c
  106. groupaccess.h
  107. gss-genr.c
  108. gss-serv-krb5.c
  109. gss-serv.c
  110. hash.c
  111. hmac.c
  112. hmac.h
  113. hostfile.c
  114. hostfile.h
  115. includes.h
  116. INSTALL
  117. install-sh
  118. kex.c
  119. kex.h
  120. kexc25519.c
  121. kexc25519c.c
  122. kexc25519s.c
  123. kexdh.c
  124. kexdhc.c
  125. kexdhs.c
  126. kexecdh.c
  127. kexecdhc.c
  128. kexecdhs.c
  129. kexgex.c
  130. kexgexc.c
  131. kexgexs.c
  132. key.c
  133. key.h
  134. krl.c
  135. krl.h
  136. LICENCE
  137. log.c
  138. log.h
  139. loginrec.c
  140. loginrec.h
  141. logintest.c
  142. mac.c
  143. mac.h
  144. Makefile.in
  145. match.c
  146. match.h
  147. md-sha256.c
  148. md5crypt.c
  149. md5crypt.h
  150. mdoc2man.awk
  151. misc.c
  152. misc.h
  153. mkinstalldirs
  154. moduli
  155. moduli.5
  156. moduli.c
  157. monitor.c
  158. monitor.h
  159. monitor_fdpass.c
  160. monitor_fdpass.h
  161. monitor_mm.c
  162. monitor_mm.h
  163. monitor_wrap.c
  164. monitor_wrap.h
  165. msg.c
  166. msg.h
  167. mux.c
  168. myproposal.h
  169. nchan.c
  170. nchan.ms
  171. nchan2.ms
  172. opacket.c
  173. opacket.h
  174. openssh.xml.in
  175. opensshd.init.in
  176. OVERVIEW
  177. packet.c
  178. packet.h
  179. pathnames.h
  180. pkcs11.h
  181. platform.c
  182. platform.h
  183. poly1305.c
  184. poly1305.h
  185. progressmeter.c
  186. progressmeter.h
  187. PROTOCOL
  188. PROTOCOL.agent
  189. PROTOCOL.certkeys
  190. PROTOCOL.chacha20poly1305
  191. PROTOCOL.key
  192. PROTOCOL.krl
  193. PROTOCOL.mux
  194. readconf.c
  195. readconf.h
  196. README
  197. README.dns
  198. README.platform
  199. README.privsep
  200. README.tun
  201. readpass.c
  202. rijndael.c
  203. rijndael.h
  204. roaming.h
  205. roaming_client.c
  206. roaming_common.c
  207. roaming_dummy.c
  208. roaming_serv.c
  209. rsa.c
  210. rsa.h
  211. sandbox-capsicum.c
  212. sandbox-darwin.c
  213. sandbox-null.c
  214. sandbox-rlimit.c
  215. sandbox-seccomp-filter.c
  216. sandbox-systrace.c
  217. sc25519.c
  218. sc25519.h
  219. scp.1
  220. scp.c
  221. servconf.c
  222. servconf.h
  223. serverloop.c
  224. serverloop.h
  225. session.c
  226. session.h
  227. sftp-client.c
  228. sftp-client.h
  229. sftp-common.c
  230. sftp-common.h
  231. sftp-glob.c
  232. sftp-server-main.c
  233. sftp-server.8
  234. sftp-server.c
  235. sftp.1
  236. sftp.c
  237. sftp.h
  238. smult_curve25519_ref.c
  239. ssh-add.1
  240. ssh-add.c
  241. ssh-agent.1
  242. ssh-agent.c
  243. ssh-dss.c
  244. ssh-ecdsa.c
  245. ssh-ed25519.c
  246. ssh-gss.h
  247. ssh-keygen.1
  248. ssh-keygen.c
  249. ssh-keyscan.1
  250. ssh-keyscan.c
  251. ssh-keysign.8
  252. ssh-keysign.c
  253. ssh-pkcs11-client.c
  254. ssh-pkcs11-helper.8
  255. ssh-pkcs11-helper.c
  256. ssh-pkcs11.c
  257. ssh-pkcs11.h
  258. ssh-rsa.c
  259. ssh-sandbox.h
  260. ssh.1
  261. ssh.c
  262. ssh.h
  263. ssh1.h
  264. ssh2.h
  265. ssh_api.c
  266. ssh_api.h
  267. ssh_config
  268. ssh_config.5
  269. sshbuf-getput-basic.c
  270. sshbuf-getput-crypto.c
  271. sshbuf-misc.c
  272. sshbuf.c
  273. sshbuf.h
  274. sshconnect.c
  275. sshconnect.h
  276. sshconnect1.c
  277. sshconnect2.c
  278. sshd.8
  279. sshd.c
  280. sshd_config
  281. sshd_config.5
  282. ssherr.c
  283. ssherr.h
  284. sshkey.c
  285. sshkey.h
  286. sshlogin.c
  287. sshlogin.h
  288. sshpty.c
  289. sshpty.h
  290. sshtty.c
  291. survey.sh.in
  292. TODO
  293. ttymodes.c
  294. ttymodes.h
  295. uidswap.c
  296. uidswap.h
  297. umac.c
  298. umac.h
  299. uuencode.c
  300. uuencode.h
  301. verify.c
  302. version.h
  303. xmalloc.c
  304. xmalloc.h