Статус: Новичок
Группы: Участники
Зарегистрирован: 23.05.2023(UTC) Сообщений: 1
|
Коллеги, приветствую! Возникла зада подписи JSON файла. Раньше делали это с помощью утилиты cryptcp с сохранением результата файла. Параметры вызова были такие: "cryptcp -sign -thumbprint " + thumbprint + " -detached " + fileName Сейчас возникла необходимость подписывать своим сервисом на Java. Для подписи использую JCSP. Подпись формируется, но по размеру она в несколько раз меньше чем та, которую делала cryptcp. Видимо в нее не включаются атрибуты сертификата, такие как ИНН, ОГРН и т.д. А в моем случае эти атрибуты нужны и, как я понимаю, тоже должны быть подписаны. Подскажите пожалуйста, как добавить эти атрибуты в подпись. подписанта добавляю так: Код:
cadesSignature.addSigner(JCSP.PROVIDER_NAME
, AlgorithmUtility.keyAlgToDigestOid(key.getAlgorithm())
, cert.getSigAlgName()//JCP.GOST_PARAMS_EXC_2012_512_KEY_OID //AlgorithmUtility.keyAlgToKeyAlgorithmOid(certificateBank.getPublicKey().getAlgorithm())
, key
, chain
, CAdESType.CAdES_BES
, null
, true
, generateAttr()
, generateAttr());
для эксперимента создаю атрибуты таким образом: Код:
private AttributeTable generateAttr() {
Hashtable<ASN1ObjectIdentifier, org.bouncycastle.asn1.cms.Attribute> attrMap = new Hashtable<>();
List<String> hardcodedOids = new ArrayList<>();
hardcodedOids.add("2.5.4.3"); //CN
hardcodedOids.add("2.5.4.4"); //SN
hardcodedOids.add("2.23.42.2.1");//G
hardcodedOids.add("2.5.4.12"); //
hardcodedOids.add("1.2.643.100.4");
hardcodedOids.add("1.2.643.100.1");
hardcodedOids.add("1.2.840.113549.1.9.2");
hardcodedOids.add("2.5.4.10"); //O
hardcodedOids.add("2.5.4.11"); //OU
// hardcodedOids.add("L");
// hardcodedOids.add("S");
hardcodedOids.add("2.5.4.6");// hardcodedOids.add("C");
hardcodedOids.add("1.2.840.113549.1.9.1"); //E
for (String s : hardcodedOids) {
DERBMPString at = new DERBMPString(s);
Attribute attr = new Attribute(new ASN1ObjectIdentifier(s), new DERSet(at));
attrMap.put(attr.getAttrType(), attr);
}
return new AttributeTable(attrMap);
}
Но, по сути, все реквизиты Юрлица уже есть в сертификате. Было бы логично каким-то образом указать какие атрибуты добавить в подпись, например перечислив OIDs. Видимо что-то делаю не так. Уже несколько дней мучаюсь с этой темой.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Здравствуйте. Приведите пример подписи, что и как должно быть. Размер подписи обычно отличается, если в подпись включена/не выключена цепочка сертификатов. В случае CAdES.jar цепочка по умолчанию не включается в подпись при создании CADES-BES/T. Добавить можно с помощью параметра самого длинного метода addSigner (есть версия с параметром addCertificateChain, его надо задать true), или с помощью setCertificateStore у CAdESSignature. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close