У меня есть ключ (скажем) "thisist0psecret", который я хочу использовать в качестве симметричного ключа шифрования / дешифрования с библиотекой Google Tink . Я сбит с толку, что я не могу сделать эту простую вещь. Я могу сгенерировать новых ключей (используя различные шаблоны AES128_GCM и т. Д.), Сериализовать их, а затем прочитать их обратно с помощью KeysetReader. Но, на всю жизнь, я не могу понять, как создать симметричный ключ с определенными байтами ключа, которые я указываю .
Я могу сделать следующее, например, с Tink:
KeysetHandle ksh = KeysetHandle.generateNew(AeadKeyTemplates.AES128_GCM);
Aead aead = AeadFactory.getPrimitive(ksh);
String pt = "hello, world!";
byte[] encbytes = aead.encrypt(pt.getBytes(), null);
byte[] decbytes = aead.decrypt(encbytes, null);
String orig = new String(decbytes);
assert(pt.equals(orig));
Но я хочу установить в строке симметричного ключа набор байтов, который я указываю, например "thisist0psecret", а затем зашифровать этот ключ с помощью открытого ключа пользователя, который будет выполнять расшифровку.
Какие-нибудь эксперты по Google Tink, которые могут пролить свет на это?