• Nicolai Stange's avatar
    crypto: dh - remove struct dh's ->q member · 48c6d8b8
    Nicolai Stange authored
    The only current user of the DH KPP algorithm, the
    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: default avatarNicolai Stange <nstange@suse.de>
    Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    48c6d8b8
dh.h 2.41 KB