openssl/doc/man3/DSA_size.pod
Richard Levitte ecfbe2f046 DSA: Make DSA_bits() and DSA_size() check that there are key parameters
Without these check, a DSA structure without key parameters will cause
these functions to crash.  This is also the case in pre-3.0 OpenSSL,
but since we now extract these data early, to cache them in the
EVP_PKEY structure, the same crash happens earlier and much more
internally.

The added checks are of the same kind as DSA_security_bits() already
does.

Fixes #13610

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/13611)
2020-12-05 11:06:05 +01:00

69 lines
1.8 KiB
Plaintext

=pod
=head1 NAME
DSA_size, DSA_bits, DSA_security_bits - get DSA signature size, key bits or security bits
=head1 SYNOPSIS
#include <openssl/dsa.h>
int DSA_bits(const DSA *dsa);
Deprecated since OpenSSL 3.0, can be hidden entirely by defining
B<OPENSSL_API_COMPAT> with a suitable version value, see
L<openssl_user_macros(7)>:
int DSA_size(const DSA *dsa);
int DSA_security_bits(const DSA *dsa);
=head1 DESCRIPTION
DSA_bits() returns the number of bits in key I<dsa>: this is the number
of bits in the I<p> parameter.
The remaining functions described on this page are deprecated.
Applications should instead use L<EVP_PKEY_security_bits(3)> and
L<EVP_PKEY_size(3)>.
DSA_size() returns the maximum size of an ASN.1 encoded DSA signature
for key I<dsa> in bytes. It can be used to determine how much memory must
be allocated for a DSA signature.
DSA_security_bits() returns the number of security bits of the given I<dsa>
key. See L<BN_security_bits(3)>.
=head1 RETURN VALUES
DSA_security_bits() returns the number of security bits in the key, or -1 if
I<dsa> doesn't hold any key parameters.
DSA_bits() returns the number of bits in the key, or -1 if I<dsa> doesn't
hold any key parameters.
DSA_size() returns the signature size in bytes, or -1 if I<dsa> doesn't
hold any key parameters.
=head1 SEE ALSO
L<EVP_PKEY_bits(3)>,
L<EVP_PKEY_security_bits(3)>,
L<EVP_PKEY_size(3)>,
L<DSA_new(3)>, L<DSA_sign(3)>
=head1 HISTORY
The DSA_size() and DSA_security_bits() functions were deprecated in OpenSSL 3.0.
=head1 COPYRIGHT
Copyright 2000-2020 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
in the file LICENSE in the source distribution or at
L<https://www.openssl.org/source/license.html>.
=cut