Go 允许您使用以下命令轻松检索当前用户的个人 Windows 证书存储句柄:
store, err := syscall.CertOpenSystemStore(0, syscall.StringToUTF16Ptr("MY")) // Personal Certificates
但是,当我尝试检索本地计算机个人证书存储时,我总是会得到一个空的存储句柄,以及找不到存储的异常或错误,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"))))
但是当我换出本地机器存储的值时,我开始看到上面提到的错误。
您如何使用 Go 在 Windows 中成功检索本地计算机证书存储?