windows: correct struct name and bool type

This fixes the name of a struct to match Microsoft's documentation.

It also reverts a change I made in the last patchset of CL 285714. The
idea there was that a Go bool would suffice for a win32 BOOL, because of
little endian. But in fact, a value of 0xff000000 would be treated as
false by Go but true by C, which is a problem. So this changes to using
a vanilla int32 type, which matches the C "int" used in the Microsoft

Change-Id: Id7cd306e916b3754e8dfe32bf11ec30cad3a13b4
Trust: Jason A. Donenfeld <>
Run-TryBot: Jason A. Donenfeld <>
TryBot-Result: Go Bot <>
Reviewed-by: Brad Fitzpatrick <>
diff --git a/windows/types_windows.go b/windows/types_windows.go
index 1f51bb8..fd42607 100644
--- a/windows/types_windows.go
+++ b/windows/types_windows.go
@@ -1192,7 +1192,7 @@
 type CertExtension struct {
 	ObjId    *byte
-	Critical bool
+	Critical int32
 	Value    CryptObjidBlob
@@ -1332,7 +1332,7 @@
 	ExtraPolicyStatus Pointer
-type CertPolicy struct {
+type CertPolicyInfo struct {
 	Identifier      *byte
 	CountQualifiers uint32
 	Qualifiers      *CertPolicyQualifierInfo
@@ -1340,7 +1340,7 @@
 type CertPoliciesInfo struct {
 	Count       uint32
-	PolicyInfos *CertPolicy
+	PolicyInfos *CertPolicyInfo
 type CertPolicyQualifierInfo struct {