Тема: Ошибка 0xE0700019 при проверке подписи
API СКАД Сигнатура предлагает методы
1. VCERT_SignHashMem принимающий хэш-функцию данных в виде набора байт и возвращающий массив байт ЭП вычисленный по этой хэш-функции.
2. VCERT_VerifyHashMem принимающий на вход кодированный сертификат предполагаемого подписчика, хэш-функцию данных и массив байт ЭП.
Следующая последовательность операций завершается успехом:
1. Выполняем VCERT_SignHashMem, получаем массив из 64 байт
2. Получаем сертификат с помощью функциии VCERT_FindCert с использованием флага FLAG_FIND_MY.
3. Используем полученный сертификат и подпись для проверки в качестве параметров в функции VCERT_VerifyHashMem.
Следующая последовательность операций завершается ошибкой 0xE0700019:
1. Выполняем VCER_SignFile, получаем файл подписи.
2. Извлекаем из файла подписи подпись (последние 64 байт в файле).
3. Извлекаем из файла подписи хеш сертификата которым был подписан файл и по нему ищем сертификат с помощью функции VCERT_FindCert.
4. Используем полученный сертификат и подпись для проверки в качестве параметров в функции VCERT_VerifyHashMem.
В результате возникают вопросы:
1. Что не так во втором кейсе?
2. Как из файла подписи следует извлекать массив байт для его последующего использования в качестве ЭП в методе VCERT_VerifyHashMem?
Также, хотелось бы узнать, возможно ли с помощью API СКАД Сигнатура из байт ЭП полученных в результате выполнения VCERT_SignHashMem создать файл подписи в формате ASN.1?
Основная задача: проверять и формировать файлы подписи с использованием только результата хеш-функции файла данных.