Class CryptoServicesRegistrar

java.lang.Object
org.bouncycastle.crypto.CryptoServicesRegistrar

public final class CryptoServicesRegistrar extends Object
Basic registrar class for providing defaults for cryptography services in this module.
  • Method Details

    • getSecureRandom

      public static SecureRandom getSecureRandom()
      Return the default source of randomness.
      Returns:
      the default SecureRandom
    • getSecureRandom

      public static SecureRandom getSecureRandom(SecureRandom secureRandom)
      Return either the passed-in SecureRandom, or if it is null, then the default source of randomness.
      Parameters:
      secureRandom - the SecureRandom to use if it is not null.
      Returns:
      the SecureRandom parameter if it is not null, or else the default SecureRandom
    • setSecureRandom

      public static void setSecureRandom(SecureRandom secureRandom)
      Set a default secure random to be used where none is otherwise provided.
      Parameters:
      secureRandom - the SecureRandom to use as the default.
    • setSecureRandomProvider

      public static void setSecureRandomProvider(SecureRandomProvider secureRandomProvider)
      Set a default secure random provider to be used where none is otherwise provided.
      Parameters:
      secureRandomProvider - a provider SecureRandom to use when a default SecureRandom is requested.
    • getServicesConstraints

      public static CryptoServicesConstraints getServicesConstraints()
      Return the current algorithm/services constraints.
      Returns:
      the algorithm/services constraints.
    • checkConstraints

      public static void checkConstraints(CryptoServiceProperties cryptoService)
      Check a service to make sure it meets the current constraints.
      Parameters:
      cryptoService - the service to be checked.
      Throws:
      CryptoServiceConstraintsException - if the service violates the current constraints.
    • setServicesConstraints

      public static void setServicesConstraints(CryptoServicesConstraints constraints)
      Set the current algorithm constraints.
    • getProperty

      public static <T> T getProperty(CryptoServicesRegistrar.Property property)
      Return the default value for a particular property if one exists. The look up is done on the thread's local configuration first and then on the global configuration in no local configuration exists.
      Type Parameters:
      T - the type to be returned
      Parameters:
      property - the property to look up.
      Returns:
      null if the property is not set, the default value otherwise,
    • getSizedProperty

      public static <T> T[] getSizedProperty(CryptoServicesRegistrar.Property property)
      Return an array representing the current values for a sized property such as DH_DEFAULT_PARAMS or DSA_DEFAULT_PARAMS.
      Type Parameters:
      T - the base type of the array to be returned.
      Parameters:
      property - the name of the property to look up.
      Returns:
      null if the property is not set, an array of the current values otherwise.
    • getSizedProperty

      public static <T> T getSizedProperty(CryptoServicesRegistrar.Property property, int size)
      Return the value for a specific size for a sized property such as DH_DEFAULT_PARAMS or DSA_DEFAULT_PARAMS.
      Type Parameters:
      T - the type of the value to be returned.
      Parameters:
      property - the name of the property to look up.
      size - the size (in bits) of the defining value in the property type.
      Returns:
      the current value for the size, null if there is no value set,
    • setThreadProperty

      public static <T> void setThreadProperty(CryptoServicesRegistrar.Property property, T... propertyValue)
      Set the value of the the passed in property on the current thread only. More than one value can be passed in for a sized property. If more than one value is provided the first value in the argument list becomes the default value.
      Type Parameters:
      T - the base type of the property value.
      Parameters:
      property - the name of the property to set.
      propertyValue - the values to assign to the property.
    • setGlobalProperty

      public static <T> void setGlobalProperty(CryptoServicesRegistrar.Property property, T... propertyValue)
      Set the value of the the passed in property globally in the JVM. More than one value can be passed in for a sized property. If more than one value is provided the first value in the argument list becomes the default value.
      Type Parameters:
      T - the base type of the property value.
      Parameters:
      property - the name of the property to set.
      propertyValue - the values to assign to the property.
    • clearGlobalProperty

      public static <T> T[] clearGlobalProperty(CryptoServicesRegistrar.Property property)
      Clear the global value for the passed in property.
      Type Parameters:
      T - the base type of the property value
      Parameters:
      property - the property to be cleared.
      Returns:
      an array of T if a value was previously set, null otherwise.
    • clearThreadProperty

      public static <T> T[] clearThreadProperty(CryptoServicesRegistrar.Property property)
      Clear the thread local value for the passed in property.
      Type Parameters:
      T - the base type of the property value
      Parameters:
      property - the property to be cleared.
      Returns:
      an array of T if a value was previously set, null otherwise.