Как заставить SignerSignEx2 использовать хранилище машинных ключей вместо пользовательского?

В настоящее время я пытаюсь использовать SignerSignEx2 для подписи DLL с помощью Authenticode. Для этой цели я создал закрытый ключ и поместил его в хранилище ключей компьютера (чтобы файл хранился в C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys).

К сожалению, кажется, что функция SignerSignEx2 ищет ключи только в пользовательском хранилище (когда я помещаю ключи в пользовательское хранилище (так что файл хранится в C:\Users{user}\AppData\Roaming\Microsoft\ Crypto\RSA{user-id}) работает нормально).

Кто-нибудь знает способ вызвать SignerSignEx2 таким образом, чтобы он использовал хранилище ключей компьютера вместо хранилища пользователя?

По сути, функциональность должна быть аналогична CspParameters, который позволяет использовать CspProviderFlags.UseMachineKeyStore для управления используемым хранилищем ключей.


person chrischu    schedule 13.09.2016    source источник


Ответы (1)


Я считаю, что вам нужен флаг CERT_SYSTEM_STORE_LOCAL_MACHINE при открытии хранилища сертификатов, чтобы получить то, что вам нужно.

person avzhatkin    schedule 12.07.2017