Example usage for org.apache.hadoop.crypto.key KeyProviderCryptoExtension createKeyProviderCryptoExtension

List of usage examples for org.apache.hadoop.crypto.key KeyProviderCryptoExtension createKeyProviderCryptoExtension

Introduction

In this page you can find the example usage for org.apache.hadoop.crypto.key KeyProviderCryptoExtension createKeyProviderCryptoExtension.

Prototype

public static KeyProviderCryptoExtension createKeyProviderCryptoExtension(KeyProvider keyProvider) 

Source Link

Document

Creates a KeyProviderCryptoExtension using a given KeyProvider .

Usage

From source file:com.mellanox.r4h.DFSClient.java

License:Apache License

/**
 * Decrypts a EDEK by consulting the KeyProvider.
 *//*from   w  w  w .j  ava 2  s  . c o  m*/
private KeyVersion decryptEncryptedDataEncryptionKey(FileEncryptionInfo feInfo) throws IOException {
    TraceScope scope = Trace.startSpan("decryptEDEK", traceSampler);
    try {
        KeyProvider provider = getKeyProvider();
        if (provider == null) {
            throw new IOException("No KeyProvider is configured, cannot access" + " an encrypted file");
        }
        EncryptedKeyVersion ekv = EncryptedKeyVersion.createForDecryption(feInfo.getKeyName(),
                feInfo.getEzKeyVersionName(), feInfo.getIV(), feInfo.getEncryptedDataEncryptionKey());
        try {
            KeyProviderCryptoExtension cryptoProvider = KeyProviderCryptoExtension
                    .createKeyProviderCryptoExtension(provider);
            return cryptoProvider.decryptEncryptedKey(ekv);
        } catch (GeneralSecurityException e) {
            throw new IOException(e);
        }
    } finally {
        scope.close();
    }
}