提交 fd809cfd 编写于 作者: R Richard Levitte

Constify the parameter getters for RSA, DSA and DH

Including documentation changes
Reviewed-by: NStephen Henson <steve@openssl.org>
Reviewed-by: NEmilia Käsper <emilia@openssl.org>
上级 9c1a9ccf
......@@ -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) {
......
......@@ -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) {
......
......@@ -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;
......
......@@ -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);
......
......@@ -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);
......
......@@ -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);
......
......@@ -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);
......
......@@ -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);
......
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册