Bouncy Castle Cryptography Library 1.87

org.bouncycastle.crypto.constraints
Class ConstraintUtils

java.lang.Object
  extended byorg.bouncycastle.crypto.constraints.ConstraintUtils

public class ConstraintUtils
extends java.lang.Object


Constructor Summary
ConstraintUtils()
           
 
Method Summary
static int bitsOfSecurityFor(java.math.BigInteger p)
          Return the bits of security for the passed in RSA modulus or DH/DSA group value.
static int bitsOfSecurityFor(ECCurve curve)
          Return the bits of security for the passed in Elliptic Curve.
static int bitsOfSecurityForFF(int strength)
           
static boolean isQuantumVulnerable(CryptoServiceProperties service)
          Return true if the service is one of the quantum-vulnerable public-key algorithms: the integer factorisation and discrete logarithm schemes NIST IR 8547 deprecates after 2030 and disallows after 2035 (RSA, DSA, DH/MQV, ECDSA/ECDH and their variants, EdDSA, X25519/X448, ElGamal, Cramer-Shoup, Naccache-Stern and the KEMs and key agreements built on them).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConstraintUtils

public ConstraintUtils()
Method Detail

isQuantumVulnerable

public static boolean isQuantumVulnerable(CryptoServiceProperties service)
Return true if the service is one of the quantum-vulnerable public-key algorithms: the integer factorisation and discrete logarithm schemes NIST IR 8547 deprecates after 2030 and disallows after 2035 (RSA, DSA, DH/MQV, ECDSA/ECDH and their variants, EdDSA, X25519/X448, ElGamal, Cramer-Shoup, Naccache-Stern and the KEMs and key agreements built on them). The decision is made on the key or domain parameters the service reports where it reports any, and otherwise on its name. The post-quantum algorithms and symmetric services are never quantum-vulnerable.

Parameters:
service - the service properties passed to the constraint.
Returns:
true if the service relies on a quantum-vulnerable public-key algorithm, false otherwise.

bitsOfSecurityFor

public static int bitsOfSecurityFor(java.math.BigInteger p)
Return the bits of security for the passed in RSA modulus or DH/DSA group value.

Parameters:
p - a modulus or group value
Returns:
the security strength in bits.

bitsOfSecurityFor

public static int bitsOfSecurityFor(ECCurve curve)
Return the bits of security for the passed in Elliptic Curve.

Parameters:
curve - the ECCurve of interest.
Returns:
the security strength in bits.

bitsOfSecurityForFF

public static int bitsOfSecurityForFF(int strength)

Bouncy Castle Cryptography Library 1.87