org.jasypt.encryption.pbe.config

## Class EnvironmentPBEConfig

- Object
- - org.jasypt.encryption.pbe.config.SimplePBEConfig
  - - org.jasypt.encryption.pbe.config.EnvironmentPBEConfig

- All Implemented Interfaces:
    PBECleanablePasswordConfig, PBEConfig
  Direct Known Subclasses:
    EnvironmentStringPBEConfig

      public class EnvironmentPBEConfig
      extends SimplePBEConfig

  Implementation for `PBEConfig` which can retrieve configuration values from environment variables or system properties.

  The name of the environment variable or system property (JVM property) to query for each parameter can be set with its corresponding `setXEnvName` or `setXSysProperty` method.

  As this class extends `SimplePBEConfig`, parameter values can be also set with the usual `setX` methods.

  For any of the configuration parameters, if its value is not configured in any way, a `null` value will be returned by the corresponding `getX` method.

  Since:
    1.1
  Author:
    Daniel Fernández

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `EnvironmentPBEConfig()` Creates a new `EnvironmentPBEConfig` instance.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getAlgorithmEnvName()` Retrieve the name of the environment variable which value has been loaded as the algorithm.
    `String` | `getAlgorithmSysPropertyName()` Retrieve the name of the JVM system property which value has been loaded as the algorithm.
    `String` | `getIvGeneratorClassNameEnvName()` Retrieve the name of the environment variable which value has been loaded as the IV generator class name.
    `String` | `getIvGeneratorClassNameSysPropertyName()` Retrieve the name of the JVM system property which value has been loaded as the IV generator class name.
    `String` | `getKeyObtentionIterationsEnvName()` Retrieve the name of the environment variable which value has been loaded as the key obtention iteration count.
    `String` | `getKeyObtentionIterationsSysPropertyName()` Retrieve the name of the JVM system property which value has been loaded as the key obtention iteration count.
    `String` | `getPasswordEnvName()` Retrieve the name of the environment variable which value has been loaded as the password.
    `String` | `getPasswordSysPropertyName()` Retrieve the name of the JVM system property which value has been loaded as the password.
    `String` | `getPoolSizeEnvName()` Retrieve the name of the environment variable which value has been loaded as the value for the poolSize property.
    `String` | `getPoolSizeSysPropertyName()` Retrieve the name of the JVM system property which value has been loaded as the value for the poolSize property.
    `String` | `getProviderClassNameEnvName()` Retrieve the name of the environment variable which value has been loaded as the provider class name.
    `String` | `getProviderClassNameSysPropertyName()` Retrieve the name of the JVM system property which value has been loaded as the provider class name.
    `String` | `getProviderNameEnvName()` Retrieve the name of the environment variable which value has been loaded as the provider name.
    `String` | `getProviderNameSysPropertyName()` Retrieve the name of the JVM system property which value has been loaded as the provider name.
    `String` | `getSaltGeneratorClassNameEnvName()` Retrieve the name of the environment variable which value has been loaded as the salt generator class name.
    `String` | `getSaltGeneratorClassNameSysPropertyName()` Retrieve the name of the JVM system property which value has been loaded as the salt generator class name.
    `void` | `setAlgorithm(String algorithm)` Sets a value for the encryption algorithm This algorithm has to be supported by your JCE provider and, if this provider supports it, you can also specify mode and padding for it, like `ALGORITHM/MODE/PADDING`.
    `void` | `setAlgorithmEnvName(String algorithmEnvName)` Set the config object to use the specified environment variable to load the value for the algorithm.
    `void` | `setAlgorithmSysPropertyName(String algorithmSysPropertyName)` Set the config object to use the specified JVM system property to load the value for the algorithm.
    `void` | `setIvGenerator(IvGenerator ivGenerator)` Sets the IV generator.
    `void` | `setIvGeneratorClassName(String ivGeneratorClassName)` Sets the IV generator.
    `void` | `setIvGeneratorClassNameEnvName(String ivGeneratorClassNameEnvName)` Set the config object to use the specified environment variable to load the value for the IV generator class name.
    `void` | `setIvGeneratorClassNameSysPropertyName(String ivGeneratorClassNameSysPropertyName)` Set the config object to use the specified JVM system property to load the value for the IV generator class name.
    `void` | `setKeyObtentionIterations(Integer keyObtentionIterations)` Sets the number of hashing iterations applied to obtain the encryption key.
    `void` | `setKeyObtentionIterations(String keyObtentionIterations)` Sets the number of hashing iterations applied to obtain the encryption key.
    `void` | `setKeyObtentionIterationsEnvName(String keyObtentionIterationsEnvName)` Set the config object to use the specified environment variable to load the value for the key obtention iteration count.
    `void` | `setKeyObtentionIterationsSysPropertyName(String keyObtentionIterationsSysPropertyName)` Set the config object to use the specified JVM system property to load the value for the key obtention iteration count.
    `void` | `setPassword(String password)` Sets the password to be used for encryption.
    `void` | `setPasswordCharArray(char[] password)` Sets the password to be used for encryption, as a char[].
    `void` | `setPasswordEnvName(String passwordEnvName)` Set the config object to use the specified environment variable to load the value for the password.
    `void` | `setPasswordSysPropertyName(String passwordSysPropertyName)` Set the config object to use the specified JVM system property to load the value for the password.
    `void` | `setPoolSize(Integer poolSize)` Sets the size of the pool of encryptors to be created.
    `void` | `setPoolSize(String poolSize)` Sets the size of the pool of encryptors to be created.
    `void` | `setPoolSizeEnvName(String poolSizeEnvName)` Set the config object to use the specified environment variable to load the value for the poolSize property.
    `void` | `setPoolSizeSysPropertyName(String poolSizeSysPropertyName)` Set the config object to use the specified JVM system property to load the value for the useLenientSaltSizeCheck property.
    `void` | `setProvider(Provider provider)` Sets the security provider to be used for obtaining the encryption algorithm.
    `void` | `setProviderClassName(String providerClassName)` Sets the security provider to be used for obtaining the encryption algorithm.
    `void` | `setProviderClassNameEnvName(String providerClassNameEnvName)` Set the config object to use the specified environment variable to load the value for the provider class name.
    `void` | `setProviderClassNameSysPropertyName(String providerClassNameSysPropertyName)` Set the config object to use the specified JVM system property to load the value for the provider class name.
    `void` | `setProviderName(String providerName)` Sets the name of the security provider to be asked for the encryption algorithm.
    `void` | `setProviderNameEnvName(String providerNameEnvName)` Set the config object to use the specified environment variable to load the value for the provider name.
    `void` | `setProviderNameSysPropertyName(String providerNameSysPropertyName)` Set the config object to use the specified JVM system property to load the value for the provider name.
    `void` | `setSaltGenerator(SaltGenerator saltGenerator)` Sets the salt generator.
    `void` | `setSaltGeneratorClassName(String saltGeneratorClassName)` Sets the salt generator.
    `void` | `setSaltGeneratorClassNameEnvName(String saltGeneratorClassNameEnvName)` Set the config object to use the specified environment variable to load the value for the salt generator class name.
    `void` | `setSaltGeneratorClassNameSysPropertyName(String saltGeneratorClassNameSysPropertyName)` Set the config object to use the specified JVM system property to load the value for the salt generator class name.

    - ### Methods inherited from class org.jasypt.encryption.pbe.config.SimplePBEConfig

      `cleanPassword, getAlgorithm, getIvGenerator, getKeyObtentionIterations, getPassword, getPasswordCharArray, getPoolSize, getProvider, getProviderName, getSaltGenerator`

    - ### Methods inherited from class Object

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

- - ### Constructor Detail

    - #### EnvironmentPBEConfig

          public EnvironmentPBEConfig()

      Creates a new `EnvironmentPBEConfig` instance.

  - ### Method Detail

    - #### getAlgorithmEnvName

          public String getAlgorithmEnvName()

      Retrieve the name of the environment variable which value has been loaded as the algorithm.
      Returns:
        the name of the variable

    - #### setAlgorithmEnvName

          public void setAlgorithmEnvName(String algorithmEnvName)

      Set the config object to use the specified environment variable to load the value for the algorithm.
      Parameters:
        `algorithmEnvName` - the name of the environment variable

    - #### getAlgorithmSysPropertyName

          public String getAlgorithmSysPropertyName()

      Retrieve the name of the JVM system property which value has been loaded as the algorithm.
      Returns:
        the name of the property

    - #### setAlgorithmSysPropertyName

          public void setAlgorithmSysPropertyName(String algorithmSysPropertyName)

      Set the config object to use the specified JVM system property to load the value for the algorithm.
      Parameters:
        `algorithmSysPropertyName` - the name of the property

    - #### getKeyObtentionIterationsEnvName

          public String getKeyObtentionIterationsEnvName()

      Retrieve the name of the environment variable which value has been loaded as the key obtention iteration count.
      Returns:
        the name of the variable

    - #### setKeyObtentionIterationsEnvName

          public void setKeyObtentionIterationsEnvName(String keyObtentionIterationsEnvName)

      Set the config object to use the specified environment variable to load the value for the key obtention iteration count.
      Parameters:
        `keyObtentionIterationsEnvName` - the name of the environment variable

    - #### getKeyObtentionIterationsSysPropertyName

          public String getKeyObtentionIterationsSysPropertyName()

      Retrieve the name of the JVM system property which value has been loaded as the key obtention iteration count.
      Returns:
        the name of the property

    - #### setKeyObtentionIterationsSysPropertyName

          public void setKeyObtentionIterationsSysPropertyName(String keyObtentionIterationsSysPropertyName)

      Set the config object to use the specified JVM system property to load the value for the key obtention iteration count.
      Parameters:
        `keyObtentionIterationsSysPropertyName` - the name of the property

    - #### getPasswordEnvName

          public String getPasswordEnvName()

      Retrieve the name of the environment variable which value has been loaded as the password.
      Returns:
        the name of the variable

    - #### setPasswordEnvName

          public void setPasswordEnvName(String passwordEnvName)

      Set the config object to use the specified environment variable to load the value for the password.
      Parameters:
        `passwordEnvName` - the name of the environment variable

    - #### getPasswordSysPropertyName

          public String getPasswordSysPropertyName()

      Retrieve the name of the JVM system property which value has been loaded as the password.
      Returns:
        the name of the property

    - #### setPasswordSysPropertyName

          public void setPasswordSysPropertyName(String passwordSysPropertyName)

      Set the config object to use the specified JVM system property to load the value for the password.
      Parameters:
        `passwordSysPropertyName` - the name of the property

    - #### getSaltGeneratorClassNameEnvName

          public String getSaltGeneratorClassNameEnvName()

      Retrieve the name of the environment variable which value has been loaded as the salt generator class name.
      Returns:
        the name of the variable
      Since:
        1.3

    - #### setSaltGeneratorClassNameEnvName

          public void setSaltGeneratorClassNameEnvName(String saltGeneratorClassNameEnvName)

      Set the config object to use the specified environment variable to load the value for the salt generator class name.

      The salt generator class name which is set here must have a no-argument constructor, so that it can be instantiated and passed to the encryptor.

      Parameters:
        `saltGeneratorClassNameEnvName` - the name of the environment variable
      Since:
        1.3

    - #### getSaltGeneratorClassNameSysPropertyName

          public String getSaltGeneratorClassNameSysPropertyName()

      Retrieve the name of the JVM system property which value has been loaded as the salt generator class name.
      Returns:
        the name of the property
      Since:
        1.3

    - #### setSaltGeneratorClassNameSysPropertyName

          public void setSaltGeneratorClassNameSysPropertyName(String saltGeneratorClassNameSysPropertyName)

      Set the config object to use the specified JVM system property to load the value for the salt generator class name.

      The salt generator class name which is set here must have a no-argument constructor, so that it can be instantiated and passed to the encryptor.

      Parameters:
        `saltGeneratorClassNameSysPropertyName` - the name of the property
      Since:
        1.3

    - #### getIvGeneratorClassNameEnvName

          public String getIvGeneratorClassNameEnvName()

      Retrieve the name of the environment variable which value has been loaded as the IV generator class name.
      Returns:
        the name of the variable
      Since:
        1.9.3

    - #### setIvGeneratorClassNameEnvName

          public void setIvGeneratorClassNameEnvName(String ivGeneratorClassNameEnvName)

      Set the config object to use the specified environment variable to load the value for the IV generator class name.

      The IV generator class name which is set here must have a no-argument constructor, so that it can be instantiated and passed to the encryptor.

      Parameters:
        `ivGeneratorClassNameEnvName` - the name of the environment variable
      Since:
        1.9.3

    - #### getIvGeneratorClassNameSysPropertyName

          public String getIvGeneratorClassNameSysPropertyName()

      Retrieve the name of the JVM system property which value has been loaded as the IV generator class name.
      Returns:
        the name of the property
      Since:
        1.9.3

    - #### setIvGeneratorClassNameSysPropertyName

          public void setIvGeneratorClassNameSysPropertyName(String ivGeneratorClassNameSysPropertyName)

      Set the config object to use the specified JVM system property to load the value for the IV generator class name.

      The IV generator class name which is set here must have a no-argument constructor, so that it can be instantiated and passed to the encryptor.

      Parameters:
        `ivGeneratorClassNameSysPropertyName` - the name of the property
      Since:
        1.9.3

    - #### getProviderNameEnvName

          public String getProviderNameEnvName()

      Retrieve the name of the environment variable which value has been loaded as the provider name.
      Returns:
        the name of the variable
      Since:
        1.3

    - #### setProviderNameEnvName

          public void setProviderNameEnvName(String providerNameEnvName)

      Set the config object to use the specified environment variable to load the value for the provider name.

      Parameters:
        `providerNameEnvName` - the name of the environment variable
      Since:
        1.3

    - #### getProviderNameSysPropertyName

          public String getProviderNameSysPropertyName()

      Retrieve the name of the JVM system property which value has been loaded as the provider name.
      Returns:
        the name of the property
      Since:
        1.3

    - #### setProviderNameSysPropertyName

          public void setProviderNameSysPropertyName(String providerNameSysPropertyName)

      Set the config object to use the specified JVM system property to load the value for the provider name.
      Parameters:
        `providerNameSysPropertyName` - the name of the property
      Since:
        1.3

    - #### getProviderClassNameEnvName

          public String getProviderClassNameEnvName()

      Retrieve the name of the environment variable which value has been loaded as the provider class name.
      Returns:
        the name of the variable
      Since:
        1.3

    - #### setProviderClassNameEnvName

          public void setProviderClassNameEnvName(String providerClassNameEnvName)

      Set the config object to use the specified environment variable to load the value for the provider class name.

      The provider class name which is set here must have a no-argument constructor, so that it can be instantiated and passed to the encryptor.

      Parameters:
        `providerClassNameEnvName` - the name of the environment variable
      Since:
        1.3

    - #### getProviderClassNameSysPropertyName

          public String getProviderClassNameSysPropertyName()

      Retrieve the name of the JVM system property which value has been loaded as the provider class name.
      Returns:
        the name of the property
      Since:
        1.3

    - #### setProviderClassNameSysPropertyName

          public void setProviderClassNameSysPropertyName(String providerClassNameSysPropertyName)

      Set the config object to use the specified JVM system property to load the value for the provider class name.

      The provider class name which is set here must have a no-argument constructor, so that it can be instantiated and passed to the encryptor.

      Parameters:
        `providerClassNameSysPropertyName` - the name of the property
      Since:
        1.3

    - #### getPoolSizeEnvName

          public String getPoolSizeEnvName()

      Retrieve the name of the environment variable which value has been loaded as the value for the poolSize property.
      Returns:
        the name of the variable
      Since:
        1.7

    - #### setPoolSizeEnvName

          public void setPoolSizeEnvName(String poolSizeEnvName)

      Set the config object to use the specified environment variable to load the value for the poolSize property.

      Parameters:
        `poolSizeEnvName` - the name of the environment variable
      Since:
        1.7

    - #### getPoolSizeSysPropertyName

          public String getPoolSizeSysPropertyName()

      Retrieve the name of the JVM system property which value has been loaded as the value for the poolSize property.
      Returns:
        the name of the property
      Since:
        1.7

    - #### setPoolSizeSysPropertyName

          public void setPoolSizeSysPropertyName(String poolSizeSysPropertyName)

      Set the config object to use the specified JVM system property to load the value for the useLenientSaltSizeCheck property.

      Parameters:
        `poolSizeSysPropertyName` - the name of the property
      Since:
        1.7

    - #### setAlgorithm

          public void setAlgorithm(String algorithm)

      Description copied from class: `SimplePBEConfig`

      Sets a value for the encryption algorithm

      This algorithm has to be supported by your JCE provider and, if this provider supports it, you can also specify mode and padding for it, like `ALGORITHM/MODE/PADDING`.

      Determines the result of: `SimplePBEConfig.getAlgorithm()`

      Overrides:
        `setAlgorithm` in class `SimplePBEConfig`
      Parameters:
        `algorithm` - the name of the algorithm to be used

    - #### setKeyObtentionIterations

          public void setKeyObtentionIterations(Integer keyObtentionIterations)

      Description copied from class: `SimplePBEConfig`
      Sets the number of hashing iterations applied to obtain the encryption key.

      Determines the result of: `SimplePBEConfig.getKeyObtentionIterations()`

      Overrides:
        `setKeyObtentionIterations` in class `SimplePBEConfig`
      Parameters:
        `keyObtentionIterations` - the number of iterations.

    - #### setKeyObtentionIterations

          public void setKeyObtentionIterations(String keyObtentionIterations)

      Description copied from class: `SimplePBEConfig`
      Sets the number of hashing iterations applied to obtain the encryption key.

      Determines the result of: `SimplePBEConfig.getKeyObtentionIterations()`

      Overrides:
        `setKeyObtentionIterations` in class `SimplePBEConfig`
      Parameters:
        `keyObtentionIterations` - the number of iterations.

    - #### setPassword

          public void setPassword(String password)

      Description copied from class: `SimplePBEConfig`
      Sets the password to be used for encryption.

      Determines the result of: `SimplePBEConfig.getPassword()` and `SimplePBEConfig.getPasswordCharArray()`.

      Overrides:
        `setPassword` in class `SimplePBEConfig`
      Parameters:
        `password` - the password to be used.

    - #### setPasswordCharArray

          public void setPasswordCharArray(char[] password)

      Description copied from class: `SimplePBEConfig`
      Sets the password to be used for encryption, as a char[].

      This allows the password to be specified as a cleanable char[] instead of a String, in extreme security conscious environments in which no copy of the password as an immutable String should be kept in memory.

      Important: the array specified as a parameter WILL BE COPIED in order to be stored in the configuration object. The caller of this method will therefore be responsible for its cleaning (jasypt will only clean the internally stored copy).

      Determines the result of: `SimplePBEConfig.getPassword()` and `SimplePBEConfig.getPasswordCharArray()`.

      Overrides:
        `setPasswordCharArray` in class `SimplePBEConfig`
      Parameters:
        `password` - the password to be used.

    - #### setSaltGenerator

          public void setSaltGenerator(SaltGenerator saltGenerator)

      Description copied from class: `SimplePBEConfig`

      Sets the salt generator.

      If not set, null will returned.

      Determines the result of: `SimplePBEConfig.getSaltGenerator()`

      Overrides:
        `setSaltGenerator` in class `SimplePBEConfig`
      Parameters:
        `saltGenerator` - the salt generator.

    - #### setSaltGeneratorClassName

          public void setSaltGeneratorClassName(String saltGeneratorClassName)

      Description copied from class: `SimplePBEConfig`

      Sets the salt generator.

      If not set, null will returned.

      Determines the result of: `SimplePBEConfig.getSaltGenerator()`

      Overrides:
        `setSaltGeneratorClassName` in class `SimplePBEConfig`
      Parameters:
        `saltGeneratorClassName` - the name of the salt generator class.

    - #### setIvGenerator

          public void setIvGenerator(IvGenerator ivGenerator)

      Description copied from class: `SimplePBEConfig`

      Sets the IV generator.

      If not set, null will returned.

      Determines the result of: `SimplePBEConfig.getIvGenerator()`

      Overrides:
        `setIvGenerator` in class `SimplePBEConfig`
      Parameters:
        `ivGenerator` - the IV generator.

    - #### setIvGeneratorClassName

          public void setIvGeneratorClassName(String ivGeneratorClassName)

      Description copied from class: `SimplePBEConfig`

      Sets the IV generator.

      If not set, null will returned.

      Determines the result of: `SimplePBEConfig.getIvGenerator()`

      Overrides:
        `setIvGeneratorClassName` in class `SimplePBEConfig`
      Parameters:
        `ivGeneratorClassName` - the name of the IV generator class.

    - #### setProviderName

          public void setProviderName(String providerName)

      Description copied from class: `SimplePBEConfig`

      Sets the name of the security provider to be asked for the encryption algorithm. This provider should be already registered.

      If both the `providerName` and `provider` properties are set, only `provider` will be used, and `providerName` will have no meaning for the encryptor object.

      If not set, null will be returned.

      Determines the result of: `SimplePBEConfig.getProviderName()`

      Overrides:
        `setProviderName` in class `SimplePBEConfig`
      Parameters:
        `providerName` - the name of the security provider.

    - #### setProvider

          public void setProvider(Provider provider)

      Description copied from class: `SimplePBEConfig`

      Sets the security provider to be used for obtaining the encryption algorithm. This method is an alternative to both `SimplePBEConfig.setProviderName(String)` and `SimplePBEConfig.setProviderClassName(String)` and they should not be used altogether. The provider specified with `SimplePBEConfig.setProvider(Provider)` does not have to be registered beforehand, and its use will not result in its being registered.

      If both the `providerName` and `provider` properties are set, only `provider` will be used, and `providerName` will have no meaning for the encryptor object.

      If not set, null will be returned.

      Determines the result of: `SimplePBEConfig.getProvider()`

      Overrides:
        `setProvider` in class `SimplePBEConfig`
      Parameters:
        `provider` - the security provider object.

    - #### setProviderClassName

          public void setProviderClassName(String providerClassName)

      Description copied from class: `SimplePBEConfig`

      Sets the security provider to be used for obtaining the encryption algorithm. This method is an alternative to both `SimplePBEConfig.setProviderName(String)` and `SimplePBEConfig.setProvider(Provider)` and they should not be used altogether. The provider specified with `SimplePBEConfig.setProviderClassName(String)` does not have to be registered beforehand, and its use will not result in its being registered.

      If both the `providerName` and `provider` properties are set, only `provider` will be used, and `providerName` will have no meaning for the encryptor object.

      If not set, null will be returned.

      Determines the result of: `SimplePBEConfig.getProvider()`

      Overrides:
        `setProviderClassName` in class `SimplePBEConfig`
      Parameters:
        `providerClassName` - the name of the security provider class.

    - #### setPoolSize

          public void setPoolSize(Integer poolSize)

      Description copied from class: `SimplePBEConfig`

      Sets the size of the pool of encryptors to be created.

      This parameter will be ignored if used with a non-pooled encryptor.

      If not set, null will be returned.

      Determines the result of: `SimplePBEConfig.getPoolSize()`

      Overrides:
        `setPoolSize` in class `SimplePBEConfig`
      Parameters:
        `poolSize` - the size of the pool to be used if this configuration is used with a pooled encryptor

    - #### setPoolSize

          public void setPoolSize(String poolSize)

      Description copied from class: `SimplePBEConfig`

      Sets the size of the pool of encryptors to be created.

      This parameter will be ignored if used with a non-pooled encryptor.

      If not set, null will be returned.

      Determines the result of: `SimplePBEConfig.getPoolSize()`

      Overrides:
        `setPoolSize` in class `SimplePBEConfig`
      Parameters:
        `poolSize` - the size of the pool to be used if this configuration is used with a pooled encryptor

Copyright © 2019 The JASYPT team. All rights reserved.