Жичкин Опубликовано 4 Сентября 2020 Жалоба Поделиться Опубликовано 4 Сентября 2020 Нужно создать откреплённую подпись в формате Base64 к произвольному тексту с использованием Crypto API CNG. Всё это нужно для взаимодействия с "Честный знак", маркировка лекарственных препаратов. Для создания подписи необходимо использовать функцию BCryptEncrypt и закрытый ключ сертификата (private key). В последовательности вызовов дошёл до функции BCryptImportKeyPair, чтобы получить закрытый ключ. https://docs.microsoft.com/en-us/windows/win32/seccng/encrypting-data-with-cng#encrypting-data-with-cng В итоге сломался на параметре pbInput - The address of a buffer that contains the key BLOB to import. Не могу понять как мне получить адрес этого самого буфера, который содержит BLOB ключа для импорта. По идее надо использовать BCryptExportKey ... Однако в то же самое время у меня уже есть структура CERT_CONTEXT, которая содержит данные всего сертификата, в том числе закрытый ключ, в поле pbCertEncoded (массив байт). Структура CERT_CONTEXT была получена при помощи вызовов CertEnumCertificatesInStore на хранилище сертификатов. Прошу помочь примерами кода (лучше всего на C# PInvoke) или дать последовательность вызовов функций. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Vintik Опубликовано 9 Сентября 2020 Жалоба Поделиться Опубликовано 9 Сентября 2020 Думаю вы не по адресу, если только заплатите им хотя бы 500 т.р. что то задут, а так забудьте. Лучше попробуйте поискать ответ на форуме КриптоПро и использовать их криптопровайдер, окупится с полна лицензия. Они как ни как CSP делают именно для таких случаев, а для Инфотекса это "побочный" продукт и работает не плохо, но узко для своих целей. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.