Skip to content

Commit

Permalink
Constify the parameter getters for RSA, DSA and DH
Browse files Browse the repository at this point in the history
Including documentation changes

Reviewed-by: Stephen Henson <steve@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
  • Loading branch information
levitte committed Jun 15, 2016
1 parent 9c1a9cc commit fd809cf
Show file tree
Hide file tree
Showing 9 changed files with 58 additions and 58 deletions.
19 changes: 7 additions & 12 deletions crypto/dh/dh_lib.c
Expand Up @@ -183,7 +183,8 @@ int DH_security_bits(const DH *dh)
}


void DH_get0_pqg(const DH *dh, BIGNUM **p, BIGNUM **q, BIGNUM **g)
void DH_get0_pqg(const DH *dh,
const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
{
if (p != NULL)
*p = dh->p;
Expand All @@ -197,11 +198,9 @@ int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
{
/* If the fields p and g in d are NULL, the corresponding input
* parameters MUST be non-NULL. q may remain NULL.
*
* It is an error to give the results from get0 on d
* as input parameters.
*/
if (p == dh->p || (dh->q != NULL && q == dh->q) || g == dh->g)
if (dh->p == NULL && p == NULL
|| dh->g == NULL && g == NULL)
return 0;

if (p != NULL) {
Expand Down Expand Up @@ -235,7 +234,7 @@ int DH_set_length(DH *dh, long length)
return 1;
}

void DH_get0_key(const DH *dh, BIGNUM **pub_key, BIGNUM **priv_key)
void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key)
{
if (pub_key != NULL)
*pub_key = dh->pub_key;
Expand All @@ -245,15 +244,11 @@ void DH_get0_key(const DH *dh, BIGNUM **pub_key, BIGNUM **priv_key)

int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key)
{
/* If the pub_key in dh is NULL, the corresponding input
/* If the field pub_key in dh is NULL, the corresponding input
* parameters MUST be non-NULL. The priv_key field may
* be left NULL.
*
* It is an error to give the results from get0 on dh
* as input parameters.
*/
if (dh->pub_key == pub_key
|| (dh->priv_key != NULL && priv_key == dh->priv_key))
if (dh->pub_key == NULL && pub_key == NULL)
return 0;

if (pub_key != NULL) {
Expand Down
23 changes: 10 additions & 13 deletions crypto/dsa/dsa_lib.c
Expand Up @@ -253,7 +253,8 @@ DH *DSA_dup_DH(const DSA *r)
}
#endif

void DSA_get0_pqg(const DSA *d, BIGNUM **p, BIGNUM **q, BIGNUM **g)
void DSA_get0_pqg(const DSA *d,
const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
{
if (p != NULL)
*p = d->p;
Expand All @@ -265,13 +266,12 @@ void DSA_get0_pqg(const DSA *d, BIGNUM **p, BIGNUM **q, BIGNUM **g)

int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)
{
/* If the fields in d are NULL, the corresponding input
/* If the fields p, q and g in d are NULL, the corresponding input
* parameters MUST be non-NULL.
*
* It is an error to give the results from get0 on d
* as input parameters.
*/
if (p == d->p || q == d->q || g == d->g)
if (d->p == NULL && p == NULL
|| d->q == NULL && q == NULL
|| d->g == NULL && g == NULL)
return 0;

if (p != NULL) {
Expand All @@ -290,7 +290,8 @@ int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)
return 1;
}

void DSA_get0_key(const DSA *d, BIGNUM **pub_key, BIGNUM **priv_key)
void DSA_get0_key(const DSA *d,
const BIGNUM **pub_key, const BIGNUM **priv_key)
{
if (pub_key != NULL)
*pub_key = d->pub_key;
Expand All @@ -300,15 +301,11 @@ void DSA_get0_key(const DSA *d, BIGNUM **pub_key, BIGNUM **priv_key)

int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
{
/* If the pub_key in d is NULL, the corresponding input
/* If the field pub_key in d is NULL, the corresponding input
* parameters MUST be non-NULL. The priv_key field may
* be left NULL.
*
* It is an error to give the results from get0 on d
* as input parameters.
*/
if (d->pub_key == pub_key
|| (d->priv_key != NULL && priv_key == d->priv_key))
if (d->pub_key == NULL && pub_key == NULL)
return 0;

if (pub_key != NULL) {
Expand Down
34 changes: 15 additions & 19 deletions crypto/rsa/rsa_lib.c
Expand Up @@ -232,15 +232,12 @@ int RSA_security_bits(const RSA *rsa)

int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)
{
/* If the fields in r are NULL, the corresponding input
/* If the fields n and e in r are NULL, the corresponding input
* parameters MUST be non-NULL for n and e. d may be
* left NULL (in case only the public key is used).
*
* It is an error to give the results from get0 on r
* as input parameters.
*/
if (n == r->n || e == r->e
|| (r->d != NULL && d == r->d))
if (r->n == NULL && n == NULL
|| r->e == NULL && e == NULL)
return 0;

if (n != NULL) {
Expand All @@ -261,13 +258,11 @@ int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d)

int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)
{
/* If the fields in r are NULL, the corresponding input
/* If the fields p and q in r are NULL, the corresponding input
* parameters MUST be non-NULL.
*
* It is an error to give the results from get0 on r
* as input parameters.
*/
if (p == r->p || q == r->q)
if (r->p == NULL && p == NULL
|| r->q == NULL && q == NULL)
return 0;

if (p != NULL) {
Expand All @@ -284,13 +279,12 @@ int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q)

int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp)
{
/* If the fields in r are NULL, the corresponding input
/* If the fields dmp1, dmq1 and iqmp in r are NULL, the corresponding input
* parameters MUST be non-NULL.
*
* It is an error to give the results from get0 on r
* as input parameters.
*/
if (dmp1 == r->dmp1 || dmq1 == r->dmq1 || iqmp == r->iqmp)
if (r->dmp1 == NULL && dmp1 == NULL
|| r->dmq1 == NULL && dmq1 == NULL
|| r->iqmp == NULL && iqmp == NULL)
return 0;

if (dmp1 != NULL) {
Expand All @@ -309,7 +303,8 @@ int RSA_set0_crt_params(RSA *r, BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp)
return 1;
}

void RSA_get0_key(const RSA *r, BIGNUM **n, BIGNUM **e, BIGNUM **d)
void RSA_get0_key(const RSA *r,
const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
{
if (n != NULL)
*n = r->n;
Expand All @@ -319,7 +314,7 @@ void RSA_get0_key(const RSA *r, BIGNUM **n, BIGNUM **e, BIGNUM **d)
*d = r->d;
}

void RSA_get0_factors(const RSA *r, BIGNUM **p, BIGNUM **q)
void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q)
{
if (p != NULL)
*p = r->p;
Expand All @@ -328,7 +323,8 @@ void RSA_get0_factors(const RSA *r, BIGNUM **p, BIGNUM **q)
}

void RSA_get0_crt_params(const RSA *r,
BIGNUM **dmp1, BIGNUM **dmq1, BIGNUM **iqmp)
const BIGNUM **dmp1, const BIGNUM **dmq1,
const BIGNUM **iqmp)
{
if (dmp1 != NULL)
*dmp1 = r->dmp1;
Expand Down
6 changes: 4 additions & 2 deletions doc/crypto/DH_get0_pqg.pod
Expand Up @@ -10,9 +10,11 @@ DH_set_length - Routines for getting and setting data in a DH object

#include <openssl/dh.h>

void DH_get0_pqg(const DH *dh, BIGNUM **p, BIGNUM **q, BIGNUM **g);
void DH_get0_pqg(const DH *dh,
const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g);
void DH_get0_key(const DH *dh, BIGNUM **pub_key, BIGNUM **priv_key);
void DH_get0_key(const DH *dh,
const BIGNUM **pub_key, const BIGNUM **priv_key);
int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key);
void DH_clear_flags(DH *dh, int flags);
int DH_test_flags(const DH *dh, int flags);
Expand Down
6 changes: 4 additions & 2 deletions doc/crypto/DSA_get0_pqg.pod
Expand Up @@ -10,9 +10,11 @@ setting data in a DSA object

#include <openssl/dsa.h>

void DSA_get0_pqg(const DSA *d, BIGNUM **p, BIGNUM **q, BIGNUM **g);
void DSA_get0_pqg(const DSA *d,
const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g);
void DSA_get0_key(const DSA *d, BIGNUM **pub_key, BIGNUM **priv_key);
void DSA_get0_key(const DSA *d,
const BIGNUM **pub_key, const BIGNUM **priv_key);
int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key);
void DSA_clear_flags(DSA *d, int flags);
int DSA_test_flags(const DSA *d, int flags);
Expand Down
8 changes: 5 additions & 3 deletions doc/crypto/RSA_get0_key.pod
Expand Up @@ -14,10 +14,12 @@ and setting data in an RSA object
int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d);
int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q);
int RSA_set0_crt_params(RSA *r,BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp);
void RSA_get0_key(const RSA *r, BIGNUM **n, BIGNUM **e, BIGNUM **d);
void RSA_get0_factors(const RSA *r, BIGNUM **p, BIGNUM **q);
void RSA_get0_key(const RSA *r,
const BIGNUM **n, const BIGNUM **e, const BIGNUM **d);
void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q);
void RSA_get0_crt_params(const RSA *r,
BIGNUM **dmp1, BIGNUM **dmq1, BIGNUM **iqmp);
const BIGNUM **dmp1, const BIGNUM **dmq1,
const BIGNUM **iqmp);
void RSA_clear_flags(RSA *r, int flags);
int RSA_test_flags(const RSA *r, int flags);
void RSA_set_flags(RSA *r, int flags);
Expand Down
6 changes: 4 additions & 2 deletions include/openssl/dh.h
Expand Up @@ -151,9 +151,11 @@ int DH_KDF_X9_42(unsigned char *out, size_t outlen,
const unsigned char *ukm, size_t ukmlen, const EVP_MD *md);
# endif

void DH_get0_pqg(const DH *dh, BIGNUM **p, BIGNUM **q, BIGNUM **g);
void DH_get0_pqg(const DH *dh,
const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g);
void DH_get0_key(const DH *dh, BIGNUM **pub_key, BIGNUM **priv_key);
void DH_get0_key(const DH *dh,
const BIGNUM **pub_key, const BIGNUM **priv_key);
int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key);
void DH_clear_flags(DH *dh, int flags);
int DH_test_flags(const DH *dh, int flags);
Expand Down
6 changes: 4 additions & 2 deletions include/openssl/dsa.h
Expand Up @@ -169,9 +169,11 @@ DH *DSA_dup_DH(const DSA *r);
# define EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS (EVP_PKEY_ALG_CTRL + 2)
# define EVP_PKEY_CTRL_DSA_PARAMGEN_MD (EVP_PKEY_ALG_CTRL + 3)

