| ||||
| ||||
Некая программа создает ЭЦП используя Capicom. Однако утилита csptest.exe не признает формат этой ЭЦП. Почему? По ссылке http://www.cryptopro.ru/CryptoPro/forum/view.asp?q=4144 прошу не посылать, т.к. это немного другой случай. Вот такая длинная ЭЦП (видимо она с сертификатом): MIIIWQYJKoZIhvcNAQcCoIIISjCCCEYCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3 DQEHAaCCBiUwggLeMIICR6ADAgECAhBQQ5ICeJ3bMaEN1PJPT7QfMA0GCSqGSIb3 DQEBBQUAMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGlu ZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwg SXNzdWluZyBDQTAeFw0wNzA5MjExNjI3MjhaFw0wODA5MjAxNjI3MjhaMEQxHzAd BgNVBAMTFlRoYXd0ZSBGcmVlbWFpbCBNZW1iZXIxITAfBgkqhkiG9w0BCQEWEmNh ZHVzZXJnQGdtYWlsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB AOrqQrHSnERCFWNBbWgs3Wm0T+/o4/HTrJXwcvdpopJg/khKn2s6xN85hC8rM+xg qIBe5kxXtm7DUyAN0MsXL/3V+5gykzcyHHiJS5ZiR7DqmdodZsBJVPSBAjgNMKwS 6HDyFnd5kZLUm3g4WzIHKRrlsmKLNJmd8KXJQ0CK6jgoFrkKv4zWijWOcXHLP/sv IiUjyKjGt6C0TdXATy932kxEB5E8teGBaTJa8Q0w+zsdAXEVTWJrrPgskC3DdcgX x86YrtxO1bAJmcrvB6rBW5STvJ+cc+daEQpRI3pSHQ/0CLMiVeyHPi9csyrXAPEJ 6faARRkdB0bfj9JA4tVXwKUCAwEAAaMvMC0wHQYDVR0RBBYwFIESY2FkdXNlcmdA Z21haWwuY29tMAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEFBQADgYEAvDCGSh7t Ynhf9klXeHV18DCirARU3VVfuvjJ/bJkhhGKfCWrNTiXC/WCtpJJJU7INFpSFkJw nazz68ZcWKzByK7Cg7lX/vK0UzW6SS78Nb1c/iHtrtfvYzOGbRAPDxQZAHzzJ1ik a9YtajDxcY/vGWIUu9hoJHUTVPAvByvCLuMwggM/MIICqKADAgECAgENMA0GCSqG SIb3DQEBBQUAMIHRMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBl MRIwEAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5n MSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMSQwIgYD VQQDExtUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgQ0ExKzApBgkqhkiG9w0BCQEW HHBlcnNvbmFsLWZyZWVtYWlsQHRoYXd0ZS5jb20wHhcNMDMwNzE3MDAwMDAwWhcN MTMwNzE2MjM1OTU5WjBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENv bnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZy ZWVtYWlsIElzc3VpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMSm PFVzVftOucqZWh5owHUEcJ3f6f+jHuy9zfVb8hp2vX8MOmHyv1HOAdTlUAow1wJj WiyJFXCO3cnwK4Vaqj9xVsuvPAsH5/EfkTYkKhPPK9Xzgnc9A74r/rsYPge/QIAC ZNenprufZdHFKlSFD0gEf6e20TxhBEAeZBlyYLf7AgMBAAGjgZQwgZEwEgYDVR0T AQH/BAgwBgEB/wIBADBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsLnRoYXd0 ZS5jb20vVGhhd3RlUGVyc29uYWxGcmVlbWFpbENBLmNybDALBgNVHQ8EBAMCAQYw KQYDVR0RBCIwIKQeMBwxGjAYBgNVBAMTEVByaXZhdGVMYWJlbDItMTM4MA0GCSqG SIb3DQEBBQUAA4GBAEiM0VCD6gsuzA2jZqxnD3+vrL7CF6FDlpSdf0whuPg2H6ot nzYvwPQcUCCTcDz9reFhYsPZOhl+hLGZGwDFGguCdJ4lUJRix9sncVcljd2pnDmO jCBPZV+V2vf3h9bGCE6u9uo05RAaWzVNd+NWIXiC3CEZNd4ksdMdRv9dX2VPMYIB /DCCAfgCAQEwdjBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1 bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVt YWlsIElzc3VpbmcgQ0ECEFBDkgJ4ndsxoQ3U8k9PtB8wCQYFKw4DAhoFAKBdMBgG CSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTA3MDkyMjIx NTIxNFowIwYJKoZIhvcNAQkEMRYEFKFQ8swCHAZ7n3FJM7bzPFB5uEVtMA0GCSqG SIb3DQEBAQUABIIBAEdhK/PwLJtmKHsHm0j2aRXqgIlnbex01KS1Qt8YDcFViAXZ 883aozGq1Vt5XnywHZZPp0piLdX3P0aPpKe3DB7s66Jc2h28hzhkGMPxmZQGRuuB GiF5otPuBa4u6jcJ9T5T04gL3WTf+fnJanhn9RgY8NIYVxurlKRQypdy8hPma0Vo OW5TaosamoC/ZPBguAJ1zp+MTunWXoWWA2cXEJF2zANjZR/8BuM3k0fqEwuFOhBk qXkhId6eBQu9/bUCvka48zAaPWcWJGUduNKa7U1fB9BuDzCUcb85A1jrAFoV9GGp 42+C9ISlmAElnXN2tphEbC4z0d++Mt2ZfxoYCmw= | ||||
Ответы: | ||||
| ||||
А когда проверяете используете параметр -base64? | ||||
| ||||
обязательно использую -base64 | ||||
| ||||
Вот такие параметры задаю (detached_sign.sig -содержит приведенную выше ЭЦП): csptest -sfsign -in c:\src_mes.bin -my "SertName" -verify -signature c:\detached_sign.sig -detached -base64 Ошибка "Неправильное значение хеша" | ||||
| ||||
csptest - это тестовая утилитка, предназначенная в первую очередь для проверки работоспособности "КриптоПро CSP". Данная подпись сделана на алгоритме RSA/SHA1, т.е. при использовании не-КриптоПро CSP. По умолчанию csptest, разумеется, работает на алгоритмах ГОСТ. Т.е. как минимум не хватает параметра -alg SHA1 | ||||
| ||||
Я отлично понимаю, что в первую очередь для "КриптоПро CSP". Надеюсь, разработчики не будут возражать, если я использую эту утилиту в целях изучения работы с ЭЦП. "по умолчанию csptest, разумеется, работает на алгоритмах ГОСТ." не совсем так, алгоритм нужно указывать только для создания ЭЦП. Для проверки ЭЦП алгоритм указывать не нужно. | ||||
| ||||
Не признает формат - это одно. Ошибка "Неправильное значение хеша" - это совсем другое. Подпись не сходится, по какой-то причине. Самое вероятное - проверяете не то, что подписали. Как именно Вы подписываете с помощью CAPICOM? Попробуйте сделать тоже самое с присоединенной подписью. | ||||
| ||||
"Самое вероятное - проверяете не то, что подписали." - это исключено. Однако удалось выяснить, что при подписывании через Capicom, в атрибут подписи добавляли дату и время подписания. После того как этот атрибут исключили csptest выдает другую ошибку: 80090006 - неправильная подпись. Для примера привожу подписываемые данные (всего одно слово): Content и ЭЦП созданная через Capicom: MIIG7wYJKoZIhvcNAQcCoIIG4DCCBtwCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3 DQEHAaCCBZswggJUMIIBvaADAgECAhBCo4kC5b2Z2Cvc+JfnD2u3MA0GCSqGSIb3 DQEBBQUAMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGlu ZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwg SXNzdWluZyBDQTAeFw0wNzA4MDkxNDI3MzhaFw0wODA4MDgxNDI3MzhaMEExHzAd BgNVBAMTFlRoYXd0ZSBGcmVlbWFpbCBNZW1iZXIxHjAcBgkqhkiG9w0BCQEWD2Nh ZHVzZXJAbWFpbC5ydTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA7QgdJCVr IjL2ZiFdddc9eknSFriCaxcfysTj3buM1z1thbj5ixllzsfnKMtjksrP3+GekDq5 e7aC7rZGwQbBufBs7iJnxtyqrf8swa+8rjUoRBRjzd13v+TThnu/kImfWs5rU27C Rl7+7fCy2wZstuh+5reeFM9SW/MtFFv0sBkCAwEAAaMsMCowGgYDVR0RBBMwEYEP Y2FkdXNlckBtYWlsLnJ1MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEFBQADgYEA DDwQTYVOSYYNroROtx7JSYUD16VK+jMGyTbuVHEH7/SzNGE3SeToS8dZdTRuo14P tRH9ul3gXG5qgx9Zw5fHziENAFYFEfrxH+93zI6EVZW0B9g2QYznFz08m89yin7p OS5LD5u5Lz2+u1OiNl63RfDfKzD6RZfXFiwFoNas46owggM/MIICqKADAgECAgEN MA0GCSqGSIb3DQEBBQUAMIHRMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2VzdGVy biBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoTEVRoYXd0ZSBDb25z dWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u MSQwIgYDVQQDExtUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgQ0ExKzApBgkqhkiG 9w0BCQEWHHBlcnNvbmFsLWZyZWVtYWlsQHRoYXd0ZS5jb20wHhcNMDMwNzE3MDAw MDAwWhcNMTMwNzE2MjM1OTU5WjBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhh d3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNv bmFsIEZyZWVtYWlsIElzc3VpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ AoGBAMSmPFVzVftOucqZWh5owHUEcJ3f6f+jHuy9zfVb8hp2vX8MOmHyv1HOAdTl UAow1wJjWiyJFXCO3cnwK4Vaqj9xVsuvPAsH5/EfkTYkKhPPK9Xzgnc9A74r/rsY Pge/QIACZNenprufZdHFKlSFD0gEf6e20TxhBEAeZBlyYLf7AgMBAAGjgZQwgZEw EgYDVR0TAQH/BAgwBgEB/wIBADBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3Js LnRoYXd0ZS5jb20vVGhhd3RlUGVyc29uYWxGcmVlbWFpbENBLmNybDALBgNVHQ8E BAMCAQYwKQYDVR0RBCIwIKQeMBwxGjAYBgNVBAMTEVByaXZhdGVMYWJlbDItMTM4 MA0GCSqGSIb3DQEBBQUAA4GBAEiM0VCD6gsuzA2jZqxnD3+vrL7CF6FDlpSdf0wh uPg2H6otnzYvwPQcUCCTcDz9reFhYsPZOhl+hLGZGwDFGguCdJ4lUJRix9sncVcl jd2pnDmOjCBPZV+V2vf3h9bGCE6u9uo05RAaWzVNd+NWIXiC3CEZNd4ksdMdRv9d X2VPMYIBHDCCARgCAQEwdjBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3Rl IENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFs IEZyZWVtYWlsIElzc3VpbmcgQ0ECEEKjiQLlvZnYK9z4l+cPa7cwCQYFKw4DAhoF ADANBgkqhkiG9w0BAQEFAASBgHIREZ7FZ1Emes2y25uYRwsB+uldOuE6/1P5qdp+ HidBG0s2fOmxleTVla0r9yyI0OOF9Gh2eCZT27RHT1ErTxJego0Clis5dypdBYIN sLyprz5JLhpyhIrPDzEmVftCU0t/nh9Bd2FmyCHCAsD+rju0PDw7m/osM+YBHJYm E3Qa | ||||
| ||||
"Самое вероятное - проверяете не то, что подписали." - это именно Ваш случай. Который детально описан в http://www.cryptopro.ru/CryptoPro/forum/view.asp?q=4144, не знаю почему Вы решили что это не так. Сохраните слово Content в юникоде и дайте csptest - все отлично проверится. | ||||
| ||||
"Сохраните слово Content в юникоде и дайте csptest - все отлично проверится." Сработало! Большое спасибо. | ||||