code: CipherLite createCipherLite(SecretKey cek, byte[] iv, int cipherMode,
              Provider securityProvider) {
          String specificProvider = getSpecificCipherProvider();
          Cipher cipher;
          try {
              if (specificProvider != null) { // use the specific provider if defined
                      cipher = Cipher.getInstance(getCipherAlgorithm(), specificProvider);
              } else if (securityProvider != null) { // use the one optionally specified in the input
                  cipher = Cipher.getInstance(getCipherAlgorithm(), securityProvider);
              } else { // use the default provider
                  cipher = Cipher.getInstance(getCipherAlgorithm());
              }
              cipher.init(cipherMode, cek, new IvParameterSpec(iv));
              return newCipherLite(cipher, cek, cipherMode);
          } catch (Exception e) {
              throw e instanceof RuntimeException
                  ? (RuntimeException) e
                  : new SdkClientException(
                      "Unable to build cipher: "
                          + e.getMessage()
                          + "\nMake sure you have the JCE unlimited strength policy files installed and "
                          + "configured for your JVM",
                      e);
          }
      }
docs: Creates and initializes a {@link CipherLite} for content
  encrypt/decryption.
  
  @param cek
  content encrypting key
  @param iv
  initialization vector
  @param cipherMode
  such as {@link Cipher#ENCRYPT_MODE}
  @param securityProvider
  optional security provider to be used but only if there is no
  specific provider defined for the specified scheme.
  @return the cipher lite created and initialized.