void DSA_get0_pqg(const DSA *d, BIGNUM **p, BIGNUM **q, BIGNUM **g);
void DSA_get0_pqg(const DSA *d,
const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g);
void DSA_get0_key(const DSA *d, BIGNUM **pub_key, BIGNUM **priv_key);
void DSA_get0_key(const DSA *d,
const BIGNUM **pub_key, const BIGNUM **priv_key);
int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key);
void DSA_clear_flags(DSA *d, int flags);
int DSA_test_flags(const DSA *d, int flags);
Expand Down
8 changes: 5 additions & 3 deletions include/openssl/rsa.h
Expand Up @@ -178,10 +178,12 @@ int RSA_security_bits(const RSA *rsa);
int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d);
int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q);
int RSA_set0_crt_params(RSA *r,BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp);
void RSA_get0_key(const RSA *r, BIGNUM **n, BIGNUM **e, BIGNUM **d);
void RSA_get0_factors(const RSA *r, BIGNUM **p, BIGNUM **q);
void RSA_get0_key(const RSA *r,
const BIGNUM **n, const BIGNUM **e, const BIGNUM **d);
void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q);
void RSA_get0_crt_params(const RSA *r,
BIGNUM **dmp1, BIGNUM **dmq1, BIGNUM **iqmp);
const BIGNUM **dmp1, const BIGNUM **dmq1,
const BIGNUM **iqmp);
void RSA_clear_flags(RSA *r, int flags);
int RSA_test_flags(const RSA *r, int flags);
void RSA_set_flags(RSA *r, int flags);
Expand Down

0 comments on commit fd809cf

Please sign in to comment.