Example usage for org.apache.hadoop.fs FileEncryptionInfo getKeyName

List of usage examples for org.apache.hadoop.fs FileEncryptionInfo getKeyName

Introduction

In this page you can find the example usage for org.apache.hadoop.fs FileEncryptionInfo getKeyName.

Prototype

public String getKeyName() 

Source Link

Usage

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

License:Apache License

/**
 * Decrypts a EDEK by consulting the KeyProvider.
 *///  w ww. j a  va2 s  . co 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();
    }
}