Проблема с OCSP-квитанциями для KalkanCryptCom GOST2015

Добрый день!

Используют KalkanCryptCom из GOST2015-TEST (SDK 27-04-2022)

вызываю kalkanCryptCom.X509ValidateCertificate с флагами
int flags = (int)KALKANCRYPTCOM_FLAGS.KC_NOCHECKCERTTIME | (int)KALKANCRYPTCOM_FLAGS.KC_GET_OCSP_RESPONSE | (int)KALKANCRYPTCOM_FLAGS.KC_OUT_BASE64;
выходным параметром out string ocspResponse получаю OCSP-квиток, который сохраняю в базу с целью альтернативной проверки сертификата, чтобы часто не обращаться к OCSP в ближайшие пару часов

Полученный квиток некорректно обрабатывается BouncyCastle (Org.BouncyCastle.Ocsp.OcspException: problem decoding object: System.IO.IOException: extra data found after object) и некорректно парсится в онлайн-парсере ASN1, например, https://lapo.it/asn1js выдает Content size is not correct for container at offset 89

Квитанции, получаемые с использованием старого “стабильного” KalkanCryptCom парсятся на https://lapo.it/asn1js и обрабатываются BouncyCastle нормально. Для “старых” ГОСТ-сертификатов “новый” Калкан тоже выдает некорректный квиток. Проверял обращения новым калканом и к рабочему OCSP (http://ocsp.pki.gov.kz для рабочего сертификата) и к тестовому (http://test.pki.gov.kz/ocsp/), результат аналогичный.

Подскажите, как теперь “правильно” получать OCSP-квитанции?

