Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 5.0
»
Добавление расширения при создании запроса на сертификат средствами JCSP
Статус: Новичок
Группы: Участники
Зарегистрирован: 17.04.2022(UTC) Сообщений: 3  Откуда: Новосибирск Сказал(а) «Спасибо»: 1 раз
|
Добрый день! Формирую запрос на сертификат средствами JCSP. Не нашёл в документации описания того, как формируется массив байтов для параметра Asn1OctetString в конструкторе Extension. Нашёл класс ru.CryptoPro.reprov.x509.Extension, нужная реализация которого помогла создать необходимый массив байтов. Но несмотря на то, что декодер https://lapo.it/asn1js/ показывает, что нужное расширение содержится в запросе на сертификат, УЦ отвергает сертификат с сообщением "Ошибка при обработке запроса Данные ASN1 повреждены. 0x80093103 (ASN: 259 CRYPT_E_ASN1_CORRUPT)". При добавлении расширения PrivateKeyUsageExtension таким образом, сертификат выписывается. Корректен ли такой способ добавления расширения? Код:GostCertificateRequest request = new GostCertificateRequest(JCSP.PROVIDER_NAME);
request.setKeyUsage(KeyUsage.SIGN_DEFAULT);
request.setPublicKeyInfo(keyPair.getPublic());
request.setSubjectInfo(new X500Name("CN=Иванов Иван Иванович,OU=IT отдел,O=ООО Рога и Копыта,C=RU,L=Новосибирск,ST=Новосибирская область,E=inavov@mail.ru,INN=1234567890,СНИЛС=12345678901,ОГРН=1234567890123"));
GeneralNames generalNames = new GeneralNames();
Asn1UTF8String surnameAsn1String = new Asn1UTF8String("Сидоров Василий Петрович");
Asn1BerEncodeBuffer surnameAsn1Buffer = new Asn1BerEncodeBuffer();
surnameAsn1String.encode(surnameAsn1Buffer);
OtherName surname = new OtherName(new ObjectIdentifier("2.5.4.4"), surnameAsn1Buffer.getMsgCopy());
SubjectAlternativeNameExtension subjectAlternativeNameExtension = new SubjectAlternativeNameExtension(generalNames);
ByteArrayOutputStream subjectAlternativeNameExtensionStream = new ByteArrayOutputStream();
subjectAlternativeNameExtension.encode(subjectAlternativeNameExtensionStream);
request.addExtension(new Extension(
new Asn1ObjectIdentifier(new int[]{2, 5, 29, 17}),
new Asn1OctetString(subjectAlternativeNameExtensionStream.toByteArray())));
request.encodeAndSign(keyPair.getPrivate(), JCP.GOST_SIGN_2012_256_NAME);
|
|
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 5.0
»
Добавление расширения при создании запроса на сертификат средствами JCSP
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close