Невозможно проверить зашифрованный закрытый ключ ⇐ JAVA
Невозможно проверить зашифрованный закрытый ключ
У меня есть контекст ниже:
Я использую 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(подпись);
У меня есть контекст ниже:
Я использую 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(подпись);
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как извлечь зашифрованный ключ и зашифрованный контент из объекта CMS EnvelopedData в Java?
Anonymous » » в форуме JAVA - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как извлечь зашифрованный ключ и зашифрованный контент из объекта CMS EnvelopedData в Java?
Anonymous » » в форуме JAVA - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-
-
-
У меня есть зашифрованный код на C#. У меня есть ключ, как расшифровать? [закрыто]
Anonymous » » в форуме C# - 0 Ответы
- 39 Просмотры
-
Последнее сообщение Anonymous
-