DSA_SIZE(3ossl)

πŸ’– DSA_SIZE(3ossl) β€” the girlypop guide to DSA sizes, bits & security bits πŸ’–

okay bestie, welcome to DSA_SIZE(3ossl) 🌸 this is the OpenSSL page that hands you three little helper functions for looking at a DSA key: how many bits it has, how big its signature is, and how much security it's actually giving. and yes, we're gonna talk about the elephant in the room β€” they're all deprecated. more on that in a sec, don't spiral 🫢


✨ NAME ✨

DSA_size, DSA_bits, DSA_security_bits β€” get DSA signature size, key bits or security bits πŸ‘‘


πŸŽ€ SYNOPSIS πŸŽ€

#include <openssl/dsa.h>

The following functions have been deprecated since OpenSSL 3.0, and can be hidden entirely by defining OPENSSL_API_COMPAT with a suitable version value, see openssl_user_macros(7):

int DSA_bits(const DSA *dsa);

int DSA_size(const DSA *dsa);

int DSA_security_bits(const DSA *dsa);

πŸ’… DESCRIPTION πŸ’…

heads up bestie: all of the functions described on this page are deprecated. 🚨 Applications should instead use EVP_PKEY_get_bits(3), EVP_PKEY_get_security_bits(3) and EVP_PKEY_get_size(3). like, the glow-up already happened, move on over to EVP ✨

okay so here's what each one actually does:

  • DSA_bits() β€” returns the number of bits in key dsa. that's the number of bits in the p parameter. iconic, straightforward, no notes πŸ’–
  • DSA_size() β€” returns the maximum size of an ASN.1 encoded DSA signature for key dsa, in bytes. it's literally there so you know how much memory you gotta allocate for a DSA signature. budget queen πŸ’Έ
  • DSA_security_bits() β€” returns the number of security bits of the given dsa key. see BN_security_bits(3) for the whole lore 🌈

πŸ¦‹ RETURN VALUES πŸ¦‹

  • DSA_security_bits() β€” returns the number of security bits in the key, or -1 if dsa doesn't hold any key parameters 😭
  • DSA_bits() β€” returns the number of bits in the key, or -1 if dsa doesn't hold any key parameters πŸ’€
  • DSA_size() β€” returns the signature size in bytes, or -1 if dsa doesn't hold any key parameters πŸ™ˆ
fr fr, if you see a -1 it's not a vibe check fail on your part, it just means there are no key parameters in there. periodt.

πŸ‘‘ SEE ALSO πŸ‘‘

EVP_PKEY_get_bits(3), EVP_PKEY_get_security_bits(3), EVP_PKEY_get_size(3), DSA_new(3), DSA_sign(3)


🌸 HISTORY 🌸

All of these functions were deprecated in OpenSSL 3.0. that's the whole history section, she's short and she's honest πŸŽ€


Copyright 2000-2021 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 <https://www.openssl.org/source/license.html>.


and that's the page bestie!! 🫢 this was DSA_SIZE(3ossl) from OpenSSL 3.5.9, dated 2026-09-29 β€” mwah, go forth and allocate exactly the right amount of memory πŸ’–βœ¨

πŸ“¦ where this page comes from