To get the real error, you probably need to call GetLastError() ( https://docs.microsoft.com/en-us/windows/desktop/api/wincrypt/nf-wincrypt-certopenstore#return-value ).
In principle, Go code should behave the same as C++ code, but syscall.CertOpenStore is a wrapper which doesn't seem to use GetLastError() as the doc requests and we can only guess what the C++ code you refer to does (as CertOpenStore itself doesn't return an error code). On Tuesday, March 19, 2019 at 2:04:13 PM UTC-7, Sam wrote: > > It turns out that the call I mentioned will indeed retrieve the Local > Machine Personal Cert Store but you must run as Administrator on Windows to > do so. Otherwise, the store is not found and no error is returned even > though it is an access denied error (when run as C/C++). > > On Tuesday, March 19, 2019 at 11:52:50 AM UTC-7, Sam wrote: >> >> I'd like to add that I have tried this but the store handle returned is >> zero >> store, err := syscall.CertOpenStore( >> windows.CERT_STORE_PROV_SYSTEM_W, >> 0, >> 0, >> windows.CERT_SYSTEM_STORE_LOCAL_MACHINE, >> uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr("MY")))) >> >> >> On Tuesday, March 19, 2019 at 11:34:02 AM UTC-7, Sam wrote: >>> >>> It seems like I should be able to use this: >>> >>> store, err := syscall.CertOpenStore(syscall.CERT_STORE_PROV_MEMORY, 0, >>> 0, windows.CERT_SYSTEM_STORE_LOCAL_MACHINE, uintptr(unsafe.Pointer(my))) >>> >>> but I think I am having trouble with the last argument. I only receive >>> the CRYPT_E_NOT_FOUND error. I have tried to use the method from here: >>> https://github.com/google/certtostore/blob/master/certtostore_windows.go >>> but I don't know if it's out of date because it is the one that lead me to >>> the error above. >>> >>> Has anyone done this before? How did you accomplish it? >>> >> -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.