Go позволяет довольно легко получить дескриптор хранилища сертификатов Personal Windows для текущего пользователя с помощью следующей команды:
store, err := syscall.CertOpenSystemStore(0, syscall.StringToUTF16Ptr("MY")) // Personal Certificates
Однако, когда я пытаюсь получить хранилище сертификатов Local Machine Personal, я всегда заканчиваюили с пустым дескриптором хранилища, и с исключением или ошибкой, что хранилище не было найдено, CRYPT_E_NOT_FOUND.
В качестве альтернативы вы можете использовать этот метод:
store, err := syscall.CertOpenStore(
windows.CERT_STORE_PROV_SYSTEM,
0,
0,
windows.CERT_SYSTEM_STORE_CURRENT_USER,
uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr("MY"))))
Но когда я меняю значения для хранилища локального компьютера, я начинаю видеть ошибки, указанные выше.
Каквы успешно получаете хранилище сертификатов локального компьютера в Windows с помощью Go?