private static ClassLoader getClassLoaderForClass(Class<?> c) {
    ClassLoader cl = Thread.currentThread().getContextClassLoader();
    if (cl == null) {
      cl = c.getClassLoader();
    }
    if (cl == null) {
      cl = ClassLoader.getSystemClassLoader();
    }
    if (cl == null) {
      throw new RuntimeException("A ClassLoader to load the Cipher could not be determined");
    }
    return cl;
  }
Decrypts a block of ciphertext with the symmetric key resolved for the given subject
@param out     plaintext
@param in      ciphertext
@param outLen  the expected plaintext length
@param subject the subject's key alias
@param conf    configuration
@param cipher  the encryption algorithm
@param iv      the initialization vector, can be null
hbase-common/src/main/java/org/apache/hadoop/hbase/io/crypto/Encryption.java