Вызов стороннего поставщика услуг криптографии из Microsoft Word для цифровой подписи

Я занимаюсь разработкой сторонней библиотеки DLL (CSP) и хочу интегрировать ее с Microsoft Windows. Основная цель этой разработки - вызвать наши криптографические функции, такие как цифровая подпись и проверка подписи, из инструментов Office, таких как word, excel и т. Д. Здесь я сталкиваюсь со следующими проблемами.

1) Я разработал CSP DLL, подписал и зарегистрировал его в записях реестра. Это работает нормально, так как мы протестировали тестовое приложение, загрузив наш cpacquirecontext и другие крипто API. Здесь мы предоставляем имя CSP "XYZ" в тестовом приложении, чтобы тестовое приложение правильно идентифицировало нашу dll и соответственно вызывало функции.

2) После этого теперь мы хотим вызвать наш API CSP dll от Microsoft word для работы с цифровой подписью. Для этого, какие настройки / конфигурации необходимо выполнить, чтобы обойти Microsoft CSP по умолчанию и вызвать нашу csp dll для цифровой подписи. пожалуйста, помогите мне в решении этой проблемы.

2 ответа

Чтобы сделать сертификаты, хранящиеся в вашем CSP, пригодными для использования Office и другими приложениями для операций с цифровой подписью, вам необходимо зарегистрировать эти сертификаты в хранилище сертификатов "MY" Windows, используя CertAddEncodedCertificateToStore, а затем обновить свойство CERT_KEY_PROV_INFO_PROP_ID результирующего CERT_CONTEXT с помощью CertSetCerty в качестве сертификата. чтобы указать свое имя CSP и контейнер, в котором находится ключ сертификата.

Я написал небольшую программу командной строки, которая использует этот метод для загрузки всех сертификатов, хранящихся в данном CSP, в хранилище сертификатов "MY". Он также предлагает возможность удаления сертификатов из "МОЕГО" хранилища сертификатов, что полезно, когда сертификаты больше не нужны / недоступны. Вы можете получить его исходный код по https://www.idrix.fr/Root/Samples/LoadCertToStore.cpp.

Я надеюсь, это поможет.

У меня такая же ситуация, как и у вас.
Мой CSP отлично работает с тестовыми приложениями и MS Office 2007, но не работает с MS Office 2010 и 2013.
Это проблема MS Office:

Office 2010 не поддерживает определенные сертификаты в среде Windows 7 или Windows Vista. В частности, эти неподдерживаемые сертификаты используют закрытые ключи, которые хранятся сторонним поставщиком криптографических услуг (CSP). Поэтому документ Office 2010 не может быть подписан с использованием криптографического API (CAPI).

Вы можете загрузить пакет исправлений Office 2010 (Mso-x-none) здесь.

Для MS Office 2013, кажется, вам нужен пакет обновления 1.

Другие вопросы по тегам