| ||||
| ||||
Простите за наивный вопрос :) В WSH 5.6 есть возможность подписывать скрипты при помощи объекта Scripting.Signer (передаются имя фаила, название сертификата и его Store). В результате к исходному скрипту приписывается нечто в base64 следующего вида: Wscript.echo "Hello!" ’’ SIG ’’ Begin signature block ’’ SIG ’’ MIIEUwYJKoZIhvcNAQcCoIIERDCCBEACAQExDjAMBggq ’’ SIG ’’ hkiG9w0CBQUAMGYGCisGAQQBgjcCAQSgWDBWMDIGCisG ’’ SIG ’’ AQQBgjcCAR4wJAIBAQQQTvApFpkntU2P5azhDxfrqwIB ’’ SIG ’’ AAIBAAIBAAIBAAIBADAgMAwGCCqGSIb3DQIFBQAEEA0y ’’ SIG ’’ GO5792geQ5l5mDsGgpagggJ3MIICczCCAeCgAwIBAgIQ ’’ SIG ’’ r5J6f/yhJYJGiuDaLvaT5jAJBgUrDgMCHQUAMBsxGTAX ’’ SIG ’’ BgNVBAMTEFRlc3QgQ2VydGlmaWNhdGUwHhcNMDQxMjMx ’’ SIG ’’ MjAwMDAwWhcNMDUxMjMxMjAwMDAwWjAbMRkwFwYDVQQD ’’ SIG ’’ ExBUZXN0IENlcnRpZmljYXRlMIGfMA0GCSqGSIb3DQEB ’’ SIG ’’ AQUAA4GNADCBiQKBgQDVUkT4X6wU8vpmiTln1E1en4t6 ’’ SIG ’’ 5x2DqiA9D8286tzDHdktFQAV1X5Sooxj9Xj88HzdNFDq ’’ SIG ’’ S93t3hRluMYPBF4xPA+fF14otCJYdeA+MlaVDfOzufHj ’’ SIG ’’ OoPJsjbdLHSScqRTdG4QyIjUhk257HxRmNEREto/XKMm ’’ SIG ’’ MjBCt6RwjjJDKwIDAQABo4G/MIG8MAwGA1UdEwEB/wQC ’’ SIG ’’ MAAwIAYDVR0EAQH/BBYwFDAOMAwGCisGAQQBgjcCARYD ’’ SIG ’’ AgeAMCcGCisGAQQBgjcCAQoEGTAXoBWAE2h0dHA6Ly93 ’’ SIG ’’ d3cubmFtZS5jb20wEwYDVR0lBAwwCgYIKwYBBQUHAwMw ’’ SIG ’’ TAYDVR0BBEUwQ4AQcXrc0m22UnvUYgSumDpP3KEdMBsx ’’ SIG ’’ GTAXBgNVBAMTEFRlc3QgQ2VydGlmaWNhdGWCEK+Sen/8 ’’ SIG ’’ oSWCRorg2i72k+YwCQYFKw4DAh0FAAOBgQCAKcBmLylx ’’ SIG ’’ YH4bcB0cDP8Lf55EpSjaHKQmNDEIhLPIXpgwspggd4oJ ’’ SIG ’’ ZS+hFUjM00pmKc5IeRygIYrOubBWMIN1/DFWvV2/8hqO ’’ SIG ’’ fiSuGi3OIwytFMVigsNYY54w+Nq3Jga/GqD9SlQeo/B9 ’’ SIG ’’ walwpR6MugNmztCmGPEc4dQ7R9/K/jGCAUYwggFCAgEB ’’ SIG ’’ MC8wGzEZMBcGA1UEAxMQVGVzdCBDZXJ0aWZpY2F0ZQIQ ’’ SIG ’’ r5J6f/yhJYJGiuDaLvaT5jAMBggqhkiG9w0CBQUAoGww ’’ SIG ’’ EAYKKwYBBAGCNwIBDDECMAAwGQYJKoZIhvcNAQkDMQwG ’’ SIG ’’ CisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisG ’’ SIG ’’ AQQBgjcCARYwHwYJKoZIhvcNAQkEMRIEEC4cJ8hJ7CF4 ’’ SIG ’’ pdCHwttpJqYwDQYJKoZIhvcNAQEBBQAEgYAqHyvfaGa6 ’’ SIG ’’ f3kMOh7ARTeM5nrlRIPU+CTSkVHnjwnjjtTgV4JiQo+C ’’ SIG ’’ ykwuKMzBrkKMYHWPAyWQTlesEjycU303jE5MqWKe/olo ’’ SIG ’’ 5ZziG1ZwJ+0ArjJ9VXGtGQ1CbZkYRfyZe4hv0kF2dmdv ’’ SIG ’’ TqJuKRIYroTGRSSl5ZqLYzsDZau+pQ== ’’ SIG ’’ End signature block Может кто-нибудь сказать что именно там сохраняется и как получить то же самое при помощи API чтобы была возможность сделать собственный механизм подписи скриптов. Спасибо. | ||||
Ответы: | ||||
| ||||
asn1dump поможет. | ||||
| ||||
Если убрать все подстроки вида ’’SIG’’ , то получится (после декодирования) следующее: Сообщение PKCS7: CMSG_SIGNED(2) CMSG_SIGNED_DATA_PKCS_1_5_VERSION(1) Тип содержимого: 1.3.6.1.4.1.311.2.1.4 Содержимое сообщения PKCS7: ================ Начало уровня вложенности 1 ================ 0000 30 56 30 32 06 0a 2b 06 01 04 01 82 37 02 01 1e 0V02..+.....7... 0010 30 24 02 01 01 04 10 4e f0 29 16 99 27 b5 4d 8f 0$.....N.)..’.M. 0020 e5 ac e1 0f 17 eb ab 02 01 00 02 01 00 02 01 00 ................ 0030 02 01 00 02 01 00 30 20 30 0c 06 08 2a 86 48 86 ......0 0...*.H. 0040 f7 0d 02 05 05 00 04 10 0d 32 18 ee 7b f7 68 1e .........2..{.h. 0050 43 99 79 98 3b 06 82 96 C.y.;... ---------------- Конец уровня вложенности 1 ---------------- Счетчик подписавшего: 1 Индекс сертификата подписи: 0 dwFlags = CA_VERIFY_FLAGS_DUMP_CHAIN (0x40000000) ChainFlags = CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT (0x40000000) HCCE_LOCAL_MACHINE CERT_CHAIN_POLICY_BASE -------- CERT_CHAIN_CONTEXT -------- ChainContext.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) ChainContext.dwErrorStatus = CERT_TRUST_IS_UNTRUSTED_ROOT (0x20) SimpleChain.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) SimpleChain.dwErrorStatus = CERT_TRUST_IS_UNTRUSTED_ROOT (0x20) CertContext[0][0]: dwInfoStatus=109 dwErrorStatus=20 Issuer: CN=Test Certificate Subject: CN=Test Certificate Serial: af927a7ffca12582468ae0da2ef693e6 49 9f 27 d8 ac 77 7b c4 d8 7e 2d 64 c9 b6 f3 07 6f 9f b4 28 Element.dwInfoStatus = CERT_TRUST_HAS_EXACT_MATCH_ISSUER (0x1) Element.dwInfoStatus = CERT_TRUST_IS_SELF_SIGNED (0x8) Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100) Element.dwErrorStatus = CERT_TRUST_IS_UNTRUSTED_ROOT (0x20) Application[0] = 1.3.6.1.5.5.7.3.3 Подписывание кода Exclude leaf cert: da 39 a3 ee 5e 6b 4b 0d 32 55 bf ef 95 60 18 90 af d8 07 09 Full chain: 49 9f 27 d8 ac 77 7b c4 d8 7e 2d 64 c9 b6 f3 07 6f 9f b4 28 Issuer: CN=Test Certificate Subject: CN=Test Certificate Serial: af927a7ffca12582468ae0da2ef693e6 49 9f 27 d8 ac 77 7b c4 d8 7e 2d 64 c9 b6 f3 07 6f 9f b4 28 Цепочка сертификатов обработана, но обработка прервана на корневом сертификате, у которого отсутствует отношение доверия с поставщиком доверия. 0x800b0109 (-2146762487) ------------------------------------ Проверка через НЕ ДОВЕРЕННЫЙ корень Сведения о подписавшем[0]: Подпись соответствует открытому ключу CMSG_SIGNER_INFO_PKCS_1_5_VERSION(1) CERT_ID_ISSUER_SERIAL_NUMBER(1) Серийный номер: af927a7ffca12582468ae0da2ef693e6 Поставщик: CN=Test Certificate Субъект: CN=Test Certificate Алгоритм хеширования: ObjectID алгоритма: 1.2.840.113549.2.5 md5 Параметры алгоритма: NULL Алгоритм шифрованного хеша: ObjectID алгоритма: 1.2.840.113549.1.1.1 RSA Параметры алгоритма: NULL Зашифрованный хеш: 0000 2a 1f 2b df 68 66 ba 7f 79 0c 3a 1e c0 45 37 8c 0010 e6 7a e5 44 83 d4 f8 24 d2 91 51 e7 8f 09 e3 8e 0020 d4 e0 57 82 62 42 8f 82 ca 4c 2e 28 cc c1 ae 42 0030 8c 60 75 8f 03 25 90 4e 57 ac 12 3c 9c 53 7d 37 0040 8c 4e 4c a9 62 9e fe 89 68 e5 9c e2 1b 56 70 27 0050 ed 00 ae 32 7d 55 71 ad 19 0d 42 6d 99 18 45 fc 0060 99 7b 88 6f d2 41 76 76 67 6f 4e a2 6e 29 12 18 0070 ae 84 c6 45 24 a5 e5 9a 8b 63 3b 03 65 ab be a5 Проверенные атрибуты[0]: Атрибуты 4: Атрибут[0]: 1.3.6.1.4.1.311.2.1.12 Значение[0][0]: Неизвестный тип атрибута Атрибут[1]: 1.2.840.113549.1.9.3 (Тип содержимого) Значение[1][0]: Неизвестный тип атрибута 1.3.6.1.4.1.311.2.1.4 Атрибут[2]: 1.3.6.1.4.1.311.2.1.11 Значение[2][0]: Неизвестный тип атрибута Атрибут[3]: 1.2.840.113549.1.9.4 (Выборка сообщения) Значение[3][0]: Неизвестный тип атрибута Выборка сообщения: 2e 1c 27 c8 49 ec 21 78 a5 d0 87 c2 db 69 26 a6 Не удостоверенные атрибуты[0]: Атрибуты 0: Вычисленный хеш: 98 bd 5a 7f 4c 4c 37 e8 43 70 f6 5e 4b a0 91 e5 Нет получателя Сертификаты: ================ Начало уровня вложенности 1 ================ Элемент 0: Сертификат X509: Версия: 3 Серийный номер: af927a7ffca12582468ae0da2ef693e6 Алгоритм подписи: ObjectID алгоритма: 1.3.14.3.2.29 sha1RSA Параметры алгоритма: 05 00 Поставщик: CN=Test Certificate NotBefore: 01.01.2005 0:00 NotAfter: 01.01.2006 0:00 Субъект: CN=Test Certificate Алгоритм открытого ключа: ObjectID алгоритма: 1.2.840.113549.1.1.1 RSA Параметры алгоритма: 05 00 Длина открытого ключа: 1024 бит Открытый ключ: UnusedBits = 0 0000 30 81 89 02 81 81 00 d5 52 44 f8 5f ac 14 f2 fa 0010 66 89 39 67 d4 4d 5e 9f 8b 7a e7 1d 83 aa 20 3d 0020 0f cd bc ea dc c3 1d d9 2d 15 00 15 d5 7e 52 a2 0030 8c 63 f5 78 fc f0 7c dd 34 50 ea 4b dd ed de 14 0040 65 b8 c6 0f 04 5e 31 3c 0f 9f 17 5e 28 b4 22 58 0050 75 e0 3e 32 56 95 0d f3 b3 b9 f1 e3 3a 83 c9 b2 0060 36 dd 2c 74 92 72 a4 53 74 6e 10 c8 88 d4 86 4d 0070 b9 ec 7c 51 98 d1 11 12 da 3f 5c a3 26 32 30 42 0080 b7 a4 70 8e 32 43 2b 02 03 01 00 01 Расширения сертификатов: 5 2.5.29.19: Флаги = 1(Критический), Длина = 2 Основные ограничения Тип субъекта=Конечный субъект Ограничение на длину пути=Отсутствует 2.5.29.4: Флаги = 1(Критический), Длина = 16 Ограничение использования ключа [1]Идентификатор политики=1.3.6.1.4.1.311.2.1.22 Ограниченное использование ключа=Цифровая подпись (80) 1.3.6.1.4.1.311.2.1.10: Флаги = 0, Длина = 19 SpcSpAgencyInfo Сведения о политике: URL=http://www.name.com 2.5.29.37: Флаги = 0, Длина = c Улучшенный ключ Подписывание кода (1.3.6.1.5.5.7.3.3) 2.5.29.1: Флаги = 0, Длина = 45 Идентификатор ключа центра сертификатов Идентификатор ключа=71 7a dc d2 6d b6 52 7b d4 62 04 ae 98 3a 4f dc Поставщик сертификата: CN=Test Certificate Серийный номер сертификата=af 92 7a 7f fc a1 25 82 46 8a e0 da 2e f6 93 e6 Алгоритм подписи: ObjectID алгоритма: 1.3.14.3.2.29 sha1RSA Параметры алгоритма: 05 00 Подпись: НеиспользБит=0 0000 fe ca df 47 3b d4 e1 1c f1 18 a6 d0 ce 66 03 ba 0010 8c 1e a5 70 a9 c1 7d f0 a3 1e 54 4a fd a0 1a bf 0020 06 26 b7 da f8 30 9e 63 58 c3 82 62 c5 14 ad 0c 0030 23 ce 2d 1a ae 24 7e 8e 1a f2 bf 5d bd 56 31 fc 0040 75 83 30 56 b0 b9 ce 8a 21 a0 1c 79 48 ce 29 66 0050 4a d3 cc 48 15 a1 2f 65 09 8a 77 20 98 b2 30 98 0060 5e c8 b3 84 08 31 34 26 a4 1c da 28 a5 44 9e 7f 0070 0b ff 0c 1c 1d 70 1b 7e 60 71 29 2f 66 c0 29 80 Подпись соответствует открытому ключу Корневой сертификат: субъект совпадает с поставщиком Хеш кода ключа (sha1): 51 40 34 4b 62 4c 30 13 6d de 24 4b bc d4 52 8f 22 6a 0b 09 Хеш сертификата (md5): a5 f2 9a 68 ad 68 b5 e0 81 8f ff 32 1b 78 07 98 Хеш сертификата (sha1): 49 9f 27 d8 ac 77 7b c4 d8 7e 2d 64 c9 b6 f3 07 6f 9f b4 28 ---------------- Конец уровня вложенности 1 ---------------- Нет списков отзыва сертификатов (CRL) | ||||
| ||||
Спасибо за помощь! | ||||
| ||||
Василий, а чем вы получили такой dump? | ||||
| ||||
certutil, доступен на компьютере с установленным MS Certification Authority (Службы сертификации) - компонент Win2000srv или win2003srv | ||||
| ||||
Созраняете это в файл (без "SIG"). Файл делаете с расширением .b64 Winzip пользуете файл в der кодировке, пользуете dumpasn1.exe. В результате 0 30 1107: SEQUENCE { 4 06 9: . OBJECT IDENTIFIER signedData (1 2 840 113549 1 7 2) 15 A0 1092: . [0] { 19 30 1088: . . SEQUENCE { 23 02 1: . . . INTEGER 1 26 31 14: . . . SET { 28 30 12: . . . . SEQUENCE { 30 06 8: . . . . . OBJECT IDENTIFIER md5 (1 2 840 113549 2 5) 40 05 0: . . . . . NULL : . . . . . } : . . . . } 42 30 102: . . . SEQUENCE { 44 06 10: . . . . OBJECT IDENTIFIER : . . . . . spcIndirectDataContext (1 3 6 1 4 1 311 2 1 4) 56 A0 88: . . . . [0] { 58 30 86: . . . . . SEQUENCE { 60 30 50: . . . . . . SEQUENCE { 62 06 10: . . . . . . . OBJECT IDENTIFIER ’1 3 6 1 4 1 311 2 1 30’ 74 30 36: . . . . . . . SEQUENCE { 76 02 1: . . . . . . . . INTEGER 1 79 04 16: . . . . . . . . OCTET STRING : . . . . . . . . . 4E F0 29 16 99 27 B5 4D 8F E5 AC E1 0F 17 EB AB 97 02 1: . . . . . . . . INTEGER 0 100 02 1: . . . . . . . . INTEGER 0 103 02 1: . . . . . . . . INTEGER 0 106 02 1: . . . . . . . . INTEGER 0 109 02 1: . . . . . . . . INTEGER 0 : . . . . . . . . } : . . . . . . . } 112 30 32: . . . . . . SEQUENCE { 114 30 12: . . . . . . . SEQUENCE { 116 06 8: . . . . . . . . OBJECT IDENTIFIER md5 (1 2 840 113549 2 5) 126 05 0: . . . . . . . . NULL : . . . . . . . . } 128 04 16: . . . . . . . OCTET STRING : . . . . . . . . 0D 32 18 EE 7B F7 68 1E 43 99 79 98 3B 06 82 96 : . . . . . . . } : . . . . . . } : . . . . . } : . . . . } 146 A0 631: . . . [0] { 150 30 627: . . . . SEQUENCE { 154 30 480: . . . . . SEQUENCE { 158 A0 3: . . . . . . [0] { 160 02 1: . . . . . . . INTEGER 2 : . . . . . . . } 163 02 16: . . . . . . INTEGER : . . . . . . . AF 92 7A 7F FC A1 25 82 46 8A E0 DA 2E F6 93 E6 : . . . . . . . Error: Integer has a negative value. 181 30 9: . . . . . . SEQUENCE { 183 06 5: . . . . . . . OBJECT IDENTIFIER : . . . . . . . . sha-1WithRSAEncryption (1 3 14 3 2 29) 190 05 0: . . . . . . . NULL : . . . . . . . } 192 30 27: . . . . . . SEQUENCE { 194 31 25: . . . . . . . SET { 196 30 23: . . . . . . . . SEQUENCE { 198 06 3: . . . . . . . . . OBJECT IDENTIFIER commonName (2 5 4 3) 203 13 16: . . . . . . . . . PrintableString ’Test Certificate’ : . . . . . . . . . } : . . . . . . . . } : . . . . . . . } 221 30 30: . . . . . . SEQUENCE { 223 17 13: . . . . . . . UTCTime ’041231200000Z’ 238 17 13: . . . . . . . UTCTime ’051231200000Z’ : . . . . . . . } 253 30 27: . . . . . . SEQUENCE { 255 31 25: . . . . . . . SET { 257 30 23: . . . . . . . . SEQUENCE { 259 06 3: . . . . . . . . . OBJECT IDENTIFIER commonName (2 5 4 3) 264 13 16: . . . . . . . . . PrintableString ’Test Certificate’ : . . . . . . . . . } : . . . . . . . . } : . . . . . . . } 282 30 159: . . . . . . SEQUENCE { 285 30 13: . . . . . . . SEQUENCE { 287 06 9: . . . . . . . . OBJECT IDENTIFIER : . . . . . . . . . rsaEncryption (1 2 840 113549 1 1 1) 298 05 0: . . . . . . . . NULL : . . . . . . . . } 300 03 141: . . . . . . . BIT STRING 0 unused bits : . . . . . . . . 30 81 89 02 81 81 00 D5 52 44 F8 5F AC 14 F2 FA : . . . . . . . . 66 89 39 67 D4 4D 5E 9F 8B 7A E7 1D 83 AA 20 3D : . . . . . . . . 0F CD BC EA DC C3 1D D9 2D 15 00 15 D5 7E 52 A2 : . . . . . . . . 8C 63 F5 78 FC F0 7C DD 34 50 EA 4B DD ED DE 14 : . . . . . . . . 65 B8 C6 0F 04 5E 31 3C 0F 9F 17 5E 28 B4 22 58 : . . . . . . . . 75 E0 3E 32 56 95 0D F3 B3 B9 F1 E3 3A 83 C9 B2 : . . . . . . . . 36 DD 2C 74 92 72 A4 53 74 6E 10 C8 88 D4 86 4D : . . . . . . . . B9 EC 7C 51 98 D1 11 12 DA 3F 5C A3 26 32 30 42 : . . . . . . . . . . . . [ Another 12 bytes skipped ] : . . . . . . . } 444 A3 191: . . . . . . [3] { 447 30 188: . . . . . . . SEQUENCE { 450 30 12: . . . . . . . . SEQUENCE { 452 06 3: . . . . . . . . . OBJECT IDENTIFIER basicConstraints (2 5 29 19) 457 01 1: . . . . . . . . . BOOLEAN TRUE 460 04 2: . . . . . . . . . OCTET STRING : . . . . . . . . . 30 00 : . . . . . . . . . } 464 30 32: . . . . . . . . SEQUENCE { 466 06 3: . . . . . . . . . OBJECT IDENTIFIER : . . . . . . . . . . keyUsageRestriction (2 5 29 4) 471 01 1: . . . . . . . . . BOOLEAN TRUE 474 04 22: . . . . . . . . . OCTET STRING : . . . . . . . . . 30 14 30 0E 30 0C 06 0A 2B 06 01 04 01 82 37 02 : . . . . . . . . . 01 16 03 02 07 80 : . . . . . . . . . } 498 30 39: . . . . . . . . SEQUENCE { 500 06 10: . . . . . . . . . OBJECT IDENTIFIER : . . . . . . . . . . spcAgencyInfo (1 3 6 1 4 1 311 2 1 10) 512 04 25: . . . . . . . . . OCTET STRING : . . . . . . . . . 30 17 A0 15 80 13 68 74 74 70 3A 2F 2F 77 77 77 : . . . . . . . . . 2E 6E 61 6D 65 2E 63 6F 6D : . . . . . . . . . } 539 30 19: . . . . . . . . SEQUENCE { 541 06 3: . . . . . . . . . OBJECT IDENTIFIER extKeyUsage (2 5 29 37) 546 04 12: . . . . . . . . . OCTET STRING : . . . . . . . . . 30 0A 06 08 2B 06 01 05 05 07 03 03 : . . . . . . . . . } 560 30 76: . . . . . . . . SEQUENCE { 562 06 3: . . . . . . . . . OBJECT IDENTIFIER : . . . . . . . . . . authorityKeyIdentifier (2 5 29 1) 567 04 69: . . . . . . . . . OCTET STRING : . . . . . . . . . 30 43 80 10 71 7A DC D2 6D B6 52 7B D4 62 04 AE : . . . . . . . . . 98 3A 4F DC A1 1D 30 1B 31 19 30 17 06 03 55 04 : . . . . . . . . . 03 13 10 54 65 73 74 20 43 65 72 74 69 66 69 63 : . . . . . . . . . 61 74 65 82 10 AF 92 7A 7F FC A1 25 82 46 8A E0 : . . . . . . . . . DA 2E F6 93 E6 : . . . . . . . . . } : . . . . . . . . } : . . . . . . . } : . . . . . . } 638 30 9: . . . . . SEQUENCE { 640 06 5: . . . . . . OBJECT IDENTIFIER : . . . . . . . sha-1WithRSAEncryption (1 3 14 3 2 29) 647 05 0: . . . . . . NULL : . . . . . . } 649 03 129: . . . . . BIT STRING 0 unused bits : . . . . . . 80 29 C0 66 2F 29 71 60 7E 1B 70 1D 1C 0C FF 0B : . . . . . . 7F 9E 44 A5 28 DA 1C A4 26 34 31 08 84 B3 C8 5E : . . . . . . 98 30 B2 98 20 77 8A 09 65 2F A1 15 48 CC D3 4A : . . . . . . 66 29 CE 48 79 1C A0 21 8A CE B9 B0 56 30 83 75 : . . . . . . FC 31 56 BD 5D BF F2 1A 8E 7E 24 AE 1A 2D CE 23 : . . . . . . 0C AD 14 C5 62 82 C3 58 63 9E 30 F8 DA B7 26 06 : . . . . . . BF 1A A0 FD 4A 54 1E A3 F0 7D C1 A9 70 A5 1E 8C : . . . . . . BA 03 66 CE D0 A6 18 F1 1C E1 D4 3B 47 DF CA FE : . . . . . } : . . . . } 781 31 326: . . . SET { 785 30 322: . . . . SEQUENCE { 789 02 1: . . . . . INTEGER 1 792 30 47: . . . . . SEQUENCE { 794 30 27: . . . . . . SEQUENCE { 796 31 25: . . . . . . . SET { 798 30 23: . . . . . . . . SEQUENCE { 800 06 3: . . . . . . . . . OBJECT IDENTIFIER commonName (2 5 4 3) 805 13 16: . . . . . . . . . PrintableString ’Test Certificate’ : . . . . . . . . . } : . . . . . . . . } : . . . . . . . } 823 02 16: . . . . . . INTEGER : . . . . . . . AF 92 7A 7F FC A1 25 82 46 8A E0 DA 2E F6 93 E6 : . . . . . . . Error: Integer has a negative value. : . . . . . . } 841 30 12: . . . . . SEQUENCE { 843 06 8: . . . . . . OBJECT IDENTIFIER md5 (1 2 840 113549 2 5) 853 05 0: . . . . . . NULL : . . . . . . } 855 A0 108: . . . . . [0] { 857 30 16: . . . . . . SEQUENCE { 859 06 10: . . . . . . . OBJECT IDENTIFIER : . . . . . . . . spcSpOpusInfo (1 3 6 1 4 1 311 2 1 12) 871 31 2: . . . . . . . SET { 873 30 0: . . . . . . . . SEQUENCE {} : . . . . . . . . } : . . . . . . . } 875 30 25: . . . . . . SEQUENCE { 877 06 9: . . . . . . . OBJECT IDENTIFIER : . . . . . . . . contentType (1 2 840 113549 1 9 3) 888 31 12: . . . . . . . SET { 890 06 10: . . . . . . . . OBJECT IDENTIFIER : . . . . . . . . . spcIndirectDataContext (1 3 6 1 4 1 311 2 1 4) : . . . . . . . . } : . . . . . . . } 902 30 28: . . . . . . SEQUENCE { 904 06 10: . . . . . . . OBJECT IDENTIFIER : . . . . . . . . spcStatementType (1 3 6 1 4 1 311 2 1 11) 916 31 14: . . . . . . . SET { 918 30 12: . . . . . . . . SEQUENCE { 920 06 10: . . . . . . . . . OBJECT IDENTIFIER : . . . . . . . . . . commercialCodeSigning (1 3 6 1 4 1 311 2 1 22) : . . . . . . . . . } : . . . . . . . . } : . . . . . . . } 932 30 31: . . . . . . SEQUENCE { 934 06 9: . . . . . . . OBJECT IDENTIFIER : . . . . . . . . messageDigest (1 2 840 113549 1 9 4) 945 31 18: . . . . . . . SET { 947 04 16: . . . . . . . . OCTET STRING : . . . . . . . . . 2E 1C 27 C8 49 EC 21 78 A5 D0 87 C2 DB 69 26 A6 : . . . . . . . . } : . . . . . . . } : . . . . . . } 965 30 13: . . . . . SEQUENCE { 967 06 9: . . . . . . OBJECT IDENTIFIER : . . . . . . . rsaEncryption (1 2 840 113549 1 1 1) 978 05 0: . . . . . . NULL : . . . . . . } 980 04 128: . . . . . OCTET STRING : . . . . . . 2A 1F 2B DF 68 66 BA 7F 79 0C 3A 1E C0 45 37 8C : . . . . . . E6 7A E5 44 83 D4 F8 24 D2 91 51 E7 8F 09 E3 8E : . . . . . . D4 E0 57 82 62 42 8F 82 CA 4C 2E 28 CC C1 AE 42 : . . . . . . 8C 60 75 8F 03 25 90 4E 57 AC 12 3C 9C 53 7D 37 : . . . . . . 8C 4E 4C A9 62 9E FE 89 68 E5 9C E2 1B 56 70 27 : . . . . . . ED 00 AE 32 7D 55 71 AD 19 0D 42 6D 99 18 45 FC : . . . . . . 99 7B 88 6F D2 41 76 76 67 6F 4E A2 6E 29 12 18 : . . . . . . AE 84 C6 45 24 A5 E5 9A 8B 63 3B 03 65 AB BE A5 : . . . . . } : . . . . } : . . . } : . . } : . } Вообще это PKXS#7 подписаный с атрибутами signedData (1 2 840 113549 1 7 2) | ||||