version 1.4, 2019/11/25 00:51:37 |
version 1.5, 2020/12/29 00:59:15 |
|
|
case KEX_C25519_SHA256: |
case KEX_C25519_SHA256: |
r = kex_c25519_keypair(kex); |
r = kex_c25519_keypair(kex); |
break; |
break; |
case KEX_KEM_SNTRUP4591761X25519_SHA512: |
case KEX_KEM_SNTRUP761X25519_SHA512: |
r = kex_kem_sntrup4591761x25519_keypair(kex); |
r = kex_kem_sntrup761x25519_keypair(kex); |
break; |
break; |
default: |
default: |
r = SSH_ERR_INVALID_ARGUMENT; |
r = SSH_ERR_INVALID_ARGUMENT; |
|
|
case KEX_C25519_SHA256: |
case KEX_C25519_SHA256: |
r = kex_c25519_dec(kex, server_blob, &shared_secret); |
r = kex_c25519_dec(kex, server_blob, &shared_secret); |
break; |
break; |
case KEX_KEM_SNTRUP4591761X25519_SHA512: |
case KEX_KEM_SNTRUP761X25519_SHA512: |
r = kex_kem_sntrup4591761x25519_dec(kex, server_blob, |
r = kex_kem_sntrup761x25519_dec(kex, server_blob, |
&shared_secret); |
&shared_secret); |
break; |
break; |
default: |
default: |
|
|
out: |
out: |
explicit_bzero(hash, sizeof(hash)); |
explicit_bzero(hash, sizeof(hash)); |
explicit_bzero(kex->c25519_client_key, sizeof(kex->c25519_client_key)); |
explicit_bzero(kex->c25519_client_key, sizeof(kex->c25519_client_key)); |
explicit_bzero(kex->sntrup4591761_client_key, |
explicit_bzero(kex->sntrup761_client_key, |
sizeof(kex->sntrup4591761_client_key)); |
sizeof(kex->sntrup761_client_key)); |
sshbuf_free(server_host_key_blob); |
sshbuf_free(server_host_key_blob); |
free(signature); |
free(signature); |
sshbuf_free(tmp); |
sshbuf_free(tmp); |
|
|
r = kex_c25519_enc(kex, client_pubkey, &server_pubkey, |
r = kex_c25519_enc(kex, client_pubkey, &server_pubkey, |
&shared_secret); |
&shared_secret); |
break; |
break; |
case KEX_KEM_SNTRUP4591761X25519_SHA512: |
case KEX_KEM_SNTRUP761X25519_SHA512: |
r = kex_kem_sntrup4591761x25519_enc(kex, client_pubkey, |
r = kex_kem_sntrup761x25519_enc(kex, client_pubkey, |
&server_pubkey, &shared_secret); |
&server_pubkey, &shared_secret); |
break; |
break; |
default: |
default: |