|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.hadoop.crypto.key.KeyProvider
@InterfaceAudience.Public @InterfaceStability.Unstable public abstract class KeyProvider
A provider of secret key material for Hadoop applications. Provides an abstraction to separate key storage from users of encryption. It is intended to support getting or storing keys in a variety of ways, including third party bindings.
KeyProvider
implementations must be thread safe.
Field Summary | |
---|---|
static int |
DEFAULT_BITLENGTH
|
static String |
DEFAULT_BITLENGTH_NAME
|
static String |
DEFAULT_CIPHER
|
static String |
DEFAULT_CIPHER_NAME
|
Constructor Summary | |
---|---|
KeyProvider(Configuration conf)
Constructor. |
Method Summary | |
---|---|
protected static String |
buildVersionName(String name,
int version)
Build a version string from a basename and version number. |
void |
close()
Can be used by implementing classes to close any resources that require closing |
abstract org.apache.hadoop.crypto.key.KeyProvider.KeyVersion |
createKey(String name,
byte[] material,
org.apache.hadoop.crypto.key.KeyProvider.Options options)
Create a new key. |
org.apache.hadoop.crypto.key.KeyProvider.KeyVersion |
createKey(String name,
org.apache.hadoop.crypto.key.KeyProvider.Options options)
Create a new key generating the material for it. |
abstract void |
deleteKey(String name)
Delete the given key. |
static KeyProvider |
findProvider(List<KeyProvider> providerList,
String keyName)
Find the provider with the given key. |
abstract void |
flush()
Ensures that any changes to the keys are written to persistent store. |
protected byte[] |
generateKey(int size,
String algorithm)
Generates a key material. |
static String |
getBaseName(String versionName)
Split the versionName in to a base name. |
Configuration |
getConf()
Return the provider configuration. |
org.apache.hadoop.crypto.key.KeyProvider.KeyVersion |
getCurrentKey(String name)
Get the current version of the key, which should be used for encrypting new data. |
abstract List<String> |
getKeys()
Get the key names for all keys. |
org.apache.hadoop.crypto.key.KeyProvider.Metadata[] |
getKeysMetadata(String... names)
Get key metadata in bulk. |
abstract org.apache.hadoop.crypto.key.KeyProvider.KeyVersion |
getKeyVersion(String versionName)
Get the key material for a specific version of the key. |
abstract List<org.apache.hadoop.crypto.key.KeyProvider.KeyVersion> |
getKeyVersions(String name)
Get the key material for all versions of a specific key name. |
abstract org.apache.hadoop.crypto.key.KeyProvider.Metadata |
getMetadata(String name)
Get metadata about the key. |
boolean |
isTransient()
Indicates whether this provider represents a store that is intended for transient use - such as the UserProvider is. |
static org.apache.hadoop.crypto.key.KeyProvider.Options |
options(Configuration conf)
A helper function to create an options object. |
org.apache.hadoop.crypto.key.KeyProvider.KeyVersion |
rollNewVersion(String name)
Roll a new version of the given key generating the material for it. |
abstract org.apache.hadoop.crypto.key.KeyProvider.KeyVersion |
rollNewVersion(String name,
byte[] material)
Roll a new version of the given key. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String DEFAULT_CIPHER_NAME
public static final String DEFAULT_CIPHER
public static final String DEFAULT_BITLENGTH_NAME
public static final int DEFAULT_BITLENGTH
Constructor Detail |
---|
public KeyProvider(Configuration conf)
conf
- configuration for the providerMethod Detail |
---|
public Configuration getConf()
public static org.apache.hadoop.crypto.key.KeyProvider.Options options(Configuration conf)
conf
- the configuration to use
public boolean isTransient()
public abstract org.apache.hadoop.crypto.key.KeyProvider.KeyVersion getKeyVersion(String versionName) throws IOException
versionName
- the name of a specific version of the key
IOException
public abstract List<String> getKeys() throws IOException
IOException
public org.apache.hadoop.crypto.key.KeyProvider.Metadata[] getKeysMetadata(String... names) throws IOException
names
- the names of the keys to get
IOException
public abstract List<org.apache.hadoop.crypto.key.KeyProvider.KeyVersion> getKeyVersions(String name) throws IOException
IOException
public org.apache.hadoop.crypto.key.KeyProvider.KeyVersion getCurrentKey(String name) throws IOException
name
- the base name of the key
IOException
public abstract org.apache.hadoop.crypto.key.KeyProvider.Metadata getMetadata(String name) throws IOException
name
- the basename of the key
IOException
public abstract org.apache.hadoop.crypto.key.KeyProvider.KeyVersion createKey(String name, byte[] material, org.apache.hadoop.crypto.key.KeyProvider.Options options) throws IOException
name
- the base name of the keymaterial
- the key material for the first version of the key.options
- the options for the new key.
IOException
protected byte[] generateKey(int size, String algorithm) throws NoSuchAlgorithmException
size
- length of the key.algorithm
- algorithm to use for generating the key.
NoSuchAlgorithmException
public org.apache.hadoop.crypto.key.KeyProvider.KeyVersion createKey(String name, org.apache.hadoop.crypto.key.KeyProvider.Options options) throws NoSuchAlgorithmException, IOException
createKey(String, byte[], Options)
method.
name
- the base name of the keyoptions
- the options for the new key.
IOException
NoSuchAlgorithmException
public abstract void deleteKey(String name) throws IOException
name
- the name of the key to delete
IOException
public abstract org.apache.hadoop.crypto.key.KeyProvider.KeyVersion rollNewVersion(String name, byte[] material) throws IOException
name
- the basename of the keymaterial
- the new key material
IOException
public void close() throws IOException
IOException
public org.apache.hadoop.crypto.key.KeyProvider.KeyVersion rollNewVersion(String name) throws NoSuchAlgorithmException, IOException
rollNewVersion(String, byte[])
method.
name
- the basename of the key
IOException
NoSuchAlgorithmException
public abstract void flush() throws IOException
IOException
public static String getBaseName(String versionName) throws IOException
versionName
- the version name to split
IOException
protected static String buildVersionName(String name, int version)
name
- the basename of the keyversion
- the version of the key
public static KeyProvider findProvider(List<KeyProvider> providerList, String keyName) throws IOException
providerList
- the list of providerskeyName
- the key name we are looking for
IOException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |