Package org.apache.hadoop.hdfs
Class HdfsKMSUtil
java.lang.Object
org.apache.hadoop.hdfs.HdfsKMSUtil
Utility class for key provider related methods in hdfs client package.
-
Method Summary
Modifier and TypeMethodDescriptionstatic org.apache.hadoop.crypto.key.KeyProvidercreateKeyProvider(org.apache.hadoop.conf.Configuration conf) Creates a new KeyProvider from the given Configuration.static org.apache.hadoop.crypto.CryptoInputStreamcreateWrappedInputStream(InputStream is, org.apache.hadoop.crypto.key.KeyProvider keyProvider, org.apache.hadoop.fs.FileEncryptionInfo fileEncryptionInfo, org.apache.hadoop.conf.Configuration conf) static org.apache.hadoop.crypto.CryptoCodecgetCryptoCodec(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.fs.FileEncryptionInfo feInfo) Obtain a CryptoCodec based on the CipherSuite set in a FileEncryptionInfo and the available CryptoCodecs configured in the Configuration.static org.apache.hadoop.crypto.CryptoProtocolVersiongetCryptoProtocolVersion(org.apache.hadoop.fs.FileEncryptionInfo feInfo) Obtain the crypto protocol version from the provided FileEncryptionInfo, checking to see if this version is supported by.static org.apache.hadoop.crypto.key.KeyProvidergetKeyProvider(org.apache.hadoop.crypto.key.KeyProviderTokenIssuer issuer, org.apache.hadoop.conf.Configuration conf) static org.apache.hadoop.io.TextgetKeyProviderMapKey(URI namenodeUri) Returns a key to map namenode uri to key provider uri.static URIgetKeyProviderUri(org.apache.hadoop.security.UserGroupInformation ugi, URI namenodeUri, String keyProviderUriStr, org.apache.hadoop.conf.Configuration conf) The key provider uri is searched in the following order. 1.
-
Method Details
-
createKeyProvider
public static org.apache.hadoop.crypto.key.KeyProvider createKeyProvider(org.apache.hadoop.conf.Configuration conf) throws IOException Creates a new KeyProvider from the given Configuration.- Parameters:
conf- Configuration- Returns:
- new KeyProvider, or null if no provider was found.
- Throws:
IOException- if the KeyProvider is improperly specified in the Configuration
-
getCryptoProtocolVersion
public static org.apache.hadoop.crypto.CryptoProtocolVersion getCryptoProtocolVersion(org.apache.hadoop.fs.FileEncryptionInfo feInfo) throws IOException Obtain the crypto protocol version from the provided FileEncryptionInfo, checking to see if this version is supported by.- Parameters:
feInfo- FileEncryptionInfo- Returns:
- CryptoProtocolVersion from the feInfo
- Throws:
IOException- if the protocol version is unsupported.
-
getCryptoCodec
public static org.apache.hadoop.crypto.CryptoCodec getCryptoCodec(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.fs.FileEncryptionInfo feInfo) throws IOException Obtain a CryptoCodec based on the CipherSuite set in a FileEncryptionInfo and the available CryptoCodecs configured in the Configuration.- Parameters:
conf- ConfigurationfeInfo- FileEncryptionInfo- Returns:
- CryptoCodec
- Throws:
IOException- if no suitable CryptoCodec for the CipherSuite is available.
-
getKeyProviderUri
public static URI getKeyProviderUri(org.apache.hadoop.security.UserGroupInformation ugi, URI namenodeUri, String keyProviderUriStr, org.apache.hadoop.conf.Configuration conf) throws IOException The key provider uri is searched in the following order. 1. If there is a mapping in Credential's secrets map for namenode uri. 2. From namenode getServerDefaults call. 3. Finally fallback to local conf.- Returns:
- keyProviderUri if found from either of above 3 cases, null otherwise
- Throws:
IOException
-
getKeyProvider
public static org.apache.hadoop.crypto.key.KeyProvider getKeyProvider(org.apache.hadoop.crypto.key.KeyProviderTokenIssuer issuer, org.apache.hadoop.conf.Configuration conf) throws IOException - Throws:
IOException
-
getKeyProviderMapKey
Returns a key to map namenode uri to key provider uri. Tasks will lookup this key to find key Provider. -
createWrappedInputStream
public static org.apache.hadoop.crypto.CryptoInputStream createWrappedInputStream(InputStream is, org.apache.hadoop.crypto.key.KeyProvider keyProvider, org.apache.hadoop.fs.FileEncryptionInfo fileEncryptionInfo, org.apache.hadoop.conf.Configuration conf) throws IOException - Throws:
IOException
-