int DH_security_bits(const DH *dh) { int N; if (dh->q) N = BN_num_bits(dh->q); else if (dh->length) N = dh->length; else N = -1; return BN_security_bits(BN_num_bits(dh->p), N); }
int RSA_security_bits(const RSA *rsa) { int bits = BN_num_bits(rsa->n); if (rsa->version == RSA_ASN1_VERSION_MULTI) { /* This ought to mean that we have private key at hand. */ int ex_primes = sk_RSA_PRIME_INFO_num(rsa->prime_infos); if (ex_primes <= 0 || (ex_primes + 2) > rsa_multip_cap(bits)) return 0; } return BN_security_bits(bits, -1); }
int DSA_security_bits(const DSA *d) { if (d->p && d->q) return BN_security_bits(BN_num_bits(d->p), BN_num_bits(d->q)); return -1; }
int RSA_security_bits(const RSA *rsa) { return BN_security_bits(BN_num_bits(rsa->n), -1); }
int DSA_security_bits(const DSA *d) { return BN_security_bits(BN_num_bits(d->p), BN_num_bits(d->q)); }