Change DH_get_nid() to set the value of q if it is not already set
authorShane Lontis <shane.lontis@oracle.com>
Fri, 6 Mar 2020 21:47:58 +0000 (07:47 +1000)
committerShane Lontis <shane.lontis@oracle.com>
Fri, 6 Mar 2020 21:47:58 +0000 (07:47 +1000)
commit55f02cb6849f0366dd8b787dbe8e74b56c15bfd1
tree121d16aadaf60b03ed5036d4750190ac3dbdf6e5
parentf529fc7d53bf4228fae61cb1efe73d97fe3eb35f
Change DH_get_nid() to set the value of q if it is not already set

Fixes #11108.

It only sets q if a valid named group is found.
The function signature was recently changed to pass a non const DH pointer
in order to allow the nid to be cached internally. As an extension of this
the value of q can now also be set as q is always known for named groups.
The length field is also set if q is set.

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/11114)
crypto/dh/dh_group_params.c
crypto/dh/dh_key.c
crypto/dh/dh_lib.c
crypto/ffc/ffc_key_generate.c
crypto/rsa/rsa_lib.c
crypto/rsa/rsa_local.h
crypto/rsa/rsa_sp800_56b_gen.c
doc/man3/DH_get0_pqg.pod
doc/man3/DH_new_by_nid.pod
include/crypto/security_bits.h [new file with mode: 0644]
test/dhtest.c