Невозможно проверить зашифрованный закрытый ключJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно проверить зашифрованный закрытый ключ

Сообщение Anonymous »


У меня есть контекст ниже:

Я использую openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365 -nodes для создания файлов ключей и сертификатов.

Затем я использую openssl pkcs8 -in key.pem -out key-encrypted.pem -topk8 для шифрования моего закрытого ключа.

Код работает с key.pem и cert.pem, но имеет проблемы с key-encrypted.pem и сертификат.pem.

Когда он переходит к этой строке для генерации закрытого ключа, отображается ошибка java.security.InvalidKeyException: IOException : DerValue.getBigIntegerInternal, не ожидается 48.

Я загружаю файл сертификата и создаю объект X509Certificate, как показано ниже:

byte[] certData = Files.readAllBytes(certPath); InputStream st = новый ByteArrayInputStream (certData) Фабрика сертификатов certFactory = Фабрика сертификатов.getInstance("X.509"); сертификат = (X509Certificate) certFactory.generateCertificate(st); Затем я загружаю файл своего закрытого ключа, как показано ниже:
List ключи = Files.readAllLines(keyPath); //Я удалил первую и последнюю строку ключевого содержимого: //-----BEGIN PRIVATE KEY----- и -----END PRIVATE KEY----- строки Строковый ключ = String.join("",keys); //Разбираем его в PKCS8 байт [] декодирован = Base64.decodeBase64 (ключ); KeyFactory kf = KeyFactory.getInstance("RSA"); PKCS8EncodedKeySpec ks = новый PKCS8EncodedKeySpec (декодирован); //Теперь я использую kf для генерации закрытого ключа PrivateKey pk = kf.generatePrivate(ks); //Затем я использую следующий код для проверки Подпись s = Signature.getInstance("SHA256withRSA"); s.initSign(ПК); байт [] знак = s.sign(); s.initVerify(certificate.getPublicKey()); s.verify(подпись);
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»