如何为iOS和Android安装AES-GCM

如何为iOS和Android安装AES-GCM,android,ios,encryption,aes-gcm,Android,Ios,Encryption,Aes Gcm,我想用身份验证标签创建AES加密和解密GCM模式。 这是我的iOS版本源代码: CCCryptorStatus ccStatus = kCCSuccess; NSData *iv = [hexIV dataUsingEncoding:NSUTF8StringEncoding]; NSData *symmetricKey = [hexIV dataUsingEncoding:NSUTF8StringEncoding]; NSMutableData *dataOut = [NSMutableDat

我想用身份验证标签创建AES加密和解密GCM模式。 这是我的iOS版本源代码:

CCCryptorStatus ccStatus = kCCSuccess;
NSData *iv = [hexIV dataUsingEncoding:NSUTF8StringEncoding];
NSData *symmetricKey = [hexIV dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData  *dataOut = [NSMutableData dataWithLength:self.length];
NSMutableData  *tag = [NSMutableData dataWithLength:kCCBlockSizeAES128];
size_t          tagLength = kCCBlockSizeAES128;

ccStatus = CCCryptorGCM(kCCEncrypt,
                        kCCAlgorithmAES,
                        symmetricKey.bytes,
                        kCCKeySizeAES256,
                        iv.bytes,
                        iv.length,
                        aad.bytes,
                        aad.length,
                        self.bytes,
                        self.length,
                        dataOut.mutableBytes,
                        tag.bytes,
                        &tagLength);

if (ccStatus == kCCSuccess) {
    return [NSDictionary dictionaryWithObjectsAndKeys:dataOut,@"cyphertext",tag,@"tag",iv,@"iv",nil];
} else {
    return nil;
}
我想将此代码更改为Android版本,在Android源代码下面:

byte[] aKey = hexStringToByteArray(hexKey);
byte[] aIV = hexStringToByteArray(hexIV);
Key key = new SecretKeySpec(aKey, "AES");
Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding");
cipher.init(Cipher.ENCRYPT_MODE, key, new GCMParameterSpec(16 * Byte.SIZE, aIV));
cipher.updateAAD(aad);
byte[] encrypted = cipher.doFinal(aKey);
如何将身份验证标签添加到我的源代码中