Package org.bouncycastle.crypto

## Class CryptoServicesRegistrar

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

-     public final class CryptoServicesRegistrar
      extends java.lang.Object

  Basic registrar class for providing defaults for cryptography services in this module.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `CryptoServicesRegistrar.Property` | Available properties that can be set.

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <T> T[]` | `clearGlobalProperty​(CryptoServicesRegistrar.Property property)` | Clear the global value for the passed in property.
    `static <T> T[]` | `clearThreadProperty​(CryptoServicesRegistrar.Property property)` | Clear the thread local value for the passed in property.
    `static <T> T` | `getProperty​(CryptoServicesRegistrar.Property property)` | Return the default value for a particular property if one exists.
    `static java.security.SecureRandom` | `getSecureRandom()` | Return the default source of randomness.
    `static java.security.SecureRandom` | `getSecureRandom​(java.security.SecureRandom secureRandom)` | Return either the passed-in SecureRandom, or if it is null, then the default source of randomness.
    `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.
    `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.
    `static <T> void` | `setGlobalProperty​(CryptoServicesRegistrar.Property property, T... propertyValue)` | Set the value of the the passed in property globally in the JVM.
    `static void` | `setSecureRandom​(java.security.SecureRandom secureRandom)` | Set a default secure random to be used where none is otherwise provided.
    `static <T> void` | `setThreadProperty​(CryptoServicesRegistrar.Property property, T... propertyValue)` | Set the value of the the passed in property on the current thread only.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### getSecureRandom

          public static java.security.SecureRandom getSecureRandom()

      Return the default source of randomness.
      Returns:
        the default SecureRandom

    - #### getSecureRandom

          public static java.security.SecureRandom getSecureRandom​(java.security.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​(java.security.SecureRandom secureRandom)

      Set a default secure random to be used where none is otherwise provided.
      Parameters:
        `secureRandom` - the SecureRandom to use as the default.

    - #### 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.