Я пытаюсь подписать токен JWT, используя закрытый ключ RSA256 с парольной фразой.
Вот код, который я использую для генерации парольной фразы:
byte[] apiKeySecretBytes = DatatypeConverter.parseBase64Binary(key);
Key signingKey = new SecretKeySpec(apiKeySecretBytes, signatureAlgorithm.getJcaName());
JwtBuilder builder = Jwts.builder().setIssuedAt(now).signWith(SignatureAlgorithm.RS256, signingKey);
LOGGER.info(builder.compact());
I ' Получается следующая ошибка:
java .lang.IllegalArgumentException: подписи RSA должны вычисляться с использованием RSA PrivateKey. Указанный ключ типа javax.crypto.spe c .SecretKeySpe c не является RSA PrivateKey.
Ошибка подразумевает, что с закрытым ключом что-то недопустимо, однако я проверил он использует JavaScript и, похоже, работает нормально (что позволяет мне предоставить passPhrase). Однако с Java у меня возникают проблемы с поиском документации по предоставлению passPhrase.