Package com.castlabs.android.drm

## Enum SecurityLevel

- java.lang.Object
- - java.lang.Enum<SecurityLevel>
  - - com.castlabs.android.drm.SecurityLevel

- All Implemented Interfaces:
    `Serializable`, `Comparable<SecurityLevel>`

      public enum SecurityLevel
      extends Enum<SecurityLevel>

  DRM Security level definitions
  Since:
    2.4.0

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant | Description
    --- | ---
    `ROOT_OF_TRUST` | Equals to L2 in Widevine.
    `SECURE_MEDIA_PATH` | Equals to L1 in Widevine.
    `SOFTWARE` | Equals to L3 in Widevine.

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static SecurityLevel` | `valueOf​(String name)` | Returns the enum constant of this type with the specified name.
    `static SecurityLevel[]` | `values()` | Returns an array containing the constants of this enum type, in the order they are declared.

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

      `compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### SECURE_MEDIA_PATH

          public static final SecurityLevel SECURE_MEDIA_PATH

      Equals to L1 in Widevine. The Hardware must provide a secure Bootloader, a secure trust zone, and the key shall never be exposed in clear. The samples are provided encrypted to the rendering core and never exposed in clear.

    - #### ROOT_OF_TRUST

          public static final SecurityLevel ROOT_OF_TRUST

      Equals to L2 in Widevine. The Hardware must provide a secure trust zone, and the key shall never be exposed in clear. A custom Android Bootloader could be provided by the Hardware manufacturer if the required security is met. The samples are provided encrypted to the rendering core and never exposed in clear.

    - #### SOFTWARE

          public static final SecurityLevel SOFTWARE

      Equals to L3 in Widevine. The key may be exposed in clear on the CPU, the Hardware does not need to protect the content. The Decryption happens in software, and the samples are passed to the rendering core in clear.

  - ### Method Detail

    - #### values

          public static SecurityLevel[] values()

      Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

          for (SecurityLevel c : SecurityLevel.values())
              System.out.println(c);

      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static SecurityLevel valueOf​(String name)

      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
        `name` - the name of the enum constant to be returned.
      Returns:
        the enum constant with the specified name
      Throws:
        `IllegalArgumentException` - if this enum type has no constant with the specified name
        `NullPointerException` - if the argument is null