Статус: Участник
Группы: Участники
Зарегистрирован: 22.05.2024(UTC) Сообщений: 10
Сказал(а) «Спасибо»: 3 раз
|
Добрый день!
Необходимо в подпись добавить
cms.signerInfos.elements[0].sid.set_subjectKeyIdentifier();
SubjectKeyIdentifier subjectKeyIdentifier = new SubjectKeyIdentifier(); там есть 3 конструктора, не понятно что необходимо в конструкторы класть
на просторах интернета нашла такую инициализацию, но этот класс не из package ru.CryptoPro.JCP.ASN.CertificateExtensions; PublicKey publicKey = ...; SubjectKeyIdentifier subjectKeyIdentifier = new SubjectKeyIdentifier(publicKey);
на руках имею сертификат, String digestOid, String signOid, sign.
Вопрос как мне получить subjectKeyIdentifier?
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 16.11.2020(UTC) Сообщений: 34
Сказал(а) «Спасибо»: 14 раз Поблагодарили: 1 раз в 1 постах
|
Добрый. SubjectKeyIdentifier - тот, который org.bouncycastle.asn1.x509.SubjectKeyIdentifier? Тогда можно из сертификата излечь org.bouncycastle.asn1.x509.Extensions и потом получить экземпляр SubjectKeyIdentifier через метод SubjectKeyIdentifier.fromExtensions(extensions).
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.05.2024(UTC) Сообщений: 10
Сказал(а) «Спасибо»: 3 раз
|
нет который package ru.CryptoPro.JCP.ASN.CertificateExtensions
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 22.05.2024(UTC) Сообщений: 10
Сказал(а) «Спасибо»: 3 раз
|
Не понятно что класть в byte[], т.е как получить этот массив байт из сертификата cms.signerInfos.elements[0].sid.set_subjectKeyIdentifier (byte[]) Есть еще такой вызов метода KeyIdentifier keyIdentifier = ((X509CertImpl) cert).getSubjectKeyId(); , но как его сманить в subjectKeyIdentifier не понятно Отредактировано пользователем 19 июня 2024 г. 0:11:55(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,064  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 740 раз в 698 постах
|
Здравствуйте. SubjectKeyIdentifier - расширение с идентификатором открытого ключа. Пример кода: Код:
X509Certificate cert = ...
TBSCertificate tbsCertificate = new TBSCertificate();
Asn1BerDecodeBuffer buf = new Asn1BerDecodeBuffer(cert.getTBSCertificate());
tbsCertificate.decode(buf);
OID SubjectKeyIdentifierOid = new OID("2.5.29.14");
Asn1ObjectIdentifier SubjectKeyIdentifierOId = new Asn1ObjectIdentifier(SubjectKeyIdentifierOid.value);
int len = tbsCertificate.extensions.elements.length;
SignerIdentifier sid = null;
for (int i = 0; i < len; i++) {
if (tbsCertificate.extensions.elements[i].extnID.equals(SubjectKeyIdentifierOId)) {
Asn1OctetString extnValue = tbsCertificate.extensions.elements[i].extnValue;
sid = new SignerIdentifier();
sid.set_subjectKeyIdentifier(extnValue);
}
}
|
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close