RSA: add simple getters for commonly used struct members

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6290)
This commit is contained in:
Dr. Matthias St. Pierre 2018-05-27 09:01:28 +02:00
parent e6f35b5768
commit 6692ff7777
4 changed files with 77 additions and 1 deletions

View file

@ -402,6 +402,46 @@ int RSA_get0_multi_prime_crt_params(const RSA *r, const BIGNUM *exps[],
return 1; return 1;
} }
const BIGNUM *RSA_get0_n(const RSA *r)
{
return r->n;
}
const BIGNUM *RSA_get0_e(const RSA *r)
{
return r->e;
}
const BIGNUM *RSA_get0_d(const RSA *r)
{
return r->d;
}
const BIGNUM *RSA_get0_p(const RSA *r)
{
return r->p;
}
const BIGNUM *RSA_get0_q(const RSA *r)
{
return r->q;
}
const BIGNUM *RSA_get0_dmp1(const RSA *r)
{
return r->dmp1;
}
const BIGNUM *RSA_get0_dmq1(const RSA *r)
{
return r->dmq1;
}
const BIGNUM *RSA_get0_iqmp(const RSA *r)
{
return r->iqmp;
}
void RSA_clear_flags(RSA *r, int flags) void RSA_clear_flags(RSA *r, int flags)
{ {
r->flags &= ~flags; r->flags &= ~flags;

View file

@ -3,7 +3,10 @@
=head1 NAME =head1 NAME
RSA_set0_key, RSA_set0_factors, RSA_set0_crt_params, RSA_get0_key, RSA_set0_key, RSA_set0_factors, RSA_set0_crt_params, RSA_get0_key,
RSA_get0_factors, RSA_get0_crt_params, RSA_clear_flags, RSA_get0_factors, RSA_get0_crt_params,
RSA_get0_n, RSA_get0_e, RSA_get0_d, RSA_get0_p, RSA_get0_q,
RSA_get0_dmp1, RSA_get0_dmq1, RSA_get0_iqmp,
RSA_clear_flags,
RSA_test_flags, RSA_set_flags, RSA_get0_engine, RSA_get_multi_prime_extra_count, RSA_test_flags, RSA_set_flags, RSA_get0_engine, RSA_get_multi_prime_extra_count,
RSA_get0_multi_prime_factors, RSA_get0_multi_prime_crt_params, RSA_get0_multi_prime_factors, RSA_get0_multi_prime_crt_params,
RSA_set0_multi_prime_params, RSA_get_version RSA_set0_multi_prime_params, RSA_get_version
@ -22,6 +25,14 @@ RSA_set0_multi_prime_params, RSA_get_version
void RSA_get0_crt_params(const RSA *r, void RSA_get0_crt_params(const RSA *r,
const BIGNUM **dmp1, const BIGNUM **dmq1, const BIGNUM **dmp1, const BIGNUM **dmq1,
const BIGNUM **iqmp); const BIGNUM **iqmp);
const BIGNUM *RSA_get0_n(const RSA *d);
const BIGNUM *RSA_get0_e(const RSA *d);
const BIGNUM *RSA_get0_d(const RSA *d);
const BIGNUM *RSA_get0_p(const RSA *d);
const BIGNUM *RSA_get0_q(const RSA *d);
const BIGNUM *RSA_get0_dmp1(const RSA *r);
const BIGNUM *RSA_get0_dmq1(const RSA *r);
const BIGNUM *RSA_get0_iqmp(const RSA *r);
void RSA_clear_flags(RSA *r, int flags); void RSA_clear_flags(RSA *r, int flags);
int RSA_test_flags(const RSA *r, int flags); int RSA_test_flags(const RSA *r, int flags);
void RSA_set_flags(RSA *r, int flags); void RSA_set_flags(RSA *r, int flags);
@ -82,6 +93,11 @@ return values are stored in an array of B<BIGNUM *>. RSA_set0_multi_prime_params
sets a collect of multi-prime 'triplet' members (prime, exponent and coefficient) sets a collect of multi-prime 'triplet' members (prime, exponent and coefficient)
into an RSA object. into an RSA object.
Any of the values B<n>, B<e>, B<d>, B<p>, B<q>, B<dmp1>, B<dmq1>, and B<iqmp> can also be
retrieved separately by the corresponding function
RSA_get0_n(), RSA_get0_e(), RSA_get0_d(), RSA_get0_p(), RSA_get0_q(),
RSA_get0_dmp1(), RSA_get0_dmq1(), and RSA_get0_iqmp(), respectively.
RSA_set_flags() sets the flags in the B<flags> parameter on the RSA RSA_set_flags() sets the flags in the B<flags> parameter on the RSA
object. Multiple flags can be passed in one go (bitwise ORed together). object. Multiple flags can be passed in one go (bitwise ORed together).
Any flags that are already set are left set. RSA_test_flags() tests to Any flags that are already set are left set. RSA_test_flags() tests to
@ -116,6 +132,10 @@ triplets in RSA object B<r> and assign the new set of triplets into it.
RSA_set0_key(), RSA_set0_factors(), RSA_set0_crt_params() and RSA_set0_key(), RSA_set0_factors(), RSA_set0_crt_params() and
RSA_set0_multi_prime_params() return 1 on success or 0 on failure. RSA_set0_multi_prime_params() return 1 on success or 0 on failure.
RSA_get0_n(), RSA_get0_e(), RSA_get0_d(), RSA_get0_p(), RSA_get0_q(),
RSA_get0_dmp1(), RSA_get0_dmq1(), and RSA_get0_iqmp()
return the respective value.
RSA_get0_multi_prime_factors() and RSA_get0_multi_prime_crt_params() return RSA_get0_multi_prime_factors() and RSA_get0_multi_prime_crt_params() return
1 on success or 0 on failure. 1 on success or 0 on failure.

View file

@ -216,6 +216,14 @@ void RSA_get0_crt_params(const RSA *r,
const BIGNUM **iqmp); const BIGNUM **iqmp);
int RSA_get0_multi_prime_crt_params(const RSA *r, const BIGNUM *exps[], int RSA_get0_multi_prime_crt_params(const RSA *r, const BIGNUM *exps[],
const BIGNUM *coeffs[]); const BIGNUM *coeffs[]);
const BIGNUM *RSA_get0_n(const RSA *d);
const BIGNUM *RSA_get0_e(const RSA *d);
const BIGNUM *RSA_get0_d(const RSA *d);
const BIGNUM *RSA_get0_p(const RSA *d);
const BIGNUM *RSA_get0_q(const RSA *d);
const BIGNUM *RSA_get0_dmp1(const RSA *r);
const BIGNUM *RSA_get0_dmq1(const RSA *r);
const BIGNUM *RSA_get0_iqmp(const RSA *r);
void RSA_clear_flags(RSA *r, int flags); void RSA_clear_flags(RSA *r, int flags);
int RSA_test_flags(const RSA *r, int flags); int RSA_test_flags(const RSA *r, int flags);
void RSA_set_flags(RSA *r, int flags); void RSA_set_flags(RSA *r, int flags);

View file

@ -4538,3 +4538,11 @@ DSA_get0_pub_key 4479 1_1_1 EXIST::FUNCTION:DSA
DSA_get0_q 4480 1_1_1 EXIST::FUNCTION:DSA DSA_get0_q 4480 1_1_1 EXIST::FUNCTION:DSA
DSA_get0_p 4481 1_1_1 EXIST::FUNCTION:DSA DSA_get0_p 4481 1_1_1 EXIST::FUNCTION:DSA
DSA_get0_g 4482 1_1_1 EXIST::FUNCTION:DSA DSA_get0_g 4482 1_1_1 EXIST::FUNCTION:DSA
RSA_get0_dmp1 4483 1_1_1 EXIST::FUNCTION:RSA
RSA_get0_d 4484 1_1_1 EXIST::FUNCTION:RSA
RSA_get0_n 4485 1_1_1 EXIST::FUNCTION:RSA
RSA_get0_dmq1 4486 1_1_1 EXIST::FUNCTION:RSA
RSA_get0_e 4487 1_1_1 EXIST::FUNCTION:RSA
RSA_get0_q 4488 1_1_1 EXIST::FUNCTION:RSA
RSA_get0_p 4489 1_1_1 EXIST::FUNCTION:RSA
RSA_get0_iqmp 4490 1_1_1 EXIST::FUNCTION:RSA