Я создал исполняемый файл JAR, у которого есть класс с таким кодом:
static KeysetHandle keysetHandle = null;
public String encrypt(String plainText){
Config.register(AeadConfig.TINK_1_1_0);
// GENERATE key
// key generated using tink library
keysetHandle = KeysetHandle.generateNew(AeadKeyTemplates.AES256_GCM);
}
public String decrypt(String cipherText){
//using the key generated during encryption to decrypt
Aead aeadDecryption = AeadFactory.getPrimitive(keysetHandle);
}
В другом Java-приложении я импортировал этот JAR-файл как внешний JAR-файл и пытаюсь запустить следующие методы:
import core.Crypto;
public class Sample {
public static void main(String[] args) {
// TODO Auto-generated method stub
Crypto crypto = new Crypto();
System.out.println(crypto.encrypt("sampleText"));
System.out.println(crypto.decrypt("XXX"));
}
}
Функция шифрования работает, как и ожидалось, но расшифровка возвращает NullPointerException
, поскольку keysetHandle
равно нулю. Как получить обновленное значение для keysetHandle
?