Я шифрую некоторый текст и пытаюсь расшифровать его, однако он не может расшифровать, когда я использую другой AeadConfig.register () для расшифровки, чем для шифрования.Мне интересно, как решить эту проблему, потому что я буду шифровать одно действие и расшифровывать другое.Я упростил его ради приведенного ниже примера.
Это работает, если я просто передаю aead в качестве параметра, но я не уверен, что это то, что я должен делать.
private fun deletableEncrypt() {
AeadConfig.register()
val keysetHandle: KeysetHandle = KeysetHandle.generateNew(AeadKeyTemplates.AES128_GCM)
val aead: Aead = AeadFactory.getPrimitive(keysetHandle)
val plainText = "Hello world"
val aad = "masterpassword"
val cipherText = aead.encrypt(plainText.toByteArray(), aad.toByteArray())
Log.d(TAG, cipherText.toString())
dbHelper.insertNewRow("text", cipherText,
"moreText")
}
private fun deleteableDecrypt() {
AeadConfig.register()
val keysetHandle: KeysetHandle = KeysetHandle.generateNew(AeadKeyTemplates.AES128_GCM)
val aead: Aead = AeadFactory.getPrimitive(keysetHandle)
val aad = "masterpassword"
val cipherText = dbHelper.getAllEncrypts()[0]
val decrypted = aead.decrypt(cipherText, aad.toByteArray())
}
Прямо сейчас дешифрование вызывает исключение.Я думаю, что это вызвано aeadConfig, но я не знаю, как зарегистрировать его только один раз, поэтому, как только это будет решено, оно больше не вызовет исключения.