upstream: Add support for a PQC KEX/KEM:

sntrup4591761x25519-sha512@tinyssh.org using the Streamlined NTRU Prime
4591^761 implementation from SUPERCOP coupled with X25519 as a stop-loss. Not
enabled by default.

introduce KEM API; a simplified framework for DH-ish KEX methods.

from markus@ feedback & ok djm@

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