Commit fd809cfd authored by Richard Levitte's avatar Richard Levitte
Browse files

Constify the parameter getters for RSA, DSA and DH



Including documentation changes

Reviewed-by: default avatarStephen Henson <steve@openssl.org>
Reviewed-by: default avatarEmilia Käsper <emilia@openssl.org>
parent 9c1a9ccf
Loading
Loading
Loading
Loading
+7 −12
Original line number Diff line number Diff line
@@ -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;
@@ -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) {
@@ -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;
@@ -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) {
+10 −13
Original line number Diff line number Diff line
@@ -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;
@@ -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) {
@@ -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;
@@ -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) {
+15 −19
Original line number Diff line number Diff line
@@ -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) {
@@ -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) {
@@ -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) {
@@ -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;
@@ -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;
@@ -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;
+4 −2
Original line number Diff line number Diff line
@@ -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);
+4 −2
Original line number Diff line number Diff line
@@ -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);
Loading