提交 6db7fadf 编写于 作者: D Dr. Matthias St. Pierre

DH: add simple getters for commonly used DH struct members

Reviewed-by: NRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6273)
上级 b336ce57
...@@ -243,6 +243,31 @@ int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key) ...@@ -243,6 +243,31 @@ int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key)
return 1; return 1;
} }
const BIGNUM *DH_get0_p(const DH *dh)
{
return dh->p;
}
const BIGNUM *DH_get0_q(const DH *dh)
{
return dh->q;
}
const BIGNUM *DH_get0_g(const DH *dh)
{
return dh->g;
}
const BIGNUM *DH_get0_priv_key(const DH *dh)
{
return dh->priv_key;
}
const BIGNUM *DH_get0_pub_key(const DH *dh)
{
return dh->pub_key;
}
void DH_clear_flags(DH *dh, int flags) void DH_clear_flags(DH *dh, int flags)
{ {
dh->flags &= ~flags; dh->flags &= ~flags;
......
...@@ -2,9 +2,11 @@ ...@@ -2,9 +2,11 @@
=head1 NAME =head1 NAME
DH_get0_pqg, DH_set0_pqg, DH_get0_key, DH_set0_key, DH_clear_flags, DH_get0_pqg, DH_set0_pqg, DH_get0_key, DH_set0_key,
DH_test_flags, DH_set_flags, DH_get0_engine, DH_get_length, DH_get0_p, DH_get0_q, DH_get0_g,
DH_set_length - Routines for getting and setting data in a DH object DH_get0_priv_key, DH_get0_pub_key,
DH_clear_flags, DH_test_flags, DH_set_flags, DH_get0_engine,
DH_get_length, DH_set_length - Routines for getting and setting data in a DH object
=head1 SYNOPSIS =head1 SYNOPSIS
...@@ -16,6 +18,11 @@ DH_set_length - Routines for getting and setting data in a DH object ...@@ -16,6 +18,11 @@ DH_set_length - Routines for getting and setting data in a DH object
void DH_get0_key(const DH *dh, void DH_get0_key(const DH *dh,
const BIGNUM **pub_key, const BIGNUM **priv_key); const BIGNUM **pub_key, const BIGNUM **priv_key);
int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key); int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key);
const BIGNUM *DH_get0_p(const DH *dh);
const BIGNUM *DH_get0_q(const DH *dh);
const BIGNUM *DH_get0_g(const DH *dh);
const BIGNUM *DH_get0_priv_key(const DH *dh);
const BIGNUM *DH_get0_pub_key(const DH *dh);
void DH_clear_flags(DH *dh, int flags); void DH_clear_flags(DH *dh, int flags);
int DH_test_flags(const DH *dh, int flags); int DH_test_flags(const DH *dh, int flags);
void DH_set_flags(DH *dh, int flags); void DH_set_flags(DH *dh, int flags);
...@@ -54,6 +61,10 @@ untouched. As with DH_set0_pqg() this function transfers the memory management ...@@ -54,6 +61,10 @@ untouched. As with DH_set0_pqg() this function transfers the memory management
of the key values to the DH object, and therefore they should not be freed of the key values to the DH object, and therefore they should not be freed
directly after this function has been called. 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 DH_get0_p(), DH_get0_q(),
DH_get0_g(), DH_get0_priv_key(), and DH_get0_pub_key(), respectively.
DH_set_flags() sets the flags in the B<flags> parameter on the DH object. DH_set_flags() sets the flags in the B<flags> parameter on the DH object.
Multiple flags can be passed in one go (bitwise ORed together). Any flags that Multiple flags can be passed in one go (bitwise ORed together). Any flags that
are already set are left set. DH_test_flags() tests to see whether the flags are already set are left set. DH_test_flags() tests to see whether the flags
...@@ -81,6 +92,9 @@ duplicate. The same applies to DH_get0_pqg() and DH_set0_pqg(). ...@@ -81,6 +92,9 @@ duplicate. The same applies to DH_get0_pqg() and DH_set0_pqg().
DH_set0_pqg() and DH_set0_key() return 1 on success or 0 on failure. DH_set0_pqg() and DH_set0_key() return 1 on success or 0 on failure.
DH_get0_p(), DH_get0_q(), DH_get0_g(), DH_get0_priv_key(), and DH_get0_pub_key()
return the respective value.
DH_test_flags() returns the current state of the flags in the DH object. DH_test_flags() returns the current state of the flags in the DH object.
DH_get0_engine() returns the ENGINE set for the DH object or NULL if no ENGINE DH_get0_engine() returns the ENGINE set for the DH object or NULL if no ENGINE
......
...@@ -183,6 +183,11 @@ int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); ...@@ -183,6 +183,11 @@ int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g);
void DH_get0_key(const DH *dh, void DH_get0_key(const DH *dh,
const BIGNUM **pub_key, const BIGNUM **priv_key); const BIGNUM **pub_key, const BIGNUM **priv_key);
int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key); int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key);
const BIGNUM *DH_get0_p(const DH *dh);
const BIGNUM *DH_get0_q(const DH *dh);
const BIGNUM *DH_get0_g(const DH *dh);
const BIGNUM *DH_get0_priv_key(const DH *dh);
const BIGNUM *DH_get0_pub_key(const DH *dh);
void DH_clear_flags(DH *dh, int flags); void DH_clear_flags(DH *dh, int flags);
int DH_test_flags(const DH *dh, int flags); int DH_test_flags(const DH *dh, int flags);
void DH_set_flags(DH *dh, int flags); void DH_set_flags(DH *dh, int flags);
......
...@@ -4528,3 +4528,8 @@ conf_ssl_name_find 4469 1_1_0i EXIST::FUNCTION: ...@@ -4528,3 +4528,8 @@ conf_ssl_name_find 4469 1_1_0i EXIST::FUNCTION:
conf_ssl_get_cmd 4470 1_1_0i EXIST::FUNCTION: conf_ssl_get_cmd 4470 1_1_0i EXIST::FUNCTION:
conf_ssl_get 4471 1_1_0i EXIST::FUNCTION: conf_ssl_get 4471 1_1_0i EXIST::FUNCTION:
X509_VERIFY_PARAM_get_hostflags 4472 1_1_0i EXIST::FUNCTION: X509_VERIFY_PARAM_get_hostflags 4472 1_1_0i EXIST::FUNCTION:
DH_get0_p 4473 1_1_0i EXIST::FUNCTION:DH
DH_get0_q 4474 1_1_0i EXIST::FUNCTION:DH
DH_get0_g 4475 1_1_0i EXIST::FUNCTION:DH
DH_get0_priv_key 4476 1_1_0i EXIST::FUNCTION:DH
DH_get0_pub_key 4477 1_1_0i EXIST::FUNCTION:DH
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册