Class Secret

java.lang.Object
org.wso2.carbon.utils.Secret

public class Secret extends Object
This class wraps a character array to be used to handle sensitive data like passwords.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addChars(char[] chars)
    Adds the given character array to the existing character array of the secret
    void
    Clears byte and character arrays of the secret.
    byte[]
    Returns the secret as a byte array in UTF-8 format
    byte[]
    getBytes(Charset charset)
    Returns the secret as a byte array for the given encoding format
    char[]
    Returns the secret as a character array
    static Secret
    getSecret(Object secret)
    Returns an instance of a Secret for the given secret type.
    boolean
    Check if the character array of the secret is null or empty
    void
    setChars(char[] chars)
    Sets the given character array as the secret and clears the previous character array

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • getChars

      public char[] getChars()
      Returns the secret as a character array
      Returns:
      char[]
    • getBytes

      public byte[] getBytes()
      Returns the secret as a byte array in UTF-8 format
      Returns:
      byte[]
    • getBytes

      public byte[] getBytes(Charset charset)
      Returns the secret as a byte array for the given encoding format
      Parameters:
      charset - Character encoding format
      Returns:
      byte[]
    • isEmpty

      public boolean isEmpty()
      Check if the character array of the secret is null or empty
      Returns:
      true if character array is null or empty, else return false
    • setChars

      public void setChars(char[] chars)
      Sets the given character array as the secret and clears the previous character array
      Parameters:
      chars - character array of the secret
    • addChars

      public void addChars(char[] chars)
      Adds the given character array to the existing character array of the secret
      Parameters:
      chars - character array to be added
    • clear

      public void clear()
      Clears byte and character arrays of the secret. For each invocation of this method the internal counter which tracks the access count of the instance is decremented. Byte and character arrays are cleared if and only if the internal counter value is less than 0. For proper operation, this method should be invoked once, per each invocation of getSecret factory method.
    • getSecret

      public static Secret getSecret(Object secret) throws UnsupportedSecretTypeException
      Returns an instance of a Secret for the given secret type. Given secret type should be an instance of a Secret, char[] or a String. If the given secret is of Secret type the internal counter which tracks the access count of the instance is incremented. Thus, for proper operation once the instance of Secret is retrieved from this method and used, clear() method should be invoked to clear internal char and byte arrays.
      Parameters:
      secret - given secret. Supports only Secret, char[] or a String types
      Returns:
      an instance of Secret
      Throws:
      UnsupportedSecretTypeException - thrown if the given secret is not either a Secret, char[] or String