Commit 5d8d9a8e authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Add DSA_bits() function.



RT#4637

Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
parent 6c1f368d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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)
+5 −0
Original line number Diff line number Diff line
@@ -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);
}
+11 −5
Original line number Diff line number Diff line
@@ -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

+1 −0
Original line number Diff line number Diff line
@@ -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);