Package com.amazonaws.encryptionsdk.jce
Class JceMasterKey
Represents a
MasterKey
backed by one (or more) JCE Key
s. Instances of this should
only be acquired using getInstance(SecretKey, String, String, String)
or getInstance(PublicKey, PrivateKey, String, String, String)
.-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
JceMasterKey(String providerName, String keyId, JceKeyCipher jceKeyCipher)
-
Method Summary
Modifier and TypeMethodDescriptiondecryptDataKey(CryptoAlgorithm algorithm, Collection<? extends EncryptedDataKey> encryptedDataKeys, Map<String,String> encryptionContext)
Iterates throughencryptedDataKeys
and returns the first one which can be successfully decrypted.encryptDataKey(CryptoAlgorithm algorithm, Map<String,String> encryptionContext, DataKey<?> dataKey)
Returns a new copy of the provideddataKey
which is protected by thisMasterKey
for use withalgorithm
and associated with the providedencryptionContext
.generateDataKey(CryptoAlgorithm algorithm, Map<String,String> encryptionContext)
static JceMasterKey
getInstance(PublicKey wrappingKey, PrivateKey unwrappingKey, String provider, String keyId, String wrappingAlgorithm)
Returns aJceMasterKey
backed byunwrappingKey
andwrappingKey
usingwrappingAlgorithm
.static JceMasterKey
getInstance(SecretKey key, String provider, String keyId, String wrappingAlgorithm)
Returns aJceMasterKey
backed bykey
usingwrappingAlgorithm
.getKeyId()
Methods inherited from class com.amazonaws.encryptionsdk.MasterKey
canProvide, equals, getDefaultProviderId, getMasterKey, getMasterKeysForEncryption, hashCode, toString
Methods inherited from class com.amazonaws.encryptionsdk.MasterKeyProvider
buildCannotDecryptDksException, buildCannotDecryptDksException, buildCannotDecryptDksException, getMasterKey
-
Constructor Details
-
JceMasterKey
-
-
Method Details
-
getInstance
public static JceMasterKey getInstance(SecretKey key, String provider, String keyId, String wrappingAlgorithm)Returns aJceMasterKey
backed bykey
usingwrappingAlgorithm
. Currently "AES/GCM/NoPadding
" is the only supported value forwrappingAlgorithm
.- Parameters:
key
- key used to wrap/unwrap (encrypt/decrypt)DataKey
sprovider
-keyId
-wrappingAlgorithm
-- Returns:
-
getInstance
public static JceMasterKey getInstance(PublicKey wrappingKey, PrivateKey unwrappingKey, String provider, String keyId, String wrappingAlgorithm)Returns aJceMasterKey
backed byunwrappingKey
andwrappingKey
usingwrappingAlgorithm
. Currently only RSA algorithms are supported forwrappingAlgorithm
.wrappingAlgorithm
. IfunwrappingKey
isnull
then the returnedJceMasterKey
can only be used for encryption. -
getProviderId
- Specified by:
getProviderId
in classMasterKey<JceMasterKey>
-
getKeyId
- Specified by:
getKeyId
in classMasterKey<JceMasterKey>
-
generateDataKey
public DataKey<JceMasterKey> generateDataKey(CryptoAlgorithm algorithm, Map<String,String> encryptionContext)Description copied from class:MasterKey
Generates a newDataKey
which is protected by thisMasterKey
for use withalgorithm
and associated with the providedencryptionContext
.- Specified by:
generateDataKey
in classMasterKey<JceMasterKey>
-
encryptDataKey
public DataKey<JceMasterKey> encryptDataKey(CryptoAlgorithm algorithm, Map<String,String> encryptionContext, DataKey<?> dataKey)Description copied from class:MasterKey
Returns a new copy of the provideddataKey
which is protected by thisMasterKey
for use withalgorithm
and associated with the providedencryptionContext
.- Specified by:
encryptDataKey
in classMasterKey<JceMasterKey>
-
decryptDataKey
public DataKey<JceMasterKey> decryptDataKey(CryptoAlgorithm algorithm, Collection<? extends EncryptedDataKey> encryptedDataKeys, Map<String,String> encryptionContext) throws UnsupportedProviderException, AwsCryptoExceptionDescription copied from class:MasterKeyProvider
Iterates throughencryptedDataKeys
and returns the first one which can be successfully decrypted.- Specified by:
decryptDataKey
in classMasterKeyProvider<JceMasterKey>
- Returns:
- a DataKey if one can be decrypted, otherwise returns
null
- Throws:
UnsupportedProviderException
- if theencryptedDataKey
is associated with an unsupported providerCannotUnwrapDataKeyException
- if theencryptedDataKey
cannot be decryptedAwsCryptoException
-