public final class AndroidKeystoreAesGcm extends Object implements Aead
Aead that does AES-GCM encryption with a key stored in Android Keystore.
This class requires Android M (API level 23) or newer.
| Constructor and Description |
|---|
AndroidKeystoreAesGcm(String keyId) |
| Modifier and Type | Method and Description |
|---|---|
byte[] |
decrypt(byte[] ciphertext,
byte[] associatedData)
Decrypts
ciphertext with associatedData as associated authenticated data. |
byte[] |
encrypt(byte[] plaintext,
byte[] associatedData)
Encrypts
plaintext with associatedData as associated authenticated data. |
public AndroidKeystoreAesGcm(String keyId) throws GeneralSecurityException, IOException
GeneralSecurityExceptionIOExceptionpublic byte[] encrypt(byte[] plaintext,
byte[] associatedData)
throws GeneralSecurityException
Aeadplaintext with associatedData as associated authenticated data.
The resulting ciphertext allows for checking authenticity and integrity of associated data
(associatedData), but does not guarantee its secrecy.encrypt in interface Aeadplaintext - the plaintext to be encrypted. It must be non-null, but can also
be an empty (zero-length) byte arrayassociatedData - associated data to be authenticated, but not encrypted. Associated data
is optional, so this parameter can be null. In this case the null value
is equivalent to an empty (zero-length) byte array.
For successful decryption the same associatedData must be provided
along with the ciphertext.GeneralSecurityExceptionpublic byte[] decrypt(byte[] ciphertext,
byte[] associatedData)
throws GeneralSecurityException
Aeadciphertext with associatedData as associated authenticated data. The
decryption verifies the authenticity and integrity of the associated data, but there are no
guarantees wrt. secrecy of that data.decrypt in interface Aeadciphertext - the plaintext to be decrypted. It must be non-null.associatedData - associated data to be authenticated. For successful decryption it must be
the same as associatedData used during encryption. Can be null, which is equivalent to an
empty (zero-length) byte array.GeneralSecurityException - if decryption fails. Decryption must fail if ciphertext is not correctly authenticated for the given associatedData.