Lines Matching defs:kex
40 #include "kex.h"
48 kex_dh_keygen(struct kex *kex)
50 switch (kex->kex_type) {
52 kex->dh = dh_new_group1();
56 kex->dh = dh_new_group14();
59 kex->dh = dh_new_group16();
62 kex->dh = dh_new_group18();
67 if (kex->dh == NULL)
69 return (dh_gen_key(kex->dh, kex->we_need * 8));
73 kex_dh_compute_key(struct kex *kex, BIGNUM *dh_pub, struct sshbuf *out)
85 DHparams_print_fp(stderr, kex->dh);
89 if (!dh_pub_is_valid(kex->dh, dh_pub)) {
93 klen = DH_size(kex->dh);
99 if ((kout = DH_compute_key(kbuf, dh_pub, kex->dh)) < 0 ||
115 kex_dh_keypair(struct kex *kex)
121 if ((r = kex_dh_keygen(kex)) != 0)
123 DH_get0_key(kex->dh, &pub_key, NULL);
130 DHparams_print_fp(stderr, kex->dh);
135 kex->client_pub = buf;
143 kex_dh_enc(struct kex *kex, const struct sshbuf *client_blob,
153 if ((r = kex_dh_keygen(kex)) != 0)
155 DH_get0_key(kex->dh, &pub_key, NULL);
163 if ((r = kex_dh_dec(kex, client_blob, shared_secretp)) != 0)
168 DH_free(kex->dh);
169 kex->dh = NULL;
175 kex_dh_dec(struct kex *kex, const struct sshbuf *dh_blob,
192 if ((r = kex_dh_compute_key(kex, dh_pub, buf)) != 0)
198 DH_free(kex->dh);
199 kex->dh = NULL;