Commit e6f35b57 authored by Dr. Matthias St. Pierre's avatar Dr. Matthias St. Pierre
Browse files

DSA: add simple getters for commonly used struct members

parent 5777254b
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -305,6 +305,31 @@ int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)
    return 1;
}

const BIGNUM *DSA_get0_p(const DSA *d)
{
    return d->p;
}

const BIGNUM *DSA_get0_q(const DSA *d)
{
    return d->q;
}

const BIGNUM *DSA_get0_g(const DSA *d)
{
    return d->g;
}

const BIGNUM *DSA_get0_pub_key(const DSA *d)
{
    return d->pub_key;
}

const BIGNUM *DSA_get0_priv_key(const DSA *d)
{
    return d->priv_key;
}

void DSA_clear_flags(DSA *d, int flags)
{
    d->flags &= ~flags;
+14 −2
Original line number Diff line number Diff line
@@ -2,8 +2,11 @@

=head1 NAME

DSA_get0_pqg, DSA_set0_pqg, DSA_get0_key, DSA_set0_key, DSA_clear_flags,
DSA_test_flags, DSA_set_flags, DSA_get0_engine - Routines for getting and
DSA_get0_pqg, DSA_set0_pqg, DSA_get0_key, DSA_set0_key,
DSA_get0_p, DSA_get0_q, DSA_get0_g,
DSA_get0_pub_key, DSA_get0_priv_key,
DSA_clear_flags, DSA_test_flags, DSA_set_flags,
DSA_get0_engine - Routines for getting and
setting data in a DSA object

=head1 SYNOPSIS
@@ -16,6 +19,11 @@ setting data in a DSA object
 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);
 const BIGNUM *DSA_get0_p(const DSA *d);
 const BIGNUM *DSA_get0_q(const DSA *d);
 const BIGNUM *DSA_get0_g(const DSA *d);
 const BIGNUM *DSA_get0_pub_key(const DSA *d);
 const BIGNUM *DSA_get0_priv_key(const DSA *d);
 void DSA_clear_flags(DSA *d, int flags);
 int DSA_test_flags(const DSA *d, int flags);
 void DSA_set_flags(DSA *d, int flags);
@@ -53,6 +61,10 @@ this function transfers the memory management of the key values to the DSA
object, and therefore they should not be freed directly after this function has
been called.

Any of the values B<p>, B<q>, B<g>, B<priv_key>, and B<pub_key> can also be
retrieved separately by the corresponding function DSA_get0_p(), DSA_get0_q(),
DSA_get0_g(), DSA_get0_priv_key(), and DSA_get0_pub_key(), respectively.

DSA_set_flags() sets the flags in the B<flags> parameter on the DSA object.
Multiple flags can be passed in one go (bitwise ORed together). Any flags that
are already set are left set. DSA_test_flags() tests to see whether the flags
+5 −0
Original line number Diff line number Diff line
@@ -171,6 +171,11 @@ int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g);
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);
const BIGNUM *DSA_get0_p(const DSA *d);
const BIGNUM *DSA_get0_q(const DSA *d);
const BIGNUM *DSA_get0_g(const DSA *d);
const BIGNUM *DSA_get0_pub_key(const DSA *d);
const BIGNUM *DSA_get0_priv_key(const DSA *d);
void DSA_clear_flags(DSA *d, int flags);
int DSA_test_flags(const DSA *d, int flags);
void DSA_set_flags(DSA *d, int flags);
+5 −0
Original line number Diff line number Diff line
@@ -4533,3 +4533,8 @@ DH_get0_q 4474 1_1_1 EXIST::FUNCTION:DH
DH_get0_g                               4475	1_1_1	EXIST::FUNCTION:DH
DH_get0_priv_key                        4476	1_1_1	EXIST::FUNCTION:DH
DH_get0_pub_key                         4477	1_1_1	EXIST::FUNCTION:DH
DSA_get0_priv_key                       4478	1_1_1	EXIST::FUNCTION:DSA
DSA_get0_pub_key                        4479	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_g                              4482	1_1_1	EXIST::FUNCTION:DSA