Статус: Участник
Группы: Участники
Зарегистрирован: 12.11.2018(UTC) Сообщений: 23 Сказал(а) «Спасибо»: 6 раз
|
Добрый день! Столкнулся с данной проблемой: при проверке созданной мной подписи на стороннем ресурсе возникает ошибка Код:Ошибка проверки отсоединенной подписи xml Error in function CryptMsgUpdate occured. Object already exists. (0x8009000f)
Аналогичная проблема присутствует в данной теме http://www.cryptopro.ru/...aspx?g=posts&t=15665Суть её в том что, в атрибутивном составе подписи есть дублирующая запись [1.2.643.2.2.9, NULL], из-за которой падает проверка. Код:$$$ Print signature information $$$
Signature #1 (CAdES-BES) verified by OID.1.2.840.113549.1.9.2=MSKS77, STREET="пер. 2-й Лесной, д. 11, Стр. 1", CN=ГКУ «Организатор перевозок», OU=Управление информационных технологий, O=ГКУ «Организатор перевозок», L=Москва, ST=77 г. Москва, C=RU, EMAILADDRESS=ChernyshevMS@transport.mos.ru, OID.1.2.643.3.131.1.1=#120C303037373130363630313439, OID.1.2.643.100.1=#120D31303737373436323531343238
Signer #1 has 3 signed attributes.
Attribute
type : 1.2.840.113549.1.9.4
value: [#4226f0fce6fb86a5c6c77efe1b7811e253dbc60660b07a146085838f13bf2cc1]
Attribute
type : 1.2.840.113549.1.9.3
value: [1.2.840.113549.1.7.1]
Attribute
type : 1.2.840.113549.1.9.16.2.47
value: [[[[[1.2.643.7.1.1.2.2], #4e9af63cd33fcf75f430389e916e07b68937b20fcf6c725bbee69e3801363e2d, [[[4][[[1.2.643.100.1, 1027707013806]], [[1.2.643.3.131.1.1, 007707314029]], [[1.2.840.113549.1.9.1, support@e-moskva.ru]], [[2.5.4.6, RU]], [[2.5.4.8, 77 г. Москва]], [[2.5.4.7, Москва]], [[2.5.4.9, Большой Сухаревский пер., д. 11, стр. 1, оф. 6]], [[2.5.4.10, АО «Электронная Москва»]], [[2.5.4.3, АО «Электронная Москва»]]]], 677036994132206913257123694011436200587]]]]]
$$$ Print counter signature information $$$
Signature #2 (CAdES-T) verified by OID.1.2.840.113549.1.9.2=MSKS77, STREET="пер. 2-й Лесной, д. 11, Стр. 1", CN=ГКУ «Организатор перевозок», OU=Управление информационных технологий, O=ГКУ «Организатор перевозок», L=Москва, ST=77 г. Москва, C=RU, EMAILADDRESS=ChernyshevMS@transport.mos.ru, OID.1.2.643.3.131.1.1=#120C303037373130363630313439, OID.1.2.643.100.1=#120D31303737373436323531343238
Signer #2 has 3 signed attributes.
Attribute
type : 1.2.840.113549.1.9.4
value: [#4226f0fce6fb86a5c6c77efe1b7811e253dbc60660b07a146085838f13bf2cc1]
Attribute
type : 1.2.840.113549.1.9.3
value: [1.2.840.113549.1.7.1]
Attribute
type : 1.2.840.113549.1.9.16.2.47
value: [[[[[1.2.643.7.1.1.2.2], #4e9af63cd33fcf75f430389e916e07b68937b20fcf6c725bbee69e3801363e2d, [[[4][[[1.2.643.100.1, 1027707013806]], [[1.2.643.3.131.1.1, 007707314029]], [[1.2.840.113549.1.9.1, support@e-moskva.ru]], [[2.5.4.6, RU]], [[2.5.4.8, 77 г. Москва]], [[2.5.4.7, Москва]], [[2.5.4.9, Большой Сухаревский пер., д. 11, стр. 1, оф. 6]], [[2.5.4.10, АО «Электронная Москва»]], [[2.5.4.3, АО «Электронная Москва»]]]], 677036994132206913257123694011436200587]]]]]
Signer #2 has 1 unsigned attributes.
Attribute
type : 1.2.840.113549.1.9.16.2.14
value: [[1.2.840.113549.1.7.2, [0][3, [[1.2.643.2.2.9, NULL]], [1.2.840.113549.1.9.16.1.4, [0]#306b02010106072a8503020226043030300c06082a8503070101020205000420d80832fcb28c4f85feffc44a0627cf3475d9f2bf754fe529129c73378f3da293020d318626a792000000000914edb7180f32303231303331383039313131355a300302016402060178449a5b99], [0][[[0]2, 81844514725496667470640, [1.2.643.2.2.3], [[[1.2.643.100.1, 1037700085444]], [[1.2.643.3.131.1.1, 007717107991]], [[2.5.4.9, ул. Сущёвский вал, д. 18]], [[2.5.4.8, 77 г. Москва]], [[2.5.4.7, Москва]], [[1.2.840.113549.1.9.1, info@cryptopro.ru]], [[2.5.4.6, RU]], [[2.5.4.10, ООО "КРИПТО-ПРО"]], [[2.5.4.3, Тестовый УЦ ООО "КРИПТО-ПРО"]]], [200228140200Z, 210528141200Z], [[[1.2.643.100.1, 1007712345678]], [[1.2.643.3.131.1.1, 007712345678]], [[1.2.840.113549.1.9.1, support@cryptopro.ru]], [[2.5.4.6, RU]], [[2.5.4.8, 77 г. Москва]], [[2.5.4.7, Москва]], [[2.5.4.10, ООО "КРИПТО-ПРО"]], [[2.5.4.11, Тестовый УЦ]], [[2.5.4.3, Тестовая служба штампов времени ООО "КРИПТО-ПРО"]], [[2.5.4.9, ул. Сущёвский вал, д. 18]]], [[1.2.643.2.2.19, [1.2.643.2.2.35.1, 1.2.643.2.2.30.1]], #0343000440C22F03A4937ABA2FAE2BAE2CD537C9BAE06964F53B185434D4B14DC6A8E44655A92D262B0CCC7E653B305B58FD77790F71DD7D67A82C87A1DD882882FEEA961A], [3][[2.5.29.15, TRUE, #030206c0], [2.5.29.37, TRUE, #300a06082b06010505070308], [2.5.29.14, #041426fd6e30be3f3a39ac40c70082b38b6867958b04], [2.5.29.35, #3082017c80147a65a2ed4fae6e3010eec403cb5bda56c4dae4b1a1820150a482014c308201483118301606052a85036401120d31303337373030303835343434311a301806082a85030381030101120c3030373731373130373939313139303706035504091e300443043b002e0020042104430449045104320441043a04380439002004320430043b002c00200434002e0020003100383121301f06035504081e180037003700200433002e0020041c043e0441043a043204303115301306035504071e0c041c043e0441043a043204303120301e06092a864886f70d0109011611696e666f4063727970746f70726f2e7275310b300906035504061302525531293027060355040a1e20041e041e041e00200022041a04200418041f0422041e002d041f0420041e00223141303f06035504031e380422043504410442043e0432044b04390020042304260020041e041e041e00200022041a04200418041f0422041e002d041f0420041e002282104e98f3f34f95449d4d8b1c52ac44bc27], [2.5.29.31, #30533051a04fa04d864b687474703a2f2f7777772e63727970746f70726f2e72752f72612f6364702f376136356132656434666165366533303130656563343033636235626461353663346461653462312e63726c], [1.3.6.1.5.5.7.1.1, #3081a1303406082b060105050730018628687474703a2f2f7777772e63727970746f70726f2e72752f6f6373706e63322f6f6373702e737266303206082b060105050730018626687474703a2f2f7777772e63727970746f70726f2e72752f6f637370322f6f6373702e737266303506082b060105050730028629687474703a2f2f7777772e63727970746f70726f2e72752f72612f6364702f6361636572332e637274], [2.5.29.16, #3022800f32303230303232383134303230305a810f32303231303532383134303230305a], [2.5.29.32, #3014300806062a8503647101300806062a8503647102], [1.2.643.100.111, #0c29d09ad180d0b8d0bfd182d0bed09fd180d0be204353502028d0b2d0b5d180d181d0b8d18f20332e3629], [1.2.643.100.112, #308201240c2b22d09ad180d0b8d0bfd182d0bed09fd180d0be20435350222028d0b2d0b5d180d181d0b8d18f20332e36290c5322d0a3d0b4d0bed181d182d0bed0b2d0b5d180d18fd18ed189d0b8d0b920d186d0b5d0bdd182d1802022d09ad180d0b8d0bfd182d0bed09fd180d0be20d0a3d0a62220d0b2d0b5d180d181d0b8d0b820312e350c4fd0a1d0b5d180d182d0b8d184d0b8d0bad0b0d18220d181d0bed0bed182d0b2d0b5d182d181d182d0b2d0b8d18f20e2849620d0a1d0a42f3132342d3237333820d0bed1822030312e30372e323031350c4fd0a1d0b5d180d182d0b8d184d0b8d0bad0b0d18220d181d0bed0bed182d0b2d0b5d182d181d182d0b2d0b8d18f20e2849620d0a1d0a42f3132382d3237363820d0bed1822033312e31322e32303135]]], [1.2.643.2.2.3], #03410015A0D0C3399E9A5419CA3983AD25C341EDECAB785F665754A286725397B7329F03A8C214468348964D7E55108E5C6DB7EED488B9471D18836D8E5141C4517FC7], [[1, [[[[1.2.643.100.1, 1037700085444]], [[1.2.643.3.131.1.1, 007717107991]], [[2.5.4.9, ул. Сущёвский вал, д. 18]], [[2.5.4.8, 77 г. Москва]], [[2.5.4.7, Москва]], [[1.2.840.113549.1.9.1, info@cryptopro.ru]], [[2.5.4.6, RU]], [[2.5.4.10, ООО "КРИПТО-ПРО"]], [[2.5.4.3, Тестовый УЦ ООО "КРИПТО-ПРО"]]], 81844514725496667470640], [1.2.643.2.2.9, NULL], [0][[1.2.840.113549.1.9.3, [1.2.840.113549.1.9.16.1.4]], [1.2.840.113549.1.9.4, [#35c207c5d62c230b629ff374ba6fea12e631d897b70aa04ce66bfc5d2febe24a]], [1.2.840.113549.1.9.16.2.12, [[[[#0f6cac8415b5d421fd529c201bc135f36a69af56, [[[4][[[1.2.643.100.1, 1037700085444]], [[1.2.643.3.131.1.1, 007717107991]], [[2.5.4.9, ул. Сущёвский вал, д. 18]], [[2.5.4.8, 77 г. Москва]], [[2.5.4.7, Москва]], [[1.2.840.113549.1.9.1, info@cryptopro.ru]], [[2.5.4.6, RU]], [[2.5.4.10, ООО "КРИПТО-ПРО"]], [[2.5.4.3, Тестовый УЦ ООО "КРИПТО-ПРО"]]]], 81844514725496667470640]]]]]], [1.2.840.113549.1.9.16.2.47, [[[[[1.2.643.2.2.9], #6bb4152cbd01b08b3d82ca2cefa333e0d9a0ecbc7f68a608908ce7d3583b3d67, [[[4][[[1.2.643.100.1, 1037700085444]], [[1.2.643.3.131.1.1, 007717107991]], [[2.5.4.9, ул. Сущёвский вал, д. 18]], [[2.5.4.8, 77 г. Москва]], [[2.5.4.7, Москва]], [[1.2.840.113549.1.9.1, info@cryptopro.ru]], [[2.5.4.6, RU]], [[2.5.4.10, ООО "КРИПТО-ПРО"]], [[2.5.4.3, Тестовый УЦ ООО "КРИПТО-ПРО"]]]], 81844514725496667470640]]]]]]], [1.2.643.2.2.19, NULL], #f2574e003192435fdb0ba66add685bd45f4637d25b90fc42f6240014792baacf7246913bfcdd33fa8359d009267faee44f80586a624132e3ff8c9612d2c931e0]]]]]
$$$ Print counter signature information $$$
Подпись создаю примером из состава samples-source SignByJCSPExample_2012_256 Код: /**
* Создание CAdES-подписи с двумя подписантами: CAdES-BES и
* CAdES-X Long Type 1.
*
* @param config Конфигурация подписи.
* @param outFileName Файл для сохранения подписи.
* @return готовую подпись.
* @throws Exception
*/
public static InputStream createMixedSignatureWith2Signers(IConfiguration
config, String outFileName) throws Exception {
CAdESSignature cadesSignature = new CAdESSignature(config.detached());
cadesSignature.setCertificateStore(config.getCertificateStore());
cadesSignature.setCRLStore(config.getCRLStore());
// Создаем подписанта CAdES-BES.
cadesSignature.addSigner(config.getProviderName(),
config.getDigestOid(),
config.getPublicKeyOid(),
config.getPrivateKey(),
config.getChain(),
CAdESType.CAdES_BES,
null,
false,
config.getSignedAttributes(),
config.getUnsignedAttributes(),
config.getCRLs());
// Создаем подписанта CAdES-X Long Type 1.
cadesSignature.addSigner(config.getProviderName(),
config.getDigestOid(),
config.getPublicKeyOid(),
config.getPrivateKey(),
config.getChain(),
CAdESType.CAdES_X_Long_Type_1,
config.getTSAAddress(),
false,
null,
null,
config.getCRLs());
// Сохраним подпись либо в файл, либо в массив.
OutputStream outSignatureStream = config.useStream()
? new FileOutputStream(outFileName) : new ByteArrayOutputStream();
cadesSignature.open(outSignatureStream);
InputStream dataStream = config.getDataStream();
cadesSignatureUpdate(cadesSignature, dataStream); // хеш
// Завершаем создание подписи с двумя подписантами.
cadesSignature.close();
dataStream.close();
outSignatureStream.close();
CAdESSigner[] signers = cadesSignature.getCAdESSignerInfos();
for (int i = 0; i < signers.length; i++) {
CAdESSigner signer = signers[i];
// Только ему могут подаваться атрибуты (см. выше).
if (signer.getSignatureType().equals(CAdESType.CAdES_BES)) {
AttributeTable cdsAttrs = signer.getSignerSignedAttributes();
if (config.getSignedAttributes() != null) {
if (config.getSignedAttributes().size() != cdsAttrs.size()) {
throw new Exception("Invalid count of signed attributes in " +
"CAdES signature # " + i);
} // if
} // if
else {
if (cdsAttrs != null) {
throw new Exception("Count of signed attributes must be null " +
"in CAdES signature # " + i);
} // if
} // else
cdsAttrs = signer.getSignerUnsignedAttributes();
if (config.getUnsignedAttributes() != null) {
if (config.getUnsignedAttributes().size() != cdsAttrs.size()) {
throw new Exception("Invalid count of unsigned attributes in " +
"CAdES signature # " + i);
} // if
} // if
else {
if (cdsAttrs != null) {
throw new Exception("Count of unsigned attributes must be null " +
"in CAdES signature # " + i);
} // if
} // else
} // if
} // for
InputStream signatureStream;
// Если это массив, сохраним и снова прочтем.
if (!config.useStream() && outSignatureStream instanceof ByteArrayOutputStream) {
byte[] cadesCms = ((ByteArrayOutputStream)outSignatureStream).toByteArray();
if (outFileName != null) {
Array.writeFile(outFileName, cadesCms);
} // if
// Подпись.
signatureStream = new ByteArrayInputStream(cadesCms);
} // if
else {
// Читаем подпись.
signatureStream = new FileInputStream(outFileName);
} // else
return signatureStream;
}
Хочу попробовать решить данную проблему удалив одну из дублирующихся записей, но метод, который должен вернуть информацию о подписях, возвращает пустой список. На скриншоте в режиме дебага [img]http://[/img] 2021-03-18_13-13-34.png (271kb) загружен 3 раз(а). 2021-03-18_13-13-04.png (299kb) загружен 2 раз(а).показаны дубли атрибутов. Подскажите, как удалить дублирующийся атрибут? Или как решить проблему другим способом
|