Полученный квиток от “новой” версии Калкана :
T0NTUCBSZXNwb25zZSBEYXRhOgogICAgT0NTUCBSZXNwb25zZSBTdGF0dXM6IHN1Y2Nlc3NmdWwgKDB4MCkKICAgIFJlc3BvbnNlIFR5cGU6IEJhc2ljIE9DU1AgUmVzcG9uc2UKICAgIFZlcnNpb246IDEgKDB4MCkKICAgIFJlc3BvbmRlciBJZDogQ04gPSBPQ1NQIFJFU1BPTkRFUiwgQyA9IEtaCiAgICBQcm9kdWNlZCBBdDogSnVuICAzIDEyOjAyOjM4IDIwMjIgR01UCiAgICBSZXNwb25zZXM6CiAgICBDZXJ0aWZpY2F0ZSBJRDoKICAgICAgSGFzaCBBbGdvcml0aG06IHNoYTI1NgogICAgICBJc3N1ZXIgTmFtZSBIYXNoOiA3RjYyRkY4RDMwMDYwMzE1MEI1RjQzQjNCOUVERTIzNEZFMTYwQkVBNUVBMDBERjVGNkYyNDNCMDlDMTAwREQ2CiAgICAgIElzc3VlciBLZXkgSGFzaDogMTA4NDAwMERGQTdBNTRGOEU5MTg0Mjg0NzU1Q0NEN0E2ODAzN0JGNTc5NzA2RDg2NjA2NUZBNThERDQwNjJEMgogICAgICBTZXJpYWwgTnVtYmVyOiAzQjU2RjA0N0YwMzM0RDdFODYwNDVGM0M0MTAxM0YzOTMzQThDNzY2CiAgICBDZXJ0IFN0YXR1czogZ29vZAogICAgVGhpcyBVcGRhdGU6IEp1biAgMyAxMjowMjozOCAyMDIyIEdNVAoKICAgIFJlc3BvbnNlIEV4dGVuc2lvbnM6CiAgICAgICAgT0NTUCBOb25jZTogCiAgICAgICAgICAgIDA0MTA4RUM4MjI0NzA4QUU0MERFNDJCRTA0NjMxNjUxREU3NAogICAgICAgIHZhbGlkOiAKICAgICAgICAgICAgLi4KICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IEdPU1QgUiAzNC4xMC0yMDE1IHdpdGggR09TVCBSIDM0LjExLTIwMTUgKDUxMiBiaXQpCiAgICAgICAgIDUxOmNhOjNiOmQ1OjA5OmY0OjdiOmViOjM0OmM4OjhkOmQwOmRkOjUwOjQ5OjU1OjBiOmFhOgogICAgICAgICBlODplMDo4MDo2MTo5ZTo2MjpmYzo2Nzo5ODpkMDo4ZTo1MDpmNzo0MzplMTo4YjozZTo0NzoKICAgICAgICAgZTc6ODQ6ZTE6OGQ6MmE6ODA6MzI6MTY6MjE6N2E6MWE6MWY6MmI6NzI6MjM6OWE6NGY6OTI6CiAgICAgICAgIDE1OmJiOjRhOmRlOjEwOmY0OjNhOjIyOmRkOjFkOjUxOjc1OmMxOmE4OjU2OjA3OmVmOjIzOgogICAgICAgICAyMDo0ODpkZjpiMDo5OTo3MDo1Nzo1MTo2MTpmYTozNjowYjoyNjo0ODpmYjo3Njo0MTpiYjoKICAgICAgICAgNDg6NzI6NGM6ZWE6ZWY6ZGY6N2E6N2Y6NzY6YTU6ZGM6YWE6NjU6YTQ6NTI6ODk6OGU6ZWY6CiAgICAgICAgIGM5OmU4OjFiOjlmOjNmOjEwOjViOjUwOmE1OmVhOjM3OmZhOmEzOmFkOmJkOjRjOmZmOjAyOgogICAgICAgICBiMToxNApDZXJ0aWZpY2F0ZToKICAgIERhdGE6CiAgICAgICAgVmVyc2lvbjogMyAoMHgyKQogICAgICAgIFNlcmlhbCBOdW1iZXI6CiAgICAgICAgICAgIDZhOjdiOmQxOjQ1OjgwOjlhOmVjOjZkOjMzOjMyOmNiOmUyOmY0OjJiOmUyOmZiOmIyOmZiOmI4OmM1CiAgICAgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogR09TVCBSIDM0LjEwLTIwMTUgd2l0aCBHT1NUIFIgMzQuMTEtMjAxNSAoNTEyIGJpdCkKICAgICAgICBJc3N1ZXI6IEM9S1osIENOPVx4RDJceEIwXHhEMFx4OUJceEQwXHhBMlx4RDBceEEyXHhEMFx4QUJceEQyXHg5QSBceEQwXHg5QVx4RDBceEEzXHhEM1x4OThceEQwXHg5Qlx4RDBceDkwXHhEMFx4OURceEQwXHg5NFx4RDBceEFCXHhEMFx4QTBceEQwXHhBM1x4RDBceEE4XHhEMFx4QUIgXHhEMFx4OUVceEQwXHhBMFx4RDBceEEyXHhEMFx4OTBceEQwXHg5Qlx4RDBceEFCXHhEMlx4OUEgKEdPU1QpIFRFU1QgMjAyMgogICAgICAgIFZhbGlkaXR5CiAgICAgICAgICAgIE5vdCBCZWZvcmU6IE1heSAyMyAyMTozMzo1MiAyMDIyIEdNVAogICAgICAgICAgICBOb3QgQWZ0ZXIgOiBTZXAgMjAgMjE6MzM6NTIgMjAyMiBHTVQKICAgICAgICBTdWJqZWN0OiBDTj1PQ1NQIFJFU1BPTkRFUiwgQz1LWgogICAgICAgIFN1YmplY3QgUHVibGljIEtleSBJbmZvOgogICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogR09TVCBSIDM0LjEwLTIwMTUgd2l0aCA1MTIgYml0IG1vZHVsdXMKICAgICAgICAgICAgICAgIFB1YmxpYyBrZXk6CiAgICAgICAgICAgICAgICAgICBYOjRGRTRCQzAyM0FENUJFNDJDNTI4RjA5OTUxMjlCRjZENjAwOUUxRkYzOTM3NjJGMzNDMkFFMjNGN0FGMTRBNEJENEFDOTc0Mjk1RDdFOTg5MjA1MkQyMDhGNzVENzBCNTQ5RDlDQzlBRjYyMkRENjAxRTVCNjY4MkMxMDEzOUNFCiAgICAgICAgICAgICAgICAgICBZOjc5MzI2N0JFMUI5QUUwQzFEOEMxNkQ4QzRBMTgxOEE4QUFDMUQ2NkM0NDM1NDNCRDUwNUU2RTE5MzM4RTAzRDA4NTZDOTJCRTNEQkI1RjE2RTg0REQ1RTdEMTk0M0Q2NDYzNjYzQ0FCMEMwMjY0Q0JDODM5M0E3NEVDREQ2QkYwCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXIgc2V0OiBpZC1Hb3N0MzQxMC0yMDE1LTUxMi1QS0lHT1ZLWi1BLVBhcmFtU2V0CiAgICAgICAgWDUwOXYzIGV4dGVuc2lvbnM6CiAgICAgICAgICAgIFg1MDl2MyBLZXkgVXNhZ2U6IGNyaXRpY2FsCiAgICAgICAgICAgICAgICBEaWdpdGFsIFNpZ25hdHVyZQogICAgICAgICAgICBPQ1NQIE5vIENoZWNrOiAKCiAgICAgICAgICAgIFg1MDl2MyBFeHRlbmRlZCBLZXkgVXNhZ2U6IAogICAgICAgICAgICAgICAgT0NTUCBTaWduaW5nCiAgICAgICAgICAgIFg1MDl2MyBTdWJqZWN0IEtleSBJZGVudGlmaWVyOiAKICAgICAgICAgICAgICAgIDg1OkE0OkIwOkEyOjFEOkNEOjQ2OjVEOjZBOkMyOkYzOkI2OjhCOjJCOjlBOjRCOjk1Ojg0OkRFOjFFCiAgICAgICAgICAgIFg1MDl2MyBBdXRob3JpdHkgS2V5IElkZW50aWZpZXI6IAogICAgICAgICAgICAgICAga2V5aWQ6RDk6QkE6NzE6NUI6Mjk6RDU6NEM6Rjc6MDg6Njc6QTU6MzI6Q0I6NUY6NDM6RkQ6REU6QjQ6QjM6NDMKCiAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBHT1NUIFIgMzQuMTAtMjAxNSB3aXRoIEdPU1QgUiAzNC4xMS0yMDE1ICg1MTIgYml0KQogICAgICAgICA2YjpiYTpkOTplMTozYzowMzowNTowODo0Mzo4Nzo3MDo4MDozMjpmZDphMjo1OTowMzplZDoKICAgICAgICAgMDg6ZDI6NTk6YjY6Nzc6ZDI6MGE6NDQ6OGU6YjY6NDA6M2Q6Njk6NzM6ODA6MzU6ODI6ODM6CiAgICAgICAgIGViOjJiOmJjOjcyOjAwOmM1OjNiOjYyOmZiOjk1OjhkOjRmOjhhOjM0OmJjOmQzOmMyOjNjOgogICAgICAgICBkMDplMTo4ODphNzo3NTpjNTo3MTpmNTo1NTo2ODpmYzplNzo3YjowYjpmMjo0MjpmODo3MToKICAgICAgICAgMzE6NjA6Zjg6NTA6NTE6MmI6ZWM6YmE6MTY6YWM6NDI6OGI6MzQ6Yjc6MTU6OTM6ZTM6YTg6CiAgICAgICAgIGViOjllOjZiOjBkOmI3OjU5Ojk5OmZhOjdkOmJjOjczOmJiOmU1OjE4OjRjOmEyOmFmOjNmOgogICAgICAgICA2ZjoyZTowZToxYzo1NToxYjo5NDo3YzoyOTowZDo0NTphMzoxZTpkNzo5NTo3ZjowYzpkYjoKICAgICAgICAgYjU6NWUKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNrekNDQWZ1Z0F3SUJBZ0lVYW52UlJZQ2E3RzB6TXN2aTlDdmkrN0w3dU1Vd0RnWUtLb01PQXdvQkFRSUQKQWdVQU1GMHhDekFKQmdOVkJBWVRBa3RhTVU0d1RBWURWUVFEREVYU3NOQ2IwS0xRb3RDcjBwb2cwSnJRbzlPWQowSnZRa05DZDBKVFFxOUNnMEtQUXFOQ3JJTkNlMEtEUW90Q1EwSnZRcTlLYUlDaEhUMU5VS1NCVVJWTlVJREl3Ck1qSXdIaGNOTWpJd05USXpNakV6TXpVeVdoY05Nakl3T1RJd01qRXpNelV5V2pBbU1SY3dGUVlEVlFRRERBNVAKUTFOUUlGSkZVMUJQVGtSRlVqRUxNQWtHQTFVRUJoTUNTMW93Z2F3d0l3WUpLb01PQXdvQkFRSUNNQllHQ2lxRApEZ01LQVFFQ0FnRUdDQ3FERGdNS0FRTURBNEdFQUFTQmdNNDVBY0dDWmxzZVlOMGk5cHJNMlVtMWNGMzNDTkpTCklJbnAxNVZDbDZ6VVMwcnhlai9pS2p6ellqYzUvK0VKWUcyL0tWR1o4Q2pGUXI3Vk9nSzg1RS93YTkzc2REbzUKeU10a0FneXJQR1pqWkQyVTBlZlZUZWdXWDdzOXZwSnNoZEFEampNWmJsNVF2VU0xUkd6V3dhcW9HQmhLakczQgoyTUhnbWh1K1p6SjVvM2d3ZGpBT0JnTlZIUThCQWY4RUJBTUNCNEF3RHdZSkt3WUJCUVVITUFFRkJBSUZBREFUCkJnTlZIU1VFRERBS0JnZ3JCZ0VGQlFjRENUQWRCZ05WSFE0RUZnUVVoYVN3b2gzTlJsMXF3dk8yaXl1YVM1V0UKM2g0d0h3WURWUjBqQkJnd0ZvQVUyYnB4V3luVlRQY0laNlV5eTE5RC9kNjBzME13RGdZS0tvTU9Bd29CQVFJRApBZ1VBQTRHQkFHdTYyZUU4QXdVSVE0ZHdnREw5b2xrRDdRalNXYlozMGdwRWpyWkFQV2x6Z0RXQ2crc3J2SElBCnhUdGkrNVdOVDRvMHZOUENQTkRoaUtkMXhYSDFWV2o4NTNzTDhrTDRjVEZnK0ZCUksreTZGcXhDaXpTM0ZaUGoKcU91ZWF3MjNXWm42ZmJ4enUrVVlUS0t2UDI4dURoeFZHNVI4S1ExRm94N1hsWDhNMjdWZQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==

