Цифровая подпись: пример кода для проверки и извлечения сертификационной информации - PullRequest
5 голосов
/ 27 мая 2011

Я использую сторонний инструмент для проверки подписи и получения сведений о сертификате (например, серийный номер, CA и т. Д.) Из подписи.Проблема этой утилиты в том, что она лицензирована и работает только на определенных машинах.

Могу ли я проверить подпись на данных с помощью простого кода Java или .net? (Вместо использования платного приложения).У меня нет личного ключа для извлечения информации о сертификате из подписанных данных.

Или если кто-то может предложить образец кода в java или .net для извлечения деталей сертификата, если у меня есть файл pfx.Из из подписанных данных.

Данные подписаны с асимметричным шифрованием.

Ответы [ 2 ]

5 голосов
/ 08 июня 2011

Чтобы извлечь детали из сертификата:

  1. Создайте строку, в которой хранятся данные сертификата.Просто убедитесь, что у него -----BEGIN CERTIFICATE----- в начале и -----END CERTIFICATE----- в конце.
  2. Теперь используйте следующий код в Java для извлечения деталей сертификата.

</p> <pre><code>InputStream inStream = new ByteArrayInputStream(certString.toString().getBytes("UTF-8")); BufferedInputStream bis = new BufferedInputStream(inStream); CertificateFactory cf = CertificateFactory.getInstance("X.509"); Certificate cert = cf.generateCertificate(bis); X509Certificate xCert = (X509Certificate)cert; System.out.println("Certificate Type: "+cert.getType()); System.out.println("Public Key: \n"+cert.getPublicKey()); try{ System.out.println("Signature Algorithm"+xCert.getSigAlgName()); System.out.println("IssuerDN : "+xCert.getIssuerDN()); System.out.println("Serial Number : "+xCert.getSerialNumber()); System.out.println("SubjectDN : "+xCert.getSubjectDN()); }catch(Exception exp){ : }

1 голос
/ 17 июня 2011

Если у вас есть файл PFX, то он может содержать сертификат открытого ключа, который потребуется для проверки подписи.

В качестве альтернативы, если ваша подпись является подписью PKCS # 7, тогда сама подпись будет содержать данные, подпись и сертификат. Предполагая, что PKCS # 7 не отсоединен.

Вы должны спросить своего подписавшего, как он передает свой сертификат для проверки.

...