diff options
-rw-r--r-- | crypto/dsa/dsa_ameth.c | 2 | ||||
-rw-r--r-- | crypto/dsa/dsa_lib.c | 5 | ||||
-rw-r--r-- | doc/crypto/DSA_size.pod | 16 | ||||
-rw-r--r-- | include/openssl/dsa.h | 1 |
4 files changed, 18 insertions, 6 deletions
diff --git a/crypto/dsa/dsa_ameth.c b/crypto/dsa/dsa_ameth.c index c7573bf..f2f2cf5 100644 --- a/crypto/dsa/dsa_ameth.c +++ b/crypto/dsa/dsa_ameth.c @@ -254,7 +254,7 @@ static int int_dsa_size(const EVP_PKEY *pkey) static int dsa_bits(const EVP_PKEY *pkey) { - return BN_num_bits(pkey->pkey.dsa->p); + return DSA_bits(pkey->pkey.dsa); } static int dsa_security_bits(const EVP_PKEY *pkey) diff --git a/crypto/dsa/dsa_lib.c b/crypto/dsa/dsa_lib.c index 9c001d7..42324c7 100644 --- a/crypto/dsa/dsa_lib.c +++ b/crypto/dsa/dsa_lib.c @@ -339,3 +339,8 @@ ENGINE *DSA_get0_engine(DSA *d) { return d->engine; } + +int DSA_bits(const DSA *dsa) +{ + return BN_num_bits(dsa->p); +} diff --git a/doc/crypto/DSA_size.pod b/doc/crypto/DSA_size.pod index 7c12146..16e6f3a 100644 --- a/doc/crypto/DSA_size.pod +++ b/doc/crypto/DSA_size.pod @@ -2,25 +2,31 @@ =head1 NAME -DSA_size - get DSA signature size +DSA_size, DSA_bits - get DSA signature size or key bits =head1 SYNOPSIS #include <openssl/dsa.h> int DSA_size(const DSA *dsa); + int DSA_bits(const DSA *dsa); =head1 DESCRIPTION -This function returns the size of an ASN.1 encoded DSA signature in -bytes. It can be used to determine how much memory must be allocated -for a DSA signature. +DSA_size() returns the maximum size of an ASN.1 encoded DSA signature +for key B<dsa> in bytes. It can be used to determine how much memory must +be allocated for a DSA signature. B<dsa-E<gt>q> must not be B<NULL>. +DSA_bits() returns the number of bits in key B<dsa>: this is the number +of bits in the B<p> parameter. + =head1 RETURN VALUE -The size in bytes. +DSA_size() returns the size in bytes. + +DSA_bits() returns the number of bits in the key. =head1 SEE ALSO diff --git a/include/openssl/dsa.h b/include/openssl/dsa.h index cbc60e1..cb5fbc2 100644 --- a/include/openssl/dsa.h +++ b/include/openssl/dsa.h @@ -101,6 +101,7 @@ void DSA_free(DSA *r); /* "up" the DSA object's reference count */ int DSA_up_ref(DSA *r); int DSA_size(const DSA *); +int DSA_bits(const DSA *d); int DSA_security_bits(const DSA *d); /* next 4 return -1 on error */ int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp); |