Статус: Новичок
Группы: Участники
Зарегистрирован: 26.11.2020(UTC) Сообщений: 6
|
Прошу подсказать в правильности алгоритма проверки подписи ГОСТ Р 34.10-2012 тк получаю ошибку Invalid Signature. (0x80090006) Есть хэш (Base64Url(Header) || ‘.’ || Base64Url(Payload)) Цитата: $header = 'eyJraWQiOiI2ZjdiNGJhOC02OGM5LTQzYzgtYTA2Yi05MjdhODhmNjBmZjgiLCJ0eXAiOiJKT1NFIiwiYWxnIjoiZ29zdDM0LjEwLTIwMTIifQ'; $body = 'eyJudW1iZXIiOiI3IiwiZGF0ZSI6IjIwMjAtMDktMTAiLCJkaWdlc3RTaWduYXR1cmVzIjpbXSwiYmFua1N0YXR1cyI6IkFDQ0VQVEVEIiwiYmFua0NvbW1lbnQiOm51bGwsImV4dGVybmFsSWQiOiJmYWU0NjA4Zi1lMTdkLTRmOTQtYTAxOC04YmU2MTJlZmRmNDAiLCJhbW91bnQiOiIxMDAwMC4wMCIsIm9wZXJhdGlvbkNvZGUiOiIwMSIsImRlbGl2ZXJ5S2luZCI6ItGN0LvQtdC60YLRgNC-0L3QvdC-IiwicHJpb3JpdHkiOiI1IiwidXJnZW5jeUNvZGUiOiJOT1JNQUwiLCJ2b0NvZGUiOm51bGwsInB1cnBvc2UiOiJUcmFuc0lkX1NiZXIgW2ZhZTQ2MDhmLWUxN2QtNGY5NC1hMDE4LThiZTYxMmVmZGY0MF0g0J7Qv9C70LDRgtCwINC_0L4g0LTQvtCz0L7QstC-0YDRgyDQvtGCIDIwMjAtMDctMjAg4oSW0K_QoDAxNDA1ODMyMSIsImRlcGFydG1lbnRhbEluZm8iOm51bGwsInBheWVyTmFtZSI6ItCe0J7QniBcItCi0J4t0J_QsNGA0YLQvdC10YAtNDI2LTAxXCIiLCJwYXllcklubiI6IjUwMTUxMDAxMTAiLCJwYXllcktwcCI6bnVsbCwicGF5ZXJBY2NvdW50IjoiNDA3MDI4MTA3NDA2MTI0NDExOTQiLCJwYXllckJhbmtCaWMiOiIwNDQ1MjUyMjUiLCJwYXllckJhbmtDb3JyQWNjb3VudCI6IjMwMTAxODEwNDAwMDAwMDAwMjI1IiwicGF5ZWVOYW1lIjoi0J7QntCeIFwi0J_QkNCg0KLQndCV0KAtNDI2XCIiLCJwYXllZUlubiI6IjUwNDg1NDk1MDMiLCJwYXllZUtwcCI6bnVsbCwicGF5ZWVBY2NvdW50IjoiNDA3MDI4MTA4NDA5Njc3NDA0MTEiLCJwYXllZUJhbmtCaWMiOiIwNDQ1MjUyMjUiLCJwYXllZUJhbmtDb3JyQWNjb3VudCI6IjMwMTAxODEwNDAwMDAwMDAwMjI1IiwiY3J1Y2lhbEZpZWxkc0hhc2giOm51bGwsInZhdCI6eyJ0eXBlIjoiSU5DTFVERUQiLCJyYXRlIjoiMjAiLCJhbW91bnQiOiIxNjY2LjY3In0sImluY29tZVR5cGVDb2RlIjpudWxsfQ'; $hash = $header . '.' . $body; Подпись: Цитата:$sgn = 'Lsiy6NhMOFCduPk_3n2PdnYxJe1m3nHQfd3H1nwQvQZdbgOKR0d9kkyfkFeTSoZDUGl9Mqcx5G-Djk7oDZzGAw'; $sgn = base64url_decode($sgn) И сертификат (ключ): Цитата:$cert = '-----BEGIN CERTIFICATE----- MIIEcTCCBB6gAwIBAgIKd6K4zdda7gm/ATAKBggqhQMHAQEDAjCCAWsxGzAZBgNV BAgMEjc3INCzLtCc0L7RgdC60LLQsDEYMBYGA1UEBwwP0LMu0JzQvtGB0LrQstCw MRowGAYIKoUDA4EDAQESDDAwNzcwNzA4Mzg5MzEmMCQGA1UECQwd0YPQuy4g0JLQ sNCy0LjQu9C+0LLQsCwg0LQuMTkxGDAWBgUqhQNkARINMTAyNzcwMDEzMjE5NTEL MAkGA1UEBhMCUlUxKzApBgNVBAoMItCf0JDQniDQodCx0LXRgNCx0LDQvdC6ICjQ otCV0KHQoikxQzBBBgNVBAsMOtCU0LXQv9Cw0YDRgtCw0LzQtdC90YIg0LHQtdC3 0L7Qv9Cw0YHQvdC+0YHRgtC4ICjQotCV0KHQoikxMjAwBgNVBAMMKdCf0JDQniDQ odCx0LXRgNCx0LDQvdC6INCj0KYgKNCi0JXQodCiIFEpMSEwHwYJKoZIhvcNAQkB FhJjYXNicmZAc2JlcmJhbmsucnUwHhcNMTkxMTA1MTQxMTAwWhcNMjEwMjA1MTQx MjU1WjCCATQxHzAdBgNVBAoMFtCh0LHQtdGA0KLQtdGF0KLQtdGB0YIxCzAJBgNV BAYTAlJVMRwwGgYDVQQIDBM3NyDQsy4g0JzQvtGB0LrQstCwMRgwFgYDVQQHDA/Q sy7QnNC+0YHQutCy0LAxJjAkBgNVBAkMHdGD0LsuINCS0LDQstC40LvQvtCy0LAs INC0LjE5MRowGAYIKoUDA4EDAQESDDAwNzcwNzA4Mzg5MzEYMBYGBSqFA2QBEg0x MDI3NzAwMTMyMTk1MSEwHwYDVQQDDBjQkNCR0KEg0LHQtdC3INC40LzQtdC90Lgx SzBJBgNVBAsMQtCi0LXRgdGC0L7QstC+0LUg0L/QvtC00YDQsNC30LTQtdC70LXQ vdC40LUg0KHQsdC10YDQotC10YXQotC10YHRgjBmMB8GCCqFAwcBAQEBMBMGByqF AwICIwIGCCqFAwcBAQICA0MABEDX37dM9i+lFT5ICLvZmX2aDyBfF3DcKLAxTvaC qcIeC+0fwRP50F80a4XgvULeLPSte7x1yxTJCGDnITY2HVt7o4HPMIHMMDAGByqF AwN7AwEEJQwjU0JUSjRCN1Jh0KLQtdGB0YJf0KHQkdCR0J7Qm18yMDEy0J0wCQYD VR0TBAIwADAOBgNVHQ8BAf8EBAMCBsAwHQYDVR0OBBYEFOIHMvk6MmgJzlyIklyV brm0HitQMD0GA1UdHwQ2MDQwMqAwoC6GLGh0dHA6Ly93d3dsLnNiZXJiYW5rLnJ1 L2NhL3Rlc3RfMjAxMng1MDkuY3JsMB8GA1UdIwQYMBaAFER+sfJUNI8vPMx8c81k E7FatnguMAoGCCqFAwcBAQMCA0EACFnB37fU7PZCnnT6aboDkwjFmcTy7lT3l86l b+75JEEUyufQeFX7xpwzOgdbKh6bd+wDoihoa6PPJatIwSncLg== -----END CERTIFICATE-----'; Код проверки: Цитата: $cp = new \CPCertificate(); $cp->Import($cert);
$hd = new \CPHashedData(); $hd->set_Algorithm(CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256); $hd->Hash(bin2hex($hash));
$rs = new \CPRawSignature(); $rs->VerifyHash($hd, bin2hex($sgn), $cp); Нужно ли переводить подпись и хэш в bin2hex? Нужно ли выполнять base64_decode? Отредактировано пользователем 30 ноября 2020 г. 17:09:25(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,683   Сказал «Спасибо»: 572 раз Поблагодарили: 2302 раз в 1803 постах
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,683   Сказал «Спасибо»: 572 раз Поблагодарили: 2302 раз в 1803 постах
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 26.11.2020(UTC) Сообщений: 6
|
Автор: Андрей *  https://www.cryptopro.ru/forum2/default.aspx?g=posts&m=119924#post119924 Обратите внимание на: Цитата:$hd->SetHashValue($digest); Я так понимаю, что разница $hd->SetHashValue($digest) и $hd->Hash($hash) как раз в $digest - подготовлен хэш или нет. Как получить $digest средствами КриптоПро?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 26.11.2020(UTC) Сообщений: 6
|
Автор: Андрей *  Разделение hex значения на 2 байта выполнил согласно докам, не помогло, та же ошибка. Может нудно выполнять проверку через класс CPSignedData? Отредактировано пользователем 30 ноября 2020 г. 17:08:43(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,683   Сказал «Спасибо»: 572 раз Поблагодарили: 2302 раз в 1803 постах
|
Подпись корректная и сертификат тот? |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,683   Сказал «Спасибо»: 572 раз Поблагодарили: 2302 раз в 1803 постах
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 26.11.2020(UTC) Сообщений: 6
|
Автор: Андрей *  ... именно две строки с разделителем JWS заголовок.тело цитата Цитата:Подпись вычисляется по алгоритму указанному в Заголовке (Header) в параметре alg, в данном случае gost34.10-2012, и вычисляется от исходных данных: Base64Url(Header) || ‘.’ || Base64Url(Payload).
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,683   Сказал «Спасибо»: 572 раз Поблагодарили: 2302 раз в 1803 постах
|
 Snimok ehkrana ot 2020-11-30 18-37-03.png (25kb) загружен 10 раз(а). |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,683   Сказал «Спасибо»: 572 раз Поблагодарили: 2302 раз в 1803 постах
|
подпись: E2 8C 2B 8E 8D C4 83 05 D9 8B 9F F3 ED D7 F8 67 67 13 52 DE 66 ED 17 0D D7 DD 7C 6D C7 01 DB 60 D5 E6 30 A8 74 74 D7 29 C4 F9 09 75 39 A4 68 34 05 96 D7 23 7A 13 4E F6 38 E8 E4 8E D0 C9 6C 30 перевернул: 03 C6 9C 0D E8 4E 8E 83 6F E4 31 A7 32 7D 69 50 43 86 4A 93 57 90 9F 4C 92 7D 47 47 8A 03 6E 5D 06 BD 10 7C D6 C7 DD 7D D0 71 DE 66 ED 25 31 76 76 8F 7D DE 3F F9 B8 9D 50 38 4C D8 E8 B2 C8 2E проверяется.  testX.zip (2kb) загружен 2 раз(а). Snimok ehkrana ot 2020-11-30 18-42-35.png (25kb) загружен 16 раз(а). |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close