The only current user of the DH KPP algorithm, theReviewed-by: Hannes Reinecke <hare@xxxxxxx>
keyctl(KEYCTL_DH_COMPUTE) syscall, doesn't set the domain parameter ->q
in struct dh. Remove it and any associated (de)serialization code in
crypto_dh_encode_key() and crypto_dh_decode_key. Adjust the encoded
->secret values in testmgr's DH test vectors accordingly.
Note that the dh-generic implementation would have initialized its
struct dh_ctx's ->q from the decoded struct dh's ->q, if present. If this
struct dh_ctx's ->q would ever have been non-NULL, it would have enabled a
full key validation as specified in NIST SP800-56A in dh_is_pubkey_valid().
However, as outlined above, ->q is always NULL in practice and the full key
validation code is effectively dead. A later patch will make
dh_is_pubkey_valid() to calculate Q from P on the fly, if possible, so
don't remove struct dh_ctx's ->q now, but leave it there until that has
happened.
Signed-off-by: Nicolai Stange <nstange@xxxxxxx>
---
crypto/dh.c | 6 ------
crypto/dh_helper.c | 17 ++++-------------
crypto/testmgr.h | 16 ++++++----------
include/crypto/dh.h | 4 ----
4 files changed, 10 insertions(+), 33 deletions(-)