Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
Версии КриптоПро ЭЦП SDKЦитата: Поддерживается тип подписи CAdES BES, CADES-T и CADES-X LONG TYPE 1, что позволяет разнести по времени процессы создания ЭЦП и дополнения до УЭЦП.
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 14.11.2019(UTC) Сообщений: 47
Сказал(а) «Спасибо»: 17 раз Поблагодарили: 1 раз в 1 постах
|
Андрей, спасибо большое! Я, в принципе, нашел способ получить CMS в виде некодированные данные + подпись. Функция SignCades возвращает данные в кодировке Base64. Если я выполняю Код:var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
yield oSigner.propset_Certificate(oCertificate);
yield oSigner.propset_Options(CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN);
yield oSigner.propset_KeyPin(this.sPin);
var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
yield oSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY);
yield oSignedData.propset_Content(btoa("Test message"));
var sSignature = yield oSignedData.SignCades(oSigner, cadesplugin.CADESCOM_CADES_DEFAULT, false);
var sDecodedSignature = atob(sSignature);
то в переменной sDecodedSignature я вижу примерно то, что возвращается КриптоАРМом. Вот только декодированная подпись перестает проверяться с сообщением Цитата:Произошла ошибка при проверке документа. Не удалось декодировать CMS. Ошибка: [Данные ASN1 повреждены]. Код: [0x80093103]
Есть ли надежный способ декодировать то, что вернул плагин функцией CadesSign? Отредактировано пользователем 22 ноября 2019 г. 14:18:33(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
в строке 8 - данные нужно кодировать в base64, т.к. в 7 строке это указано.
Плагин выполняет декодирование в памяти.
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 14.11.2019(UTC) Сообщений: 47
Сказал(а) «Спасибо»: 17 раз Поблагодарили: 1 раз в 1 постах
|
Автор: Андрей Писарев Плагин создает только подписи формата CADES Справочник по ЭЦП SDK - Общее описание Автор: Андрей Писарев в строке 8 - данные нужно кодировать в base64, т.к. в 7 строке это указано.
Плагин выполняет декодирование в памяти.
Да, функция btoa это и делает - кодирует строку в Base64. А можно ли результат подписания раскодировать так, чтобы подпись продолжала проверяться?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
стр.11 - var sDecodedSignature = atob(sSignature); Не нужно декодировать, передавайте в base64. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
Подпись - это ASN.1, это бинарные данные - нельзя работать как с простой строкой.
Что требуется? Показывать то, что было подписано? |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
sSignature - должна проверяться КриптоАРМ-ом.
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 14.11.2019(UTC) Сообщений: 47
Сказал(а) «Спасибо»: 17 раз Поблагодарили: 1 раз в 1 постах
|
В целом, требуется получить CMS в формате, который выдает КриптоАРМ Примерно так, как во вложении digest_(3).txt.sig (3kb) загружен 13 раз(а). - подписанные данные, затем сама подпись
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,719 Сказал «Спасибо»: 500 раз Поблагодарили: 2054 раз в 1594 постах
|
Автор: Aleksei Neverov В целом, требуется получить CMS в формате, который выдает КриптоАРМ Примерно так, как во вложении digest_(3).txt.sig (3kb) загружен 13 раз(а). - подписанные данные, затем сама подпись Через плагин - не получится. Через другие приложения - да. КриптоАРМ:
Цитата: SEQUENCE { 2225 6: OBJECT IDENTIFIER gostDigest (1 2 643 2 2 9) 2233 0: NULL : } 2235 10: SEQUENCE { 2237 6: OBJECT IDENTIFIER gostPublicKey (1 2 643 2 2 19) 2245 0: NULL : } 2247 64: OCTET STRING : 62 49 13 13 F6 BD 44 8F 68 36 72 85 56 AF 83 78 : 91 53 33 BD 8F 6A 4E CB FE 0C A7 A8 73 7F 13 AF : 94 2C C8 0E 5B F7 A9 2F D5 EB 77 32 06 05 9D 55 : A7 1B 6D A4 9E C2 24 5E 4C DF D6 0F 8C EB 1C AC : } : } : }
Плагин:
6212 17: INTEGER 01 F3 49 E0 7A C4 0C D4 80 E8 11 9B F4 C5 BB 9F E2 : } 6231 10: SEQUENCE { 6233 6: OBJECT IDENTIFIER gostDigest (1 2 643 2 2 9) 6241 0: NULL : } 6243 586: [0] { 6247 24: SEQUENCE { 6249 9: OBJECT IDENTIFIER contentType (1 2 840 113549 1 9 3) 6260 11: SET { 6262 9: OBJECT IDENTIFIER data (1 2 840 113549 1 7 1) : } : } 6273 28: SEQUENCE { 6275 9: OBJECT IDENTIFIER signingTime (1 2 840 113549 1 9 5) 6286 15: SET { 6288 13: UTCTime 22/11/2019 09:54:28 GMT : } : } 6303 47: SEQUENCE { 6305 9: OBJECT IDENTIFIER messageDigest (1 2 840 113549 1 9 4) 6316 34: SET { 6318 32: OCTET STRING : B6 FB 8C 2E 05 57 1F 1F 83 A8 B3 B4 70 7A C2 EF : CB AA C1 51 6C E8 35 E6 E2 16 A2 77 DA 49 D2 C6 : } : } 6352 477: SEQUENCE { 6356 11: OBJECT IDENTIFIER : signingCertificateV2 (1 2 840 113549 1 9 16 2 47) 6369 460: SET { 6373 456: SEQUENCE { 6377 452: SEQUENCE { 6381 448: SEQUENCE { 6385 8: SEQUENCE { 6387 6: OBJECT IDENTIFIER gostDigest (1 2 643 2 2 9) : } 6395 32: OCTET STRING : 44 D8 BB E0 39 E0 0D 6F 65 61 21 C9 B5 3B 26 DB : 68 F3 65 A4 62 0B F8 F3 43 45 91 C5 C2 AD 11 7C 6429 400: SEQUENCE { 6433 377: SEQUENCE { 6437 373: [4] { 6441 369: SEQUENCE { 6445 30: SET { 6447 28: SEQUENCE { 6449 9: OBJECT IDENTIFIER : emailAddress (1 2 840 113549 1 9 1) 6460 15: IA5String 'ca@skbkontur.ru' : } : } 6477 24: SET { 6479 22: SEQUENCE { 6481 5: OBJECT IDENTIFIER '1 2 643 100 1' 6488 13: NumericString '1026605606620' : } : } 6503 26: SET { 6505 24: SEQUENCE { 6507 8: OBJECT IDENTIFIER '1 2 643 3 131 1 1' 6517 12: NumericString '006663003127' : } : } 6531 11: SET { 6533 9: SEQUENCE { 6535 3: OBJECT IDENTIFIER : countryName (2 5 4 6) 6540 2: PrintableString 'RU' : } : } 6544 51: SET { 6546 49: SEQUENCE { 6548 3: OBJECT IDENTIFIER : stateOrProvinceName (2 5 4 8) 6553 42: UTF8String : '66 ........................ ..............' : } : } 6597 33: SET { 6599 31: SEQUENCE { 6601 3: OBJECT IDENTIFIER : localityName (2 5 4 7) 6606 24: UTF8String '........................' : } : } 6632 44: SET { 6634 42: SEQUENCE { 6636 3: OBJECT IDENTIFIER : streetAddress (2 5 4 9) 6641 35: UTF8String '..... ...................... ... 56' : } : } 6678 48: SET { 6680 46: SEQUENCE { 6682 3: OBJECT IDENTIFIER : organizationalUnitName (2 5 4 11) 6687 39: UTF8String '............................ ..........' : } : } 6728 41: SET { 6730 39: SEQUENCE { 6732 3: OBJECT IDENTIFIER : organizationName (2 5 4 10) 6737 32: UTF8String '.... ".... "...... ............"' : } : } 6771 41: SET { 6773 39: SEQUENCE { 6775 3: OBJECT IDENTIFIER : commonName (2 5 4 3) 6780 32: UTF8String '.... ".... "...... ............"' : } : } : } : } : } 6814 17: INTEGER : 01 F3 49 E0 7A C4 0C D4 80 E8 11 9B F4 C5 BB 9F : E2 : } : } : } : } : } : } : } 6833 10: SEQUENCE { 6835 6: OBJECT IDENTIFIER gostPublicKey (1 2 643 2 2 19) 6843 0: NULL : } 6845 64: OCTET STRING : 7E 3F 6F 51 D9 DE 33 D4 BA 5E 15 BE C9 F9 4F 02 : 96 42 3B C0 D1 6D 91 5A 0F 04 18 41 31 66 A9 DF : 31 BD BB 35 56 06 39 25 E1 4B 4F 9A 8F 73 71 60 : 34 9A 62 7C 10 4D 14 8D 51 4E 00 F4 EB EF 27 4D : } : } : } : } : }
|
|
1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close