алгоритмы с KDF, закодированные как

я есть следующий код, который преобразует секретный ключ DH в секретный ключ AES. Это раньше работало доOracle JRE 8u161 когда они начали ограничивать создание ключей DH <1024 вjava.security файл. Сейчас получуNoSuchAlgorithmException: Unsupported secret key algorithm AES на последней строке.

PrivateKey privKey = null;
PublicKey pubKey = null;
PublicKey agreement = null;

KeyAgreement keyAgreement = KeyAgreement.getInstance("DH");
keyAgreement.init(privKey);
keyAgreement.doPhase(pubKey, false);
keyAgreement.doPhase(agreement, true);
SecretKey key = keyAgreement.generateSecret("AES");

Я попытался изменить последнюю строку на это. Я могу зашифровать и расшифровать, используя новые ключи, но это не работает со старыми ключами, сгенерированными ранее.

byte[] encodedKey = keyAgreement.generateSecret();
SecretKey key = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES");

Я нашел похожий вопрос такЧто делает метод KeyAgreement.generateSecret (алгоритм String)? но я все еще не знаю, как я могу это исправить, не ломая существующие ключи.

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

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