“правильный” квиток от старой версии калкана:
MIIFaDCCAYahgbkwgbYxCzAJBgNVBAYTAktaMRgwFgYDVQQLDA9CSU4xMjM0NTY3ODkwMjExWTBXBgNVBAMMUNCh0JXQoNCS0JjQoSDQn9Cg0J7QktCV0KDQmtCYINCe0J3Qm9CQ0JnQnSDQodCi0JDQotCj0KHQkCDQodCV0KDQotCY0KTQmNCa0JDQotCQMRgwFgYDVQQFEw9JSU4xMjM0NTY3ODkwMTExGDAWBgNVBAoMD9CQ0J4gItCi0JXQodCiIhgPMjAyMjA2MDExMjQwMzJaMIGAMH4waTANBglghkgBZQMEAgEFAAQgPs3haTgTlMdlR95aKKdfQtnKCwAQZCBYlj4s2qbsRL8EIIAtsgrFVIs/AB6ROMPF3pkH8rdVc/fzdgK9E9pLMMUmAhQsAwc7e9yIpRbhZ5t23LIWmOPf7YAAGA8yMDIyMDYwMTEyNDAzMlqhNDAyMB8GCSsGAQUFBzABAgQSBBCb1XZuD3Xt04e54BcfNLWaMA8GCSsGAQUFBzABCQQCBQAwDQYJKoMOAwoBAQECBQADQQC1rR0AF7me+L5YFKZMxELHBNwaFo9vsJa2KeFnOK58zR2yOxx1mUMQIF4HoxonD11WA+2gIcrIKYi9P+1Dq+ploIIDiDCCA4QwggOAMIIDKqADAgECAhRbbSnVkqWyCc0Q7b1AZlmAy7hxMjANBgkqgw4DCgEBAQIFADAuMQswCQYDVQQGEwJLWjEfMB0GA1UEAwwW0rDQmtCeIDMuMCAoR09TVCBURVNUKTAeFw0yMjAzMjUxMDQ1MjRaFw0yMzAzMjUxMDQ1MjRaMIG2MQswCQYDVQQGEwJLWjEYMBYGA1UECwwPQklOMTIzNDU2Nzg5MDIxMVkwVwYDVQQDDFDQodCV0KDQktCY0KEg0J/QoNCe0JLQldCg0JrQmCDQntCd0JvQkNCZ0J0g0KHQotCQ0KLQo9Ch0JAg0KHQldCg0KLQmNCk0JjQmtCQ0KLQkDEYMBYGA1UEBRMPSUlOMTIzNDU2Nzg5MDExMRgwFgYDVQQKDA/QkNCeICLQotCV0KHQoiIwbDAlBgkqgw4DCgEBAQEwGAYKKoMOAwoBAQEBAQYKKoMOAwoBAwEBAANDAARA9Pti3ihqujR/NFfR/+A8zowL433Hz5yyvEnYLJYiP/B1ur2SqvcQ6n9B+1wiMrUZQPqUOVuDsXBqMTc5SX4FwqOCAYUwggGBMBMGA1UdJQQMMAoGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFAe+0hxgCERWsCcV6Fc3Q0e711RQMB0GA1UdDgQWBBQmQni8mZoQrmq7hALEN2fRr0AfPTBYBgNVHR8EUTBPME2gS6BJhiJodHRwOi8vY3JsLnBraS5nb3Yua3ovbmNhX2dvc3QuY3JshiNodHRwOi8vY3JsMS5wa2kuZ292Lmt6L25jYV9nb3N0LmNybDBcBgNVHS4EVTBTMFGgT6BNhiRodHRwOi8vY3JsLnBraS5nb3Yua3ovbmNhX2RfZ29zdC5jcmyGJWh0dHA6Ly9jcmwxLnBraS5nb3Yua3ovbmNhX2RfZ29zdC5jcmwwYwYIKwYBBQUHAQEEVzBVMC8GCCsGAQUFBzAChiNodHRwOi8vcGtpLmdvdi5rei9jZXJ0L25jYV9nb3N0LmNlcjAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AucGtpLmdvdi5rejANBgkrBgEFBQcwAQUEADANBgkqgw4DCgEBAQIFAANBAKq78zNBPCMe8asSDWYQDamTeSsl3/c/tl0ynVslif5J8qEUgYGSoihJrr6sHMZO4J+4KnB/GFw28sBcxniXMSs=

Добрый день!
Спасибо за Ваше замечание. Исправили.
В следующем обновлении SDK выпустим с корректным выводом ответа OCSP-сервиса в формате BASE64.

Добрый день! Подскажите, пришло уведомление о выходе нового комплекта SDK, запросил SDK по ссылке через 15 минут после этого письма, в письме пришла ссылка на старый SDK. Когда будет доступен новый комплект SDK для скачивания?

и вопрос по быстродействию нового калкана (26.04.2022):

  1. хэш Gost34311_95 файла, размером около 100Мб, с помощью нового Калкана вычисляется 33-34 секунды (проверял x86 и x64), а если заменить калкан на старый (10.02.2022), то 15-17 секунд. Проверил на тестовой утилите (x86) в том числе, результат тот же самый. Почему он теперь считаться в 2 раза дольше?
  2. хэш GostR3411_2015 (512) для того же файла в x86 он считается 33-34 сек, а для x64 - около 15 сек. Тут дело в оптимизации хэширования под x64?

Вопрос по SDK решен, попробовал через час после письма - пришла ссылка на новый SDK

проверил - теперь все хорошо

Остались вопросы по уменьшению скорости хэширования больших файлов после обновления Kalkan

Добрый день!
Нашли и исправили. Благодарим за замечание.
В следующем обновлении выйдет исправленная версия