Example usage for org.apache.hadoop.hdfs DFSInputStream getFileEncryptionInfo

List of usage examples for org.apache.hadoop.hdfs DFSInputStream getFileEncryptionInfo

Introduction

In this page you can find the example usage for org.apache.hadoop.hdfs DFSInputStream getFileEncryptionInfo.

Prototype

public FileEncryptionInfo getFileEncryptionInfo() 

Source Link

Usage

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

License:Apache License

/**
 * Wraps the stream in a CryptoInputStream if the underlying file is
 * encrypted.//from  www.ja v a  2s. c  o m
 */
public HdfsDataInputStream createWrappedInputStream(DFSInputStream dfsis) throws IOException {
    final FileEncryptionInfo feInfo = dfsis.getFileEncryptionInfo();
    if (feInfo != null) {
        // File is encrypted, wrap the stream in a crypto stream.
        // Currently only one version, so no special logic based on the version #
        getCryptoProtocolVersion(feInfo);
        final CryptoCodec codec = getCryptoCodec(conf, feInfo);
        final KeyVersion decrypted = decryptEncryptedDataEncryptionKey(feInfo);
        final CryptoInputStream cryptoIn = new CryptoInputStream(dfsis, codec, decrypted.getMaterial(),
                feInfo.getIV());
        return new HdfsDataInputStream(cryptoIn);
    } else {
        // No FileEncryptionInfo so no encryption.
        return new HdfsDataInputStream(dfsis);
    }
}