Пытаюсь вытащить X509Certificate из файла подписи .sig чтобы эту подпись проверить. Как корректно это сделать?
Пытался вот так:
InputStream inStream = new ByteArrayInputStream(bytesSignature);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate certificate = (X509Certificate)cf.generateCertificate(inStream);
но на этапе генерации сертификата вылетает с ошибкой "Unable to initialize, java.io.IOException: Short read of DER length"
Что я делаю не так?
У меня получилось получить сертификат, но я не до конца понимаю что я сделал.
Вот код:
final Asn1BerDecodeBuffer asnBuf = new Asn1BerDecodeBuffer(bytesSignature);
Asn1BerEncodeBuffer encBuf = new Asn1BerEncodeBuffer();
final ContentInfo all = new ContentInfo();
try {
all.decode(asnBuf);
} catch (Asn1Exception e) {
throw new CertificateException();
}
final SignedData cms = (SignedData) all.content;
final Certificate[] certificates = new Certificate[cms.certificates.elements.length];
for (int i = 0; i < (cms.certificates.elements.length); i++) {
try {
cms.certificates.elements[i].encode(encBuf);
} catch (Asn1Exception e) {
throw new CertificateException();
}
final CertificateFactory cf = CertificateFactory.getInstance("X.509");
final Certificate cert = cf.generateCertificate(encBuf.getInputStream());
certificates[i] = cert;
}
if (certificates.length > 0 ) {
return (X509Certificate) certificates[0];
} else throw new CertificateException("Не удалось получить сертификат из подписи.");
Виртуальный выделенный сервер (VDS) становится отличным выбором
При создании проекта, просто ничего не происходитВ отладке netbeans вываливаются сообщения, но разобрать я их не могу
Мы сохраняем данные в клевой БД RethinkDBПроблема возникла с извлечением числовых значений типа Double