Add functions returning security bits.
[openssl.git] / crypto / ec / ec_ameth.c
index f024f90..ae9d531 100644 (file)
@@ -395,6 +395,22 @@ static int ec_bits(const EVP_PKEY *pkey)
        return ret;
        }
 
+static int ec_security_bits(const EVP_PKEY *pkey)
+       {
+       int ecbits = ec_bits(pkey);
+       if (ecbits >= 512)
+               return 256;
+       if (ecbits >= 384)
+               return 192;
+       if (ecbits >= 256)
+               return 128;
+       if (ecbits >= 224)
+               return 112;
+       if (ecbits >= 160)
+               return 80;
+       return ecbits / 2;
+       }
+
 static int ec_missing_parameters(const EVP_PKEY *pkey)
        {
        if (EC_KEY_get0_group(pkey->pkey.ec) == NULL)
@@ -659,6 +675,7 @@ const EVP_PKEY_ASN1_METHOD eckey_asn1_meth =
 
        int_ec_size,
        ec_bits,
+       ec_security_bits,
 
        eckey_param_decode,
        eckey_param_encode,