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