Я обнаружил, что в Java произошло изменение с 1.8.0_161, на которое ссылается JDK-8174756:
Проверка открытого ключа RSA В 8u161 реализация RSA в поставщике SunRsaSign отклонитлюбой открытый ключ RSA с показателем степени, который не находится в допустимом диапазоне, как определено в PKCS # 1 версии 2.2.Это изменение повлияет на соединения JSSE, а также на приложения, построенные на JCE.
Это означает, что модуль не должен быть отрицательным.В этом случае важно построить BigInteger
следующим образом, чтобы быть положительным:
BigInteger(1, modulus)
BigInteger(1, exponent)
После этого изменения он снова работает.