From: Mark Wooding Date: Sun, 9 Jul 2017 18:31:58 +0000 (+0100) Subject: server/dh.c: Set the correct scalar size when loading XDH keys. X-Git-Tag: 1.5.0~156 X-Git-Url: https://git.distorted.org.uk/~mdw/tripe/commitdiff_plain/9dd1db76f03d49c394f136658a0c60b88be07113 server/dh.c: Set the correct scalar size when loading XDH keys. This was left hardcoded as 32 bytes, which means that X448 could never work. (The `x448_stsc' function always fails because the buffer size doesn't match its expectation.) --- diff --git a/server/dh.c b/server/dh.c index 5c27a079..014446e0 100644 --- a/server/dh.c +++ b/server/dh.c @@ -702,7 +702,9 @@ static void ecdh_freege(const dhgrp *gg, dhge *YY) } \ \ KLOAD(xdh, xdh, XDH, \ - { kd->grp = CREATE(dhgrp); kd->grp->scsz = 32; }, \ + { kd->grp = CREATE(dhgrp); \ + kd->grp->scsz = XDH##_KEYSZ; \ + }, \ { if ((kd->k = xdh##_bintosc(&p.priv)) == 0) { \ a_format(e, "bad-private-key", A_END); \ goto fail; \