Реализация AES GCM с тегом аутентификации в Java

Я использую аутентификацию AES GCM в моем проекте Android, и она отлично работает. Но возникают некоторые проблемы с тегом аутентификации при сравнении с тегом генерации openssl API. Пожалуйста, найдите код Java ниже:

SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");
byte[] iv = generateRandomIV();
IvParameterSpec ivspec = new IvParameterSpec(iv);
Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, ivspec);
int outputLength = cipher.getOutputSize(data.length); // Prepare output buffer
byte[] output = new byte[outputLength];
int outputOffset = cipher.update(data, 0, data.length, output, 0);// Produce cipher text
outputOffset += cipher.doFinal(output, outputOffset);

Я использую openssl для того же в iOS и генерирую тег аутентификации, используя код ниже

NSMutableData* tag = [NSMutableData dataWithLength:tagSize];
EVP_CIPHER_CTX_ctrl(&ctx, EVP_CTRL_GCM_GET_TAG, [tag length], [tag mutableBytes])

В Java или Bouncy Castle не удалось получить точный тег аутентификации, который возвращает openssl, и вы можете помочь мне решить эту проблему. Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос