github.com/kbinani/win@v0.3.0/crypt32.go (about) 1 // This file was automatically generated by https://github.com/kbinani/win/blob/generator/internal/cmd/gen/gen.go 2 // go run internal/cmd/gen/gen.go 3 4 // +build windows 5 6 package win 7 8 import ( 9 "unsafe" 10 ) 11 12 var ( 13 // Library 14 libcrypt32 uintptr 15 16 // Functions 17 certAddCRLContextToStore uintptr 18 certAddCRLLinkToStore uintptr 19 certAddCTLContextToStore uintptr 20 certAddCTLLinkToStore uintptr 21 certAddCertificateContextToStore uintptr 22 certAddCertificateLinkToStore uintptr 23 certAddEncodedCRLToStore uintptr 24 certAddEncodedCTLToStore uintptr 25 certAddEncodedCertificateToStore uintptr 26 certAddEncodedCertificateToSystemStore uintptr 27 certAddEnhancedKeyUsageIdentifier uintptr 28 certAddSerializedElementToStore uintptr 29 certAddStoreToCollection uintptr 30 certAlgIdToOID uintptr 31 certCloseStore uintptr 32 certCompareCertificate uintptr 33 certCompareCertificateName uintptr 34 certCompareIntegerBlob uintptr 35 certControlStore uintptr 36 certCreateCRLContext uintptr 37 certCreateCTLContext uintptr 38 certCreateCTLEntryFromCertificateContextProperties uintptr 39 certCreateCertificateContext uintptr 40 certDeleteCRLFromStore uintptr 41 certDeleteCTLFromStore uintptr 42 certDeleteCertificateFromStore uintptr 43 certDuplicateCRLContext uintptr 44 certDuplicateCTLContext uintptr 45 certDuplicateCertificateContext uintptr 46 certDuplicateStore uintptr 47 certEnumCRLContextProperties uintptr 48 certEnumCRLsInStore uintptr 49 certEnumCTLContextProperties uintptr 50 certEnumCTLsInStore uintptr 51 certEnumCertificateContextProperties uintptr 52 certEnumCertificatesInStore uintptr 53 certEnumSubjectInSortedCTL uintptr 54 certFindAttribute uintptr 55 certFindCRLInStore uintptr 56 certFindCTLInStore uintptr 57 certFindCertificateInCRL uintptr 58 certFindCertificateInStore uintptr 59 certFindExtension uintptr 60 certFindSubjectInCTL uintptr 61 certFindSubjectInSortedCTL uintptr 62 certFreeCRLContext uintptr 63 certFreeCTLContext uintptr 64 certFreeCertificateContext uintptr 65 certGetCRLContextProperty uintptr 66 certGetCRLFromStore uintptr 67 certGetCTLContextProperty uintptr 68 certGetCertificateContextProperty uintptr 69 certGetIntendedKeyUsage uintptr 70 certGetIssuerCertificateFromStore uintptr 71 certGetNameString uintptr 72 certGetStoreProperty uintptr 73 certGetSubjectCertificateFromStore uintptr 74 certGetValidUsages uintptr 75 certIsValidCRLForCertificate uintptr 76 certNameToStr uintptr 77 certOIDToAlgId uintptr 78 certRDNValueToStr uintptr 79 certRemoveEnhancedKeyUsageIdentifier uintptr 80 certRemoveStoreFromCollection uintptr 81 certSaveStore uintptr 82 certSerializeCRLStoreElement uintptr 83 certSerializeCTLStoreElement uintptr 84 certSerializeCertificateStoreElement uintptr 85 certSetCRLContextProperty uintptr 86 certSetCTLContextProperty uintptr 87 certSetCertificateContextPropertiesFromCTLEntry uintptr 88 certSetCertificateContextProperty uintptr 89 certSetStoreProperty uintptr 90 certStrToName uintptr 91 certUnregisterPhysicalStore uintptr 92 certUnregisterSystemStore uintptr 93 certVerifyCRLRevocation uintptr 94 certVerifyCRLTimeValidity uintptr 95 certVerifySubjectCertificateContext uintptr 96 certVerifyTimeValidity uintptr 97 certVerifyValidityNesting uintptr 98 cryptBinaryToString uintptr 99 cryptDecodeObject uintptr 100 cryptEncodeObject uintptr 101 cryptExportPKCS8 uintptr 102 cryptFindCertificateKeyProvInfo uintptr 103 cryptFindLocalizedName uintptr 104 cryptFormatObject uintptr 105 cryptGetKeyIdentifierProperty uintptr 106 cryptGetMessageSignerCount uintptr 107 cryptGetOIDFunctionValue uintptr 108 cryptMemAlloc uintptr 109 cryptMemFree uintptr 110 cryptMemRealloc uintptr 111 cryptMsgCalculateEncodedLength uintptr 112 cryptMsgClose uintptr 113 cryptMsgControl uintptr 114 cryptMsgDuplicate uintptr 115 cryptMsgGetAndVerifySigner uintptr 116 cryptMsgGetParam uintptr 117 cryptMsgUpdate uintptr 118 cryptProtectMemory uintptr 119 cryptQueryObject uintptr 120 cryptRegisterDefaultOIDFunction uintptr 121 cryptRegisterOIDFunction uintptr 122 cryptSIPRemoveProvider uintptr 123 cryptSIPRetrieveSubjectGuid uintptr 124 cryptSIPRetrieveSubjectGuidForCatalogFile uintptr 125 cryptSetKeyIdentifierProperty uintptr 126 cryptSetOIDFunctionValue uintptr 127 cryptStringToBinary uintptr 128 cryptUnprotectMemory uintptr 129 cryptUnregisterDefaultOIDFunction uintptr 130 cryptUnregisterOIDFunction uintptr 131 pFXExportCertStore uintptr 132 pFXExportCertStoreEx uintptr 133 pFXImportCertStore uintptr 134 pFXIsPFXBlob uintptr 135 pFXVerifyPassword uintptr 136 i_CertUpdateStore uintptr 137 i_CryptAllocTls uintptr 138 i_CryptDetachTls uintptr 139 i_CryptFindLruEntry uintptr 140 i_CryptFindLruEntryData uintptr 141 i_CryptFreeTls uintptr 142 i_CryptGetDefaultCryptProv uintptr 143 i_CryptGetOssGlobal uintptr 144 i_CryptGetTls uintptr 145 i_CryptInstallOssGlobal uintptr 146 i_CryptReadTrustedPublisherDWORDValueFromRegistry uintptr 147 i_CryptSetTls uintptr 148 ) 149 150 func init() { 151 // Library 152 libcrypt32 = doLoadLibrary("crypt32.dll") 153 154 // Functions 155 certAddCRLContextToStore = doGetProcAddress(libcrypt32, "CertAddCRLContextToStore") 156 certAddCRLLinkToStore = doGetProcAddress(libcrypt32, "CertAddCRLLinkToStore") 157 certAddCTLContextToStore = doGetProcAddress(libcrypt32, "CertAddCTLContextToStore") 158 certAddCTLLinkToStore = doGetProcAddress(libcrypt32, "CertAddCTLLinkToStore") 159 certAddCertificateContextToStore = doGetProcAddress(libcrypt32, "CertAddCertificateContextToStore") 160 certAddCertificateLinkToStore = doGetProcAddress(libcrypt32, "CertAddCertificateLinkToStore") 161 certAddEncodedCRLToStore = doGetProcAddress(libcrypt32, "CertAddEncodedCRLToStore") 162 certAddEncodedCTLToStore = doGetProcAddress(libcrypt32, "CertAddEncodedCTLToStore") 163 certAddEncodedCertificateToStore = doGetProcAddress(libcrypt32, "CertAddEncodedCertificateToStore") 164 certAddEncodedCertificateToSystemStore = doGetProcAddress(libcrypt32, "CertAddEncodedCertificateToSystemStoreW") 165 certAddEnhancedKeyUsageIdentifier = doGetProcAddress(libcrypt32, "CertAddEnhancedKeyUsageIdentifier") 166 certAddSerializedElementToStore = doGetProcAddress(libcrypt32, "CertAddSerializedElementToStore") 167 certAddStoreToCollection = doGetProcAddress(libcrypt32, "CertAddStoreToCollection") 168 certAlgIdToOID = doGetProcAddress(libcrypt32, "CertAlgIdToOID") 169 certCloseStore = doGetProcAddress(libcrypt32, "CertCloseStore") 170 certCompareCertificate = doGetProcAddress(libcrypt32, "CertCompareCertificate") 171 certCompareCertificateName = doGetProcAddress(libcrypt32, "CertCompareCertificateName") 172 certCompareIntegerBlob = doGetProcAddress(libcrypt32, "CertCompareIntegerBlob") 173 certControlStore = doGetProcAddress(libcrypt32, "CertControlStore") 174 certCreateCRLContext = doGetProcAddress(libcrypt32, "CertCreateCRLContext") 175 certCreateCTLContext = doGetProcAddress(libcrypt32, "CertCreateCTLContext") 176 certCreateCTLEntryFromCertificateContextProperties = doGetProcAddress(libcrypt32, "CertCreateCTLEntryFromCertificateContextProperties") 177 certCreateCertificateContext = doGetProcAddress(libcrypt32, "CertCreateCertificateContext") 178 certDeleteCRLFromStore = doGetProcAddress(libcrypt32, "CertDeleteCRLFromStore") 179 certDeleteCTLFromStore = doGetProcAddress(libcrypt32, "CertDeleteCTLFromStore") 180 certDeleteCertificateFromStore = doGetProcAddress(libcrypt32, "CertDeleteCertificateFromStore") 181 certDuplicateCRLContext = doGetProcAddress(libcrypt32, "CertDuplicateCRLContext") 182 certDuplicateCTLContext = doGetProcAddress(libcrypt32, "CertDuplicateCTLContext") 183 certDuplicateCertificateContext = doGetProcAddress(libcrypt32, "CertDuplicateCertificateContext") 184 certDuplicateStore = doGetProcAddress(libcrypt32, "CertDuplicateStore") 185 certEnumCRLContextProperties = doGetProcAddress(libcrypt32, "CertEnumCRLContextProperties") 186 certEnumCRLsInStore = doGetProcAddress(libcrypt32, "CertEnumCRLsInStore") 187 certEnumCTLContextProperties = doGetProcAddress(libcrypt32, "CertEnumCTLContextProperties") 188 certEnumCTLsInStore = doGetProcAddress(libcrypt32, "CertEnumCTLsInStore") 189 certEnumCertificateContextProperties = doGetProcAddress(libcrypt32, "CertEnumCertificateContextProperties") 190 certEnumCertificatesInStore = doGetProcAddress(libcrypt32, "CertEnumCertificatesInStore") 191 certEnumSubjectInSortedCTL = doGetProcAddress(libcrypt32, "CertEnumSubjectInSortedCTL") 192 certFindAttribute = doGetProcAddress(libcrypt32, "CertFindAttribute") 193 certFindCRLInStore = doGetProcAddress(libcrypt32, "CertFindCRLInStore") 194 certFindCTLInStore = doGetProcAddress(libcrypt32, "CertFindCTLInStore") 195 certFindCertificateInCRL = doGetProcAddress(libcrypt32, "CertFindCertificateInCRL") 196 certFindCertificateInStore = doGetProcAddress(libcrypt32, "CertFindCertificateInStore") 197 certFindExtension = doGetProcAddress(libcrypt32, "CertFindExtension") 198 certFindSubjectInCTL = doGetProcAddress(libcrypt32, "CertFindSubjectInCTL") 199 certFindSubjectInSortedCTL = doGetProcAddress(libcrypt32, "CertFindSubjectInSortedCTL") 200 certFreeCRLContext = doGetProcAddress(libcrypt32, "CertFreeCRLContext") 201 certFreeCTLContext = doGetProcAddress(libcrypt32, "CertFreeCTLContext") 202 certFreeCertificateContext = doGetProcAddress(libcrypt32, "CertFreeCertificateContext") 203 certGetCRLContextProperty = doGetProcAddress(libcrypt32, "CertGetCRLContextProperty") 204 certGetCRLFromStore = doGetProcAddress(libcrypt32, "CertGetCRLFromStore") 205 certGetCTLContextProperty = doGetProcAddress(libcrypt32, "CertGetCTLContextProperty") 206 certGetCertificateContextProperty = doGetProcAddress(libcrypt32, "CertGetCertificateContextProperty") 207 certGetIntendedKeyUsage = doGetProcAddress(libcrypt32, "CertGetIntendedKeyUsage") 208 certGetIssuerCertificateFromStore = doGetProcAddress(libcrypt32, "CertGetIssuerCertificateFromStore") 209 certGetNameString = doGetProcAddress(libcrypt32, "CertGetNameStringW") 210 certGetStoreProperty = doGetProcAddress(libcrypt32, "CertGetStoreProperty") 211 certGetSubjectCertificateFromStore = doGetProcAddress(libcrypt32, "CertGetSubjectCertificateFromStore") 212 certGetValidUsages = doGetProcAddress(libcrypt32, "CertGetValidUsages") 213 certIsValidCRLForCertificate = doGetProcAddress(libcrypt32, "CertIsValidCRLForCertificate") 214 certNameToStr = doGetProcAddress(libcrypt32, "CertNameToStrW") 215 certOIDToAlgId = doGetProcAddress(libcrypt32, "CertOIDToAlgId") 216 certRDNValueToStr = doGetProcAddress(libcrypt32, "CertRDNValueToStrW") 217 certRemoveEnhancedKeyUsageIdentifier = doGetProcAddress(libcrypt32, "CertRemoveEnhancedKeyUsageIdentifier") 218 certRemoveStoreFromCollection = doGetProcAddress(libcrypt32, "CertRemoveStoreFromCollection") 219 certSaveStore = doGetProcAddress(libcrypt32, "CertSaveStore") 220 certSerializeCRLStoreElement = doGetProcAddress(libcrypt32, "CertSerializeCRLStoreElement") 221 certSerializeCTLStoreElement = doGetProcAddress(libcrypt32, "CertSerializeCTLStoreElement") 222 certSerializeCertificateStoreElement = doGetProcAddress(libcrypt32, "CertSerializeCertificateStoreElement") 223 certSetCRLContextProperty = doGetProcAddress(libcrypt32, "CertSetCRLContextProperty") 224 certSetCTLContextProperty = doGetProcAddress(libcrypt32, "CertSetCTLContextProperty") 225 certSetCertificateContextPropertiesFromCTLEntry = doGetProcAddress(libcrypt32, "CertSetCertificateContextPropertiesFromCTLEntry") 226 certSetCertificateContextProperty = doGetProcAddress(libcrypt32, "CertSetCertificateContextProperty") 227 certSetStoreProperty = doGetProcAddress(libcrypt32, "CertSetStoreProperty") 228 certStrToName = doGetProcAddress(libcrypt32, "CertStrToNameW") 229 certUnregisterPhysicalStore = doGetProcAddress(libcrypt32, "CertUnregisterPhysicalStore") 230 certUnregisterSystemStore = doGetProcAddress(libcrypt32, "CertUnregisterSystemStore") 231 certVerifyCRLRevocation = doGetProcAddress(libcrypt32, "CertVerifyCRLRevocation") 232 certVerifyCRLTimeValidity = doGetProcAddress(libcrypt32, "CertVerifyCRLTimeValidity") 233 certVerifySubjectCertificateContext = doGetProcAddress(libcrypt32, "CertVerifySubjectCertificateContext") 234 certVerifyTimeValidity = doGetProcAddress(libcrypt32, "CertVerifyTimeValidity") 235 certVerifyValidityNesting = doGetProcAddress(libcrypt32, "CertVerifyValidityNesting") 236 cryptBinaryToString = doGetProcAddress(libcrypt32, "CryptBinaryToStringW") 237 cryptDecodeObject = doGetProcAddress(libcrypt32, "CryptDecodeObject") 238 cryptEncodeObject = doGetProcAddress(libcrypt32, "CryptEncodeObject") 239 cryptExportPKCS8 = doGetProcAddress(libcrypt32, "CryptExportPKCS8") 240 cryptFindCertificateKeyProvInfo = doGetProcAddress(libcrypt32, "CryptFindCertificateKeyProvInfo") 241 cryptFindLocalizedName = doGetProcAddress(libcrypt32, "CryptFindLocalizedName") 242 cryptFormatObject = doGetProcAddress(libcrypt32, "CryptFormatObject") 243 cryptGetKeyIdentifierProperty = doGetProcAddress(libcrypt32, "CryptGetKeyIdentifierProperty") 244 cryptGetMessageSignerCount = doGetProcAddress(libcrypt32, "CryptGetMessageSignerCount") 245 cryptGetOIDFunctionValue = doGetProcAddress(libcrypt32, "CryptGetOIDFunctionValue") 246 cryptMemAlloc = doGetProcAddress(libcrypt32, "CryptMemAlloc") 247 cryptMemFree = doGetProcAddress(libcrypt32, "CryptMemFree") 248 cryptMemRealloc = doGetProcAddress(libcrypt32, "CryptMemRealloc") 249 cryptMsgCalculateEncodedLength = doGetProcAddress(libcrypt32, "CryptMsgCalculateEncodedLength") 250 cryptMsgClose = doGetProcAddress(libcrypt32, "CryptMsgClose") 251 cryptMsgControl = doGetProcAddress(libcrypt32, "CryptMsgControl") 252 cryptMsgDuplicate = doGetProcAddress(libcrypt32, "CryptMsgDuplicate") 253 cryptMsgGetAndVerifySigner = doGetProcAddress(libcrypt32, "CryptMsgGetAndVerifySigner") 254 cryptMsgGetParam = doGetProcAddress(libcrypt32, "CryptMsgGetParam") 255 cryptMsgUpdate = doGetProcAddress(libcrypt32, "CryptMsgUpdate") 256 cryptProtectMemory = doGetProcAddress(libcrypt32, "CryptProtectMemory") 257 cryptQueryObject = doGetProcAddress(libcrypt32, "CryptQueryObject") 258 cryptRegisterDefaultOIDFunction = doGetProcAddress(libcrypt32, "CryptRegisterDefaultOIDFunction") 259 cryptRegisterOIDFunction = doGetProcAddress(libcrypt32, "CryptRegisterOIDFunction") 260 cryptSIPRemoveProvider = doGetProcAddress(libcrypt32, "CryptSIPRemoveProvider") 261 cryptSIPRetrieveSubjectGuid = doGetProcAddress(libcrypt32, "CryptSIPRetrieveSubjectGuid") 262 cryptSIPRetrieveSubjectGuidForCatalogFile = doGetProcAddress(libcrypt32, "CryptSIPRetrieveSubjectGuidForCatalogFile") 263 cryptSetKeyIdentifierProperty = doGetProcAddress(libcrypt32, "CryptSetKeyIdentifierProperty") 264 cryptSetOIDFunctionValue = doGetProcAddress(libcrypt32, "CryptSetOIDFunctionValue") 265 cryptStringToBinary = doGetProcAddress(libcrypt32, "CryptStringToBinaryW") 266 cryptUnprotectMemory = doGetProcAddress(libcrypt32, "CryptUnprotectMemory") 267 cryptUnregisterDefaultOIDFunction = doGetProcAddress(libcrypt32, "CryptUnregisterDefaultOIDFunction") 268 cryptUnregisterOIDFunction = doGetProcAddress(libcrypt32, "CryptUnregisterOIDFunction") 269 pFXExportCertStore = doGetProcAddress(libcrypt32, "PFXExportCertStore") 270 pFXExportCertStoreEx = doGetProcAddress(libcrypt32, "PFXExportCertStoreEx") 271 pFXImportCertStore = doGetProcAddress(libcrypt32, "PFXImportCertStore") 272 pFXIsPFXBlob = doGetProcAddress(libcrypt32, "PFXIsPFXBlob") 273 pFXVerifyPassword = doGetProcAddress(libcrypt32, "PFXVerifyPassword") 274 i_CertUpdateStore = doGetProcAddress(libcrypt32, "I_CertUpdateStore") 275 i_CryptAllocTls = doGetProcAddress(libcrypt32, "I_CryptAllocTls") 276 i_CryptDetachTls = doGetProcAddress(libcrypt32, "I_CryptDetachTls") 277 i_CryptFindLruEntry = doGetProcAddress(libcrypt32, "I_CryptFindLruEntry") 278 i_CryptFindLruEntryData = doGetProcAddress(libcrypt32, "I_CryptFindLruEntryData") 279 i_CryptFreeTls = doGetProcAddress(libcrypt32, "I_CryptFreeTls") 280 i_CryptGetDefaultCryptProv = doGetProcAddress(libcrypt32, "I_CryptGetDefaultCryptProv") 281 i_CryptGetOssGlobal = doGetProcAddress(libcrypt32, "I_CryptGetOssGlobal") 282 i_CryptGetTls = doGetProcAddress(libcrypt32, "I_CryptGetTls") 283 i_CryptInstallOssGlobal = doGetProcAddress(libcrypt32, "I_CryptInstallOssGlobal") 284 i_CryptReadTrustedPublisherDWORDValueFromRegistry = doGetProcAddress(libcrypt32, "I_CryptReadTrustedPublisherDWORDValueFromRegistry") 285 i_CryptSetTls = doGetProcAddress(libcrypt32, "I_CryptSetTls") 286 } 287 288 func CertAddCRLContextToStore(hCertStore HCERTSTORE, pCrlContext PCCRL_CONTEXT, dwAddDisposition DWORD, ppStoreContext *PCCRL_CONTEXT) bool { 289 ret1 := syscall6(certAddCRLContextToStore, 4, 290 uintptr(hCertStore), 291 uintptr(unsafe.Pointer(pCrlContext)), 292 uintptr(dwAddDisposition), 293 uintptr(unsafe.Pointer(ppStoreContext)), 294 0, 295 0) 296 return ret1 != 0 297 } 298 299 func CertAddCRLLinkToStore(hCertStore HCERTSTORE, pCrlContext PCCRL_CONTEXT, dwAddDisposition DWORD, ppStoreContext *PCCRL_CONTEXT) bool { 300 ret1 := syscall6(certAddCRLLinkToStore, 4, 301 uintptr(hCertStore), 302 uintptr(unsafe.Pointer(pCrlContext)), 303 uintptr(dwAddDisposition), 304 uintptr(unsafe.Pointer(ppStoreContext)), 305 0, 306 0) 307 return ret1 != 0 308 } 309 310 func CertAddCTLContextToStore(hCertStore HCERTSTORE, pCtlContext /*const*/ PCCTL_CONTEXT, dwAddDisposition DWORD, ppStoreContext *PCCTL_CONTEXT) bool { 311 ret1 := syscall6(certAddCTLContextToStore, 4, 312 uintptr(hCertStore), 313 uintptr(unsafe.Pointer(pCtlContext)), 314 uintptr(dwAddDisposition), 315 uintptr(unsafe.Pointer(ppStoreContext)), 316 0, 317 0) 318 return ret1 != 0 319 } 320 321 func CertAddCTLLinkToStore(hCertStore HCERTSTORE, pCtlContext /*const*/ PCCTL_CONTEXT, dwAddDisposition DWORD, ppStoreContext *PCCTL_CONTEXT) bool { 322 ret1 := syscall6(certAddCTLLinkToStore, 4, 323 uintptr(hCertStore), 324 uintptr(unsafe.Pointer(pCtlContext)), 325 uintptr(dwAddDisposition), 326 uintptr(unsafe.Pointer(ppStoreContext)), 327 0, 328 0) 329 return ret1 != 0 330 } 331 332 func CertAddCertificateContextToStore(hCertStore HCERTSTORE, pCertContext /*const*/ PCCERT_CONTEXT, dwAddDisposition DWORD, ppStoreContext *PCCERT_CONTEXT) bool { 333 ret1 := syscall6(certAddCertificateContextToStore, 4, 334 uintptr(hCertStore), 335 uintptr(unsafe.Pointer(pCertContext)), 336 uintptr(dwAddDisposition), 337 uintptr(unsafe.Pointer(ppStoreContext)), 338 0, 339 0) 340 return ret1 != 0 341 } 342 343 func CertAddCertificateLinkToStore(hCertStore HCERTSTORE, pCertContext /*const*/ PCCERT_CONTEXT, dwAddDisposition DWORD, ppStoreContext *PCCERT_CONTEXT) bool { 344 ret1 := syscall6(certAddCertificateLinkToStore, 4, 345 uintptr(hCertStore), 346 uintptr(unsafe.Pointer(pCertContext)), 347 uintptr(dwAddDisposition), 348 uintptr(unsafe.Pointer(ppStoreContext)), 349 0, 350 0) 351 return ret1 != 0 352 } 353 354 func CertAddEncodedCRLToStore(hCertStore HCERTSTORE, dwCertEncodingType DWORD, pbCrlEncoded /*const*/ *byte, cbCrlEncoded DWORD, dwAddDisposition DWORD, ppCrlContext *PCCRL_CONTEXT) bool { 355 ret1 := syscall6(certAddEncodedCRLToStore, 6, 356 uintptr(hCertStore), 357 uintptr(dwCertEncodingType), 358 uintptr(unsafe.Pointer(pbCrlEncoded)), 359 uintptr(cbCrlEncoded), 360 uintptr(dwAddDisposition), 361 uintptr(unsafe.Pointer(ppCrlContext))) 362 return ret1 != 0 363 } 364 365 func CertAddEncodedCTLToStore(hCertStore HCERTSTORE, dwMsgAndCertEncodingType DWORD, pbCtlEncoded /*const*/ *byte, cbCtlEncoded DWORD, dwAddDisposition DWORD, ppCtlContext *PCCTL_CONTEXT) bool { 366 ret1 := syscall6(certAddEncodedCTLToStore, 6, 367 uintptr(hCertStore), 368 uintptr(dwMsgAndCertEncodingType), 369 uintptr(unsafe.Pointer(pbCtlEncoded)), 370 uintptr(cbCtlEncoded), 371 uintptr(dwAddDisposition), 372 uintptr(unsafe.Pointer(ppCtlContext))) 373 return ret1 != 0 374 } 375 376 func CertAddEncodedCertificateToStore(hCertStore HCERTSTORE, dwCertEncodingType DWORD, pbCertEncoded /*const*/ *byte, cbCertEncoded DWORD, dwAddDisposition DWORD, ppCertContext *PCCERT_CONTEXT) bool { 377 ret1 := syscall6(certAddEncodedCertificateToStore, 6, 378 uintptr(hCertStore), 379 uintptr(dwCertEncodingType), 380 uintptr(unsafe.Pointer(pbCertEncoded)), 381 uintptr(cbCertEncoded), 382 uintptr(dwAddDisposition), 383 uintptr(unsafe.Pointer(ppCertContext))) 384 return ret1 != 0 385 } 386 387 func CertAddEncodedCertificateToSystemStore(szCertStoreName string, pbCertEncoded /*const*/ *byte, cbCertEncoded DWORD) bool { 388 szCertStoreNameStr := unicode16FromString(szCertStoreName) 389 ret1 := syscall3(certAddEncodedCertificateToSystemStore, 3, 390 uintptr(unsafe.Pointer(&szCertStoreNameStr[0])), 391 uintptr(unsafe.Pointer(pbCertEncoded)), 392 uintptr(cbCertEncoded)) 393 return ret1 != 0 394 } 395 396 func CertAddEnhancedKeyUsageIdentifier(pCertContext /*const*/ PCCERT_CONTEXT, pszUsageIdentifier /*const*/ LPCSTR) bool { 397 ret1 := syscall3(certAddEnhancedKeyUsageIdentifier, 2, 398 uintptr(unsafe.Pointer(pCertContext)), 399 uintptr(unsafe.Pointer(pszUsageIdentifier)), 400 0) 401 return ret1 != 0 402 } 403 404 func CertAddSerializedElementToStore(hCertStore HCERTSTORE, pbElement /*const*/ *byte, cbElement DWORD, dwAddDisposition DWORD, dwFlags DWORD, dwContextTypeFlags DWORD, pdwContextType *uint32, ppvContext /*const*/ uintptr) bool { 405 ret1 := syscall9(certAddSerializedElementToStore, 8, 406 uintptr(hCertStore), 407 uintptr(unsafe.Pointer(pbElement)), 408 uintptr(cbElement), 409 uintptr(dwAddDisposition), 410 uintptr(dwFlags), 411 uintptr(dwContextTypeFlags), 412 uintptr(unsafe.Pointer(pdwContextType)), 413 ppvContext, 414 0) 415 return ret1 != 0 416 } 417 418 func CertAddStoreToCollection(hCollectionStore HCERTSTORE, hSiblingStore HCERTSTORE, dwUpdateFlags DWORD, dwPriority DWORD) bool { 419 ret1 := syscall6(certAddStoreToCollection, 4, 420 uintptr(hCollectionStore), 421 uintptr(hSiblingStore), 422 uintptr(dwUpdateFlags), 423 uintptr(dwPriority), 424 0, 425 0) 426 return ret1 != 0 427 } 428 429 func CertAlgIdToOID(dwAlgId DWORD) LPCSTR { 430 ret1 := syscall3(certAlgIdToOID, 1, 431 uintptr(dwAlgId), 432 0, 433 0) 434 return (LPCSTR)(unsafe.Pointer(ret1)) 435 } 436 437 func CertCloseStore(hCertStore HCERTSTORE, dwFlags DWORD) bool { 438 ret1 := syscall3(certCloseStore, 2, 439 uintptr(hCertStore), 440 uintptr(dwFlags), 441 0) 442 return ret1 != 0 443 } 444 445 func CertCompareCertificate(dwCertEncodingType DWORD, pCertId1 PCERT_INFO, pCertId2 PCERT_INFO) bool { 446 ret1 := syscall3(certCompareCertificate, 3, 447 uintptr(dwCertEncodingType), 448 uintptr(unsafe.Pointer(pCertId1)), 449 uintptr(unsafe.Pointer(pCertId2))) 450 return ret1 != 0 451 } 452 453 func CertCompareCertificateName(dwCertEncodingType DWORD, pCertName1 PCERT_NAME_BLOB, pCertName2 PCERT_NAME_BLOB) bool { 454 ret1 := syscall3(certCompareCertificateName, 3, 455 uintptr(dwCertEncodingType), 456 uintptr(unsafe.Pointer(pCertName1)), 457 uintptr(unsafe.Pointer(pCertName2))) 458 return ret1 != 0 459 } 460 461 func CertCompareIntegerBlob(pInt1 PCRYPT_INTEGER_BLOB, pInt2 PCRYPT_INTEGER_BLOB) bool { 462 ret1 := syscall3(certCompareIntegerBlob, 2, 463 uintptr(unsafe.Pointer(pInt1)), 464 uintptr(unsafe.Pointer(pInt2)), 465 0) 466 return ret1 != 0 467 } 468 469 // TODO: Unknown type(s): PCERT_PUBLIC_KEY_INFO 470 // func CertComparePublicKeyInfo(dwCertEncodingType DWORD, pPublicKey1 PCERT_PUBLIC_KEY_INFO, pPublicKey2 PCERT_PUBLIC_KEY_INFO) bool 471 472 func CertControlStore(hCertStore HCERTSTORE, dwFlags DWORD, dwCtrlType DWORD, pvCtrlPara /*const*/ uintptr) bool { 473 ret1 := syscall6(certControlStore, 4, 474 uintptr(hCertStore), 475 uintptr(dwFlags), 476 uintptr(dwCtrlType), 477 pvCtrlPara, 478 0, 479 0) 480 return ret1 != 0 481 } 482 483 func CertCreateCRLContext(dwCertEncodingType DWORD, pbCrlEncoded /*const*/ *byte, cbCrlEncoded DWORD) PCCRL_CONTEXT { 484 ret1 := syscall3(certCreateCRLContext, 3, 485 uintptr(dwCertEncodingType), 486 uintptr(unsafe.Pointer(pbCrlEncoded)), 487 uintptr(cbCrlEncoded)) 488 return (PCCRL_CONTEXT)(unsafe.Pointer(ret1)) 489 } 490 491 func CertCreateCTLContext(dwMsgAndCertEncodingType DWORD, pbCtlEncoded /*const*/ *byte, cbCtlEncoded DWORD) PCCTL_CONTEXT { 492 ret1 := syscall3(certCreateCTLContext, 3, 493 uintptr(dwMsgAndCertEncodingType), 494 uintptr(unsafe.Pointer(pbCtlEncoded)), 495 uintptr(cbCtlEncoded)) 496 return (PCCTL_CONTEXT)(unsafe.Pointer(ret1)) 497 } 498 499 func CertCreateCTLEntryFromCertificateContextProperties(pCertContext /*const*/ PCCERT_CONTEXT, cOptAttr DWORD, rgOptAttr PCRYPT_ATTRIBUTE, dwFlags DWORD, pvReserved uintptr, pCtlEntry PCTL_ENTRY, pcbCtlEntry *uint32) bool { 500 ret1 := syscall9(certCreateCTLEntryFromCertificateContextProperties, 7, 501 uintptr(unsafe.Pointer(pCertContext)), 502 uintptr(cOptAttr), 503 uintptr(unsafe.Pointer(rgOptAttr)), 504 uintptr(dwFlags), 505 pvReserved, 506 uintptr(unsafe.Pointer(pCtlEntry)), 507 uintptr(unsafe.Pointer(pcbCtlEntry)), 508 0, 509 0) 510 return ret1 != 0 511 } 512 513 // TODO: Unknown type(s): HCERTCHAINENGINE *, PCERT_CHAIN_ENGINE_CONFIG 514 // func CertCreateCertificateChainEngine(pConfig PCERT_CHAIN_ENGINE_CONFIG, phChainEngine HCERTCHAINENGINE *) bool 515 516 func CertCreateCertificateContext(dwCertEncodingType DWORD, pbCertEncoded /*const*/ *byte, cbCertEncoded DWORD) PCCERT_CONTEXT { 517 ret1 := syscall3(certCreateCertificateContext, 3, 518 uintptr(dwCertEncodingType), 519 uintptr(unsafe.Pointer(pbCertEncoded)), 520 uintptr(cbCertEncoded)) 521 return (PCCERT_CONTEXT)(unsafe.Pointer(ret1)) 522 } 523 524 // TODO: Unknown type(s): HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, PCERT_EXTENSIONS, PCRYPT_ALGORITHM_IDENTIFIER, PCRYPT_KEY_PROV_INFO, PSYSTEMTIME 525 // func CertCreateSelfSignCertificate(hCryptProvOrNCryptKey HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, pSubjectIssuerBlob PCERT_NAME_BLOB, dwFlags DWORD, pKeyProvInfo PCRYPT_KEY_PROV_INFO, pSignatureAlgorithm PCRYPT_ALGORITHM_IDENTIFIER, pStartTime PSYSTEMTIME, pEndTime PSYSTEMTIME, pExtensions PCERT_EXTENSIONS) PCCERT_CONTEXT 526 527 func CertDeleteCRLFromStore(pCrlContext PCCRL_CONTEXT) bool { 528 ret1 := syscall3(certDeleteCRLFromStore, 1, 529 uintptr(unsafe.Pointer(pCrlContext)), 530 0, 531 0) 532 return ret1 != 0 533 } 534 535 func CertDeleteCTLFromStore(pCtlContext /*const*/ PCCTL_CONTEXT) bool { 536 ret1 := syscall3(certDeleteCTLFromStore, 1, 537 uintptr(unsafe.Pointer(pCtlContext)), 538 0, 539 0) 540 return ret1 != 0 541 } 542 543 func CertDeleteCertificateFromStore(pCertContext /*const*/ PCCERT_CONTEXT) bool { 544 ret1 := syscall3(certDeleteCertificateFromStore, 1, 545 uintptr(unsafe.Pointer(pCertContext)), 546 0, 547 0) 548 return ret1 != 0 549 } 550 551 func CertDuplicateCRLContext(pCrlContext PCCRL_CONTEXT) PCCRL_CONTEXT { 552 ret1 := syscall3(certDuplicateCRLContext, 1, 553 uintptr(unsafe.Pointer(pCrlContext)), 554 0, 555 0) 556 return (PCCRL_CONTEXT)(unsafe.Pointer(ret1)) 557 } 558 559 func CertDuplicateCTLContext(pCtlContext /*const*/ PCCTL_CONTEXT) PCCTL_CONTEXT { 560 ret1 := syscall3(certDuplicateCTLContext, 1, 561 uintptr(unsafe.Pointer(pCtlContext)), 562 0, 563 0) 564 return (PCCTL_CONTEXT)(unsafe.Pointer(ret1)) 565 } 566 567 // TODO: Unknown type(s): PCCERT_CHAIN_CONTEXT 568 // func CertDuplicateCertificateChain(pChainContext PCCERT_CHAIN_CONTEXT) PCCERT_CHAIN_CONTEXT 569 570 func CertDuplicateCertificateContext(pCertContext /*const*/ PCCERT_CONTEXT) PCCERT_CONTEXT { 571 ret1 := syscall3(certDuplicateCertificateContext, 1, 572 uintptr(unsafe.Pointer(pCertContext)), 573 0, 574 0) 575 return (PCCERT_CONTEXT)(unsafe.Pointer(ret1)) 576 } 577 578 func CertDuplicateStore(hCertStore HCERTSTORE) HCERTSTORE { 579 ret1 := syscall3(certDuplicateStore, 1, 580 uintptr(hCertStore), 581 0, 582 0) 583 return HCERTSTORE(ret1) 584 } 585 586 func CertEnumCRLContextProperties(pCrlContext PCCRL_CONTEXT, dwPropId DWORD) DWORD { 587 ret1 := syscall3(certEnumCRLContextProperties, 2, 588 uintptr(unsafe.Pointer(pCrlContext)), 589 uintptr(dwPropId), 590 0) 591 return DWORD(ret1) 592 } 593 594 func CertEnumCRLsInStore(hCertStore HCERTSTORE, pPrevCrlContext PCCRL_CONTEXT) PCCRL_CONTEXT { 595 ret1 := syscall3(certEnumCRLsInStore, 2, 596 uintptr(hCertStore), 597 uintptr(unsafe.Pointer(pPrevCrlContext)), 598 0) 599 return (PCCRL_CONTEXT)(unsafe.Pointer(ret1)) 600 } 601 602 func CertEnumCTLContextProperties(pCtlContext /*const*/ PCCTL_CONTEXT, dwPropId DWORD) DWORD { 603 ret1 := syscall3(certEnumCTLContextProperties, 2, 604 uintptr(unsafe.Pointer(pCtlContext)), 605 uintptr(dwPropId), 606 0) 607 return DWORD(ret1) 608 } 609 610 func CertEnumCTLsInStore(hCertStore HCERTSTORE, pPrevCtlContext /*const*/ PCCTL_CONTEXT) PCCTL_CONTEXT { 611 ret1 := syscall3(certEnumCTLsInStore, 2, 612 uintptr(hCertStore), 613 uintptr(unsafe.Pointer(pPrevCtlContext)), 614 0) 615 return (PCCTL_CONTEXT)(unsafe.Pointer(ret1)) 616 } 617 618 func CertEnumCertificateContextProperties(pCertContext /*const*/ PCCERT_CONTEXT, dwPropId DWORD) DWORD { 619 ret1 := syscall3(certEnumCertificateContextProperties, 2, 620 uintptr(unsafe.Pointer(pCertContext)), 621 uintptr(dwPropId), 622 0) 623 return DWORD(ret1) 624 } 625 626 func CertEnumCertificatesInStore(hCertStore HCERTSTORE, pPrevCertContext /*const*/ PCCERT_CONTEXT) PCCERT_CONTEXT { 627 ret1 := syscall3(certEnumCertificatesInStore, 2, 628 uintptr(hCertStore), 629 uintptr(unsafe.Pointer(pPrevCertContext)), 630 0) 631 return (PCCERT_CONTEXT)(unsafe.Pointer(ret1)) 632 } 633 634 // TODO: Unknown type(s): PFN_CERT_ENUM_PHYSICAL_STORE 635 // func CertEnumPhysicalStore(pvSystemStore /*const*/ uintptr, dwFlags DWORD, pvArg uintptr, pfnEnum PFN_CERT_ENUM_PHYSICAL_STORE) bool 636 637 func CertEnumSubjectInSortedCTL(pCtlContext /*const*/ PCCTL_CONTEXT, ppvNextSubject uintptr, pSubjectIdentifier PCRYPT_DER_BLOB, pEncodedAttributes PCRYPT_DER_BLOB) bool { 638 ret1 := syscall6(certEnumSubjectInSortedCTL, 4, 639 uintptr(unsafe.Pointer(pCtlContext)), 640 ppvNextSubject, 641 uintptr(unsafe.Pointer(pSubjectIdentifier)), 642 uintptr(unsafe.Pointer(pEncodedAttributes)), 643 0, 644 0) 645 return ret1 != 0 646 } 647 648 // TODO: Unknown type(s): PFN_CERT_ENUM_SYSTEM_STORE 649 // func CertEnumSystemStore(dwFlags DWORD, pvSystemStoreLocationPara uintptr, pvArg uintptr, pfnEnum PFN_CERT_ENUM_SYSTEM_STORE) bool 650 651 // TODO: Unknown type(s): PFN_CERT_ENUM_SYSTEM_STORE_LOCATION 652 // func CertEnumSystemStoreLocation(dwFlags DWORD, pvArg uintptr, pfnEnum PFN_CERT_ENUM_SYSTEM_STORE_LOCATION) bool 653 654 func CertFindAttribute(pszObjId /*const*/ LPCSTR, cAttr DWORD, rgAttr *CRYPT_ATTRIBUTE) PCRYPT_ATTRIBUTE { 655 ret1 := syscall3(certFindAttribute, 3, 656 uintptr(unsafe.Pointer(pszObjId)), 657 uintptr(cAttr), 658 uintptr(unsafe.Pointer(rgAttr))) 659 return (PCRYPT_ATTRIBUTE)(unsafe.Pointer(ret1)) 660 } 661 662 func CertFindCRLInStore(hCertStore HCERTSTORE, dwCertEncodingType DWORD, dwFindFlags DWORD, dwFindType DWORD, pvFindPara /*const*/ uintptr, pPrevCrlContext PCCRL_CONTEXT) PCCRL_CONTEXT { 663 ret1 := syscall6(certFindCRLInStore, 6, 664 uintptr(hCertStore), 665 uintptr(dwCertEncodingType), 666 uintptr(dwFindFlags), 667 uintptr(dwFindType), 668 pvFindPara, 669 uintptr(unsafe.Pointer(pPrevCrlContext))) 670 return (PCCRL_CONTEXT)(unsafe.Pointer(ret1)) 671 } 672 673 func CertFindCTLInStore(hCertStore HCERTSTORE, dwMsgAndCertEncodingType DWORD, dwFindFlags DWORD, dwFindType DWORD, pvFindPara /*const*/ uintptr, pPrevCtlContext /*const*/ PCCTL_CONTEXT) PCCTL_CONTEXT { 674 ret1 := syscall6(certFindCTLInStore, 6, 675 uintptr(hCertStore), 676 uintptr(dwMsgAndCertEncodingType), 677 uintptr(dwFindFlags), 678 uintptr(dwFindType), 679 pvFindPara, 680 uintptr(unsafe.Pointer(pPrevCtlContext))) 681 return (PCCTL_CONTEXT)(unsafe.Pointer(ret1)) 682 } 683 684 func CertFindCertificateInCRL(pCert /*const*/ PCCERT_CONTEXT, pCrlContext PCCRL_CONTEXT, dwFlags DWORD, pvReserved uintptr, ppCrlEntry *PCRL_ENTRY) bool { 685 ret1 := syscall6(certFindCertificateInCRL, 5, 686 uintptr(unsafe.Pointer(pCert)), 687 uintptr(unsafe.Pointer(pCrlContext)), 688 uintptr(dwFlags), 689 pvReserved, 690 uintptr(unsafe.Pointer(ppCrlEntry)), 691 0) 692 return ret1 != 0 693 } 694 695 func CertFindCertificateInStore(hCertStore HCERTSTORE, dwCertEncodingType DWORD, dwFindFlags DWORD, dwFindType DWORD, pvFindPara /*const*/ uintptr, pPrevCertContext /*const*/ PCCERT_CONTEXT) PCCERT_CONTEXT { 696 ret1 := syscall6(certFindCertificateInStore, 6, 697 uintptr(hCertStore), 698 uintptr(dwCertEncodingType), 699 uintptr(dwFindFlags), 700 uintptr(dwFindType), 701 pvFindPara, 702 uintptr(unsafe.Pointer(pPrevCertContext))) 703 return (PCCERT_CONTEXT)(unsafe.Pointer(ret1)) 704 } 705 706 // TODO: Unknown type(s): PCCERT_CHAIN_CONTEXT 707 // func CertFindChainInStore(hCertStore HCERTSTORE, dwCertEncodingType DWORD, dwFindFlags DWORD, dwFindType DWORD, pvFindPara /*const*/ uintptr, pPrevChainContext PCCERT_CHAIN_CONTEXT) PCCERT_CHAIN_CONTEXT 708 709 func CertFindExtension(pszObjId /*const*/ LPCSTR, cExtensions DWORD, rgExtensions *CERT_EXTENSION) PCERT_EXTENSION { 710 ret1 := syscall3(certFindExtension, 3, 711 uintptr(unsafe.Pointer(pszObjId)), 712 uintptr(cExtensions), 713 uintptr(unsafe.Pointer(rgExtensions))) 714 return (PCERT_EXTENSION)(unsafe.Pointer(ret1)) 715 } 716 717 // TODO: Unknown type(s): PCERT_NAME_INFO, PCERT_RDN_ATTR 718 // func CertFindRDNAttr(pszObjId /*const*/ LPCSTR, pName PCERT_NAME_INFO) PCERT_RDN_ATTR 719 720 func CertFindSubjectInCTL(dwEncodingType DWORD, dwSubjectType DWORD, pvSubject uintptr, pCtlContext /*const*/ PCCTL_CONTEXT, dwFlags DWORD) PCTL_ENTRY { 721 ret1 := syscall6(certFindSubjectInCTL, 5, 722 uintptr(dwEncodingType), 723 uintptr(dwSubjectType), 724 pvSubject, 725 uintptr(unsafe.Pointer(pCtlContext)), 726 uintptr(dwFlags), 727 0) 728 return (PCTL_ENTRY)(unsafe.Pointer(ret1)) 729 } 730 731 func CertFindSubjectInSortedCTL(pSubjectIdentifier PCRYPT_DATA_BLOB, pCtlContext /*const*/ PCCTL_CONTEXT, dwFlags DWORD, pvReserved uintptr, pEncodedAttributes PCRYPT_DER_BLOB) bool { 732 ret1 := syscall6(certFindSubjectInSortedCTL, 5, 733 uintptr(unsafe.Pointer(pSubjectIdentifier)), 734 uintptr(unsafe.Pointer(pCtlContext)), 735 uintptr(dwFlags), 736 pvReserved, 737 uintptr(unsafe.Pointer(pEncodedAttributes)), 738 0) 739 return ret1 != 0 740 } 741 742 func CertFreeCRLContext(pCrlContext PCCRL_CONTEXT) bool { 743 ret1 := syscall3(certFreeCRLContext, 1, 744 uintptr(unsafe.Pointer(pCrlContext)), 745 0, 746 0) 747 return ret1 != 0 748 } 749 750 func CertFreeCTLContext(pCtlContext /*const*/ PCCTL_CONTEXT) bool { 751 ret1 := syscall3(certFreeCTLContext, 1, 752 uintptr(unsafe.Pointer(pCtlContext)), 753 0, 754 0) 755 return ret1 != 0 756 } 757 758 // TODO: Unknown type(s): PCCERT_CHAIN_CONTEXT 759 // func CertFreeCertificateChain(pChainContext PCCERT_CHAIN_CONTEXT) 760 761 // TODO: Unknown type(s): HCERTCHAINENGINE 762 // func CertFreeCertificateChainEngine(hChainEngine HCERTCHAINENGINE) 763 764 func CertFreeCertificateContext(pCertContext /*const*/ PCCERT_CONTEXT) bool { 765 ret1 := syscall3(certFreeCertificateContext, 1, 766 uintptr(unsafe.Pointer(pCertContext)), 767 0, 768 0) 769 return ret1 != 0 770 } 771 772 func CertGetCRLContextProperty(pCrlContext PCCRL_CONTEXT, dwPropId DWORD, pvData uintptr, pcbData *uint32) bool { 773 ret1 := syscall6(certGetCRLContextProperty, 4, 774 uintptr(unsafe.Pointer(pCrlContext)), 775 uintptr(dwPropId), 776 pvData, 777 uintptr(unsafe.Pointer(pcbData)), 778 0, 779 0) 780 return ret1 != 0 781 } 782 783 func CertGetCRLFromStore(hCertStore HCERTSTORE, pIssuerContext /*const*/ PCCERT_CONTEXT, pPrevCrlContext PCCRL_CONTEXT, pdwFlags *uint32) PCCRL_CONTEXT { 784 ret1 := syscall6(certGetCRLFromStore, 4, 785 uintptr(hCertStore), 786 uintptr(unsafe.Pointer(pIssuerContext)), 787 uintptr(unsafe.Pointer(pPrevCrlContext)), 788 uintptr(unsafe.Pointer(pdwFlags)), 789 0, 790 0) 791 return (PCCRL_CONTEXT)(unsafe.Pointer(ret1)) 792 } 793 794 func CertGetCTLContextProperty(pCtlContext /*const*/ PCCTL_CONTEXT, dwPropId DWORD, pvData uintptr, pcbData *uint32) bool { 795 ret1 := syscall6(certGetCTLContextProperty, 4, 796 uintptr(unsafe.Pointer(pCtlContext)), 797 uintptr(dwPropId), 798 pvData, 799 uintptr(unsafe.Pointer(pcbData)), 800 0, 801 0) 802 return ret1 != 0 803 } 804 805 // TODO: Unknown type(s): HCERTCHAINENGINE, PCCERT_CHAIN_CONTEXT *, PCERT_CHAIN_PARA 806 // func CertGetCertificateChain(hChainEngine HCERTCHAINENGINE, pCertContext /*const*/ PCCERT_CONTEXT, pTime *FILETIME, hAdditionalStore HCERTSTORE, pChainPara PCERT_CHAIN_PARA, dwFlags DWORD, pvReserved LPVOID, ppChainContext PCCERT_CHAIN_CONTEXT *) bool 807 808 func CertGetCertificateContextProperty(pCertContext /*const*/ PCCERT_CONTEXT, dwPropId DWORD, pvData uintptr, pcbData *uint32) bool { 809 ret1 := syscall6(certGetCertificateContextProperty, 4, 810 uintptr(unsafe.Pointer(pCertContext)), 811 uintptr(dwPropId), 812 pvData, 813 uintptr(unsafe.Pointer(pcbData)), 814 0, 815 0) 816 return ret1 != 0 817 } 818 819 // TODO: Unknown type(s): PCERT_ENHKEY_USAGE 820 // func CertGetEnhancedKeyUsage(pCertContext /*const*/ PCCERT_CONTEXT, dwFlags DWORD, pUsage PCERT_ENHKEY_USAGE, pcbUsage *uint32) bool 821 822 func CertGetIntendedKeyUsage(dwCertEncodingType DWORD, pCertInfo PCERT_INFO, pbKeyUsage *byte, cbKeyUsage DWORD) bool { 823 ret1 := syscall6(certGetIntendedKeyUsage, 4, 824 uintptr(dwCertEncodingType), 825 uintptr(unsafe.Pointer(pCertInfo)), 826 uintptr(unsafe.Pointer(pbKeyUsage)), 827 uintptr(cbKeyUsage), 828 0, 829 0) 830 return ret1 != 0 831 } 832 833 func CertGetIssuerCertificateFromStore(hCertStore HCERTSTORE, pSubjectContext /*const*/ PCCERT_CONTEXT, pPrevIssuerContext /*const*/ PCCERT_CONTEXT, pdwFlags *uint32) PCCERT_CONTEXT { 834 ret1 := syscall6(certGetIssuerCertificateFromStore, 4, 835 uintptr(hCertStore), 836 uintptr(unsafe.Pointer(pSubjectContext)), 837 uintptr(unsafe.Pointer(pPrevIssuerContext)), 838 uintptr(unsafe.Pointer(pdwFlags)), 839 0, 840 0) 841 return (PCCERT_CONTEXT)(unsafe.Pointer(ret1)) 842 } 843 844 func CertGetNameString(pCertContext /*const*/ PCCERT_CONTEXT, dwType DWORD, dwFlags DWORD, pvTypePara uintptr, pszNameString LPWSTR, cchNameString DWORD) DWORD { 845 ret1 := syscall6(certGetNameString, 6, 846 uintptr(unsafe.Pointer(pCertContext)), 847 uintptr(dwType), 848 uintptr(dwFlags), 849 pvTypePara, 850 uintptr(unsafe.Pointer(pszNameString)), 851 uintptr(cchNameString)) 852 return DWORD(ret1) 853 } 854 855 // TODO: Unknown type(s): PCERT_PUBLIC_KEY_INFO 856 // func CertGetPublicKeyLength(dwCertEncodingType DWORD, pPublicKey PCERT_PUBLIC_KEY_INFO) DWORD 857 858 func CertGetStoreProperty(hCertStore HCERTSTORE, dwPropId DWORD, pvData uintptr, pcbData *uint32) bool { 859 ret1 := syscall6(certGetStoreProperty, 4, 860 uintptr(hCertStore), 861 uintptr(dwPropId), 862 pvData, 863 uintptr(unsafe.Pointer(pcbData)), 864 0, 865 0) 866 return ret1 != 0 867 } 868 869 func CertGetSubjectCertificateFromStore(hCertStore HCERTSTORE, dwCertEncodingType DWORD, pCertId PCERT_INFO) PCCERT_CONTEXT { 870 ret1 := syscall3(certGetSubjectCertificateFromStore, 3, 871 uintptr(hCertStore), 872 uintptr(dwCertEncodingType), 873 uintptr(unsafe.Pointer(pCertId))) 874 return (PCCERT_CONTEXT)(unsafe.Pointer(ret1)) 875 } 876 877 func CertGetValidUsages(cCerts DWORD, rghCerts *PCCERT_CONTEXT, cNumOIDs *int, rghOIDs *LPSTR, pcbOIDs *uint32) bool { 878 ret1 := syscall6(certGetValidUsages, 5, 879 uintptr(cCerts), 880 uintptr(unsafe.Pointer(rghCerts)), 881 uintptr(unsafe.Pointer(cNumOIDs)), 882 uintptr(unsafe.Pointer(rghOIDs)), 883 uintptr(unsafe.Pointer(pcbOIDs)), 884 0) 885 return ret1 != 0 886 } 887 888 // TODO: Unknown type(s): PCERT_RDN 889 // func CertIsRDNAttrsInCertificateName(dwCertEncodingType DWORD, dwFlags DWORD, pCertName PCERT_NAME_BLOB, pRDN PCERT_RDN) bool 890 891 func CertIsValidCRLForCertificate(pCert /*const*/ PCCERT_CONTEXT, pCrl PCCRL_CONTEXT, dwFlags DWORD, pvReserved uintptr) bool { 892 ret1 := syscall6(certIsValidCRLForCertificate, 4, 893 uintptr(unsafe.Pointer(pCert)), 894 uintptr(unsafe.Pointer(pCrl)), 895 uintptr(dwFlags), 896 pvReserved, 897 0, 898 0) 899 return ret1 != 0 900 } 901 902 func CertNameToStr(dwCertEncodingType DWORD, pName PCERT_NAME_BLOB, dwStrType DWORD, psz LPWSTR, csz DWORD) DWORD { 903 ret1 := syscall6(certNameToStr, 5, 904 uintptr(dwCertEncodingType), 905 uintptr(unsafe.Pointer(pName)), 906 uintptr(dwStrType), 907 uintptr(unsafe.Pointer(psz)), 908 uintptr(csz), 909 0) 910 return DWORD(ret1) 911 } 912 913 func CertOIDToAlgId(pszObjId /*const*/ LPCSTR) DWORD { 914 ret1 := syscall3(certOIDToAlgId, 1, 915 uintptr(unsafe.Pointer(pszObjId)), 916 0, 917 0) 918 return DWORD(ret1) 919 } 920 921 // TODO: Unknown type(s): HCRYPTPROV_LEGACY 922 // func CertOpenStore(lpszStoreProvider /*const*/ LPCSTR, dwEncodingType DWORD, hCryptProv HCRYPTPROV_LEGACY, dwFlags DWORD, pvPara /*const*/ uintptr) HCERTSTORE 923 924 // TODO: Unknown type(s): HCRYPTPROV_LEGACY 925 // func CertOpenSystemStore(hProv HCRYPTPROV_LEGACY, szSubsystemProtocol string) HCERTSTORE 926 927 func CertRDNValueToStr(dwValueType DWORD, pValue PCERT_RDN_VALUE_BLOB, psz LPWSTR, csz DWORD) DWORD { 928 ret1 := syscall6(certRDNValueToStr, 4, 929 uintptr(dwValueType), 930 uintptr(unsafe.Pointer(pValue)), 931 uintptr(unsafe.Pointer(psz)), 932 uintptr(csz), 933 0, 934 0) 935 return DWORD(ret1) 936 } 937 938 // TODO: Unknown type(s): PCERT_PHYSICAL_STORE_INFO 939 // func CertRegisterPhysicalStore(pvSystemStore /*const*/ uintptr, dwFlags DWORD, pwszStoreName string, pStoreInfo PCERT_PHYSICAL_STORE_INFO, pvReserved uintptr) bool 940 941 // TODO: Unknown type(s): PCERT_SYSTEM_STORE_INFO 942 // func CertRegisterSystemStore(pvSystemStore /*const*/ uintptr, dwFlags DWORD, pStoreInfo PCERT_SYSTEM_STORE_INFO, pvReserved uintptr) bool 943 944 func CertRemoveEnhancedKeyUsageIdentifier(pCertContext /*const*/ PCCERT_CONTEXT, pszUsageIdentifier /*const*/ LPCSTR) bool { 945 ret1 := syscall3(certRemoveEnhancedKeyUsageIdentifier, 2, 946 uintptr(unsafe.Pointer(pCertContext)), 947 uintptr(unsafe.Pointer(pszUsageIdentifier)), 948 0) 949 return ret1 != 0 950 } 951 952 func CertRemoveStoreFromCollection(hCollectionStore HCERTSTORE, hSiblingStore HCERTSTORE) { 953 syscall3(certRemoveStoreFromCollection, 2, 954 uintptr(hCollectionStore), 955 uintptr(hSiblingStore), 956 0) 957 } 958 959 // TODO: Unknown type(s): HCERTCHAINENGINE 960 // func CertResyncCertificateChainEngine(hChainEngine HCERTCHAINENGINE) bool 961 962 func CertSaveStore(hCertStore HCERTSTORE, dwEncodingType DWORD, dwSaveAs DWORD, dwSaveTo DWORD, pvSaveToPara uintptr, dwFlags DWORD) bool { 963 ret1 := syscall6(certSaveStore, 6, 964 uintptr(hCertStore), 965 uintptr(dwEncodingType), 966 uintptr(dwSaveAs), 967 uintptr(dwSaveTo), 968 pvSaveToPara, 969 uintptr(dwFlags)) 970 return ret1 != 0 971 } 972 973 func CertSerializeCRLStoreElement(pCrlContext PCCRL_CONTEXT, dwFlags DWORD, pbElement *byte, pcbElement *uint32) bool { 974 ret1 := syscall6(certSerializeCRLStoreElement, 4, 975 uintptr(unsafe.Pointer(pCrlContext)), 976 uintptr(dwFlags), 977 uintptr(unsafe.Pointer(pbElement)), 978 uintptr(unsafe.Pointer(pcbElement)), 979 0, 980 0) 981 return ret1 != 0 982 } 983 984 func CertSerializeCTLStoreElement(pCtlContext /*const*/ PCCTL_CONTEXT, dwFlags DWORD, pbElement *byte, pcbElement *uint32) bool { 985 ret1 := syscall6(certSerializeCTLStoreElement, 4, 986 uintptr(unsafe.Pointer(pCtlContext)), 987 uintptr(dwFlags), 988 uintptr(unsafe.Pointer(pbElement)), 989 uintptr(unsafe.Pointer(pcbElement)), 990 0, 991 0) 992 return ret1 != 0 993 } 994 995 func CertSerializeCertificateStoreElement(pCertContext /*const*/ PCCERT_CONTEXT, dwFlags DWORD, pbElement *byte, pcbElement *uint32) bool { 996 ret1 := syscall6(certSerializeCertificateStoreElement, 4, 997 uintptr(unsafe.Pointer(pCertContext)), 998 uintptr(dwFlags), 999 uintptr(unsafe.Pointer(pbElement)), 1000 uintptr(unsafe.Pointer(pcbElement)), 1001 0, 1002 0) 1003 return ret1 != 0 1004 } 1005 1006 func CertSetCRLContextProperty(pCrlContext PCCRL_CONTEXT, dwPropId DWORD, dwFlags DWORD, pvData /*const*/ uintptr) bool { 1007 ret1 := syscall6(certSetCRLContextProperty, 4, 1008 uintptr(unsafe.Pointer(pCrlContext)), 1009 uintptr(dwPropId), 1010 uintptr(dwFlags), 1011 pvData, 1012 0, 1013 0) 1014 return ret1 != 0 1015 } 1016 1017 func CertSetCTLContextProperty(pCtlContext /*const*/ PCCTL_CONTEXT, dwPropId DWORD, dwFlags DWORD, pvData /*const*/ uintptr) bool { 1018 ret1 := syscall6(certSetCTLContextProperty, 4, 1019 uintptr(unsafe.Pointer(pCtlContext)), 1020 uintptr(dwPropId), 1021 uintptr(dwFlags), 1022 pvData, 1023 0, 1024 0) 1025 return ret1 != 0 1026 } 1027 1028 func CertSetCertificateContextPropertiesFromCTLEntry(pCertContext /*const*/ PCCERT_CONTEXT, pCtlEntry PCTL_ENTRY, dwFlags DWORD) bool { 1029 ret1 := syscall3(certSetCertificateContextPropertiesFromCTLEntry, 3, 1030 uintptr(unsafe.Pointer(pCertContext)), 1031 uintptr(unsafe.Pointer(pCtlEntry)), 1032 uintptr(dwFlags)) 1033 return ret1 != 0 1034 } 1035 1036 func CertSetCertificateContextProperty(pCertContext /*const*/ PCCERT_CONTEXT, dwPropId DWORD, dwFlags DWORD, pvData /*const*/ uintptr) bool { 1037 ret1 := syscall6(certSetCertificateContextProperty, 4, 1038 uintptr(unsafe.Pointer(pCertContext)), 1039 uintptr(dwPropId), 1040 uintptr(dwFlags), 1041 pvData, 1042 0, 1043 0) 1044 return ret1 != 0 1045 } 1046 1047 // TODO: Unknown type(s): PCERT_ENHKEY_USAGE 1048 // func CertSetEnhancedKeyUsage(pCertContext /*const*/ PCCERT_CONTEXT, pUsage PCERT_ENHKEY_USAGE) bool 1049 1050 func CertSetStoreProperty(hCertStore HCERTSTORE, dwPropId DWORD, dwFlags DWORD, pvData /*const*/ uintptr) bool { 1051 ret1 := syscall6(certSetStoreProperty, 4, 1052 uintptr(hCertStore), 1053 uintptr(dwPropId), 1054 uintptr(dwFlags), 1055 pvData, 1056 0, 1057 0) 1058 return ret1 != 0 1059 } 1060 1061 func CertStrToName(dwCertEncodingType DWORD, pszX500 string, dwStrType DWORD, pvReserved uintptr, pbEncoded *byte, pcbEncoded *uint32, ppszError *LPCWSTR) bool { 1062 pszX500Str := unicode16FromString(pszX500) 1063 ret1 := syscall9(certStrToName, 7, 1064 uintptr(dwCertEncodingType), 1065 uintptr(unsafe.Pointer(&pszX500Str[0])), 1066 uintptr(dwStrType), 1067 pvReserved, 1068 uintptr(unsafe.Pointer(pbEncoded)), 1069 uintptr(unsafe.Pointer(pcbEncoded)), 1070 uintptr(unsafe.Pointer(ppszError)), 1071 0, 1072 0) 1073 return ret1 != 0 1074 } 1075 1076 func CertUnregisterPhysicalStore(pvSystemStore /*const*/ uintptr, dwFlags DWORD, pwszStoreName string) bool { 1077 pwszStoreNameStr := unicode16FromString(pwszStoreName) 1078 ret1 := syscall3(certUnregisterPhysicalStore, 3, 1079 pvSystemStore, 1080 uintptr(dwFlags), 1081 uintptr(unsafe.Pointer(&pwszStoreNameStr[0]))) 1082 return ret1 != 0 1083 } 1084 1085 func CertUnregisterSystemStore(pvSystemStore /*const*/ uintptr, dwFlags DWORD) bool { 1086 ret1 := syscall3(certUnregisterSystemStore, 2, 1087 pvSystemStore, 1088 uintptr(dwFlags), 1089 0) 1090 return ret1 != 0 1091 } 1092 1093 func CertVerifyCRLRevocation(dwCertEncodingType DWORD, pCertId PCERT_INFO, cCrlInfo DWORD, rgpCrlInfo *PCRL_INFO) bool { 1094 ret1 := syscall6(certVerifyCRLRevocation, 4, 1095 uintptr(dwCertEncodingType), 1096 uintptr(unsafe.Pointer(pCertId)), 1097 uintptr(cCrlInfo), 1098 uintptr(unsafe.Pointer(rgpCrlInfo)), 1099 0, 1100 0) 1101 return ret1 != 0 1102 } 1103 1104 func CertVerifyCRLTimeValidity(pTimeToVerify *FILETIME, pCrlInfo PCRL_INFO) LONG { 1105 ret1 := syscall3(certVerifyCRLTimeValidity, 2, 1106 uintptr(unsafe.Pointer(pTimeToVerify)), 1107 uintptr(unsafe.Pointer(pCrlInfo)), 1108 0) 1109 return LONG(ret1) 1110 } 1111 1112 // TODO: Unknown type(s): PCTL_USAGE, PCTL_VERIFY_USAGE_PARA, PCTL_VERIFY_USAGE_STATUS 1113 // func CertVerifyCTLUsage(dwEncodingType DWORD, dwSubjectType DWORD, pvSubject uintptr, pSubjectUsage PCTL_USAGE, dwFlags DWORD, pVerifyUsagePara PCTL_VERIFY_USAGE_PARA, pVerifyUsageStatus PCTL_VERIFY_USAGE_STATUS) bool 1114 1115 // TODO: Unknown type(s): PCCERT_CHAIN_CONTEXT, PCERT_CHAIN_POLICY_PARA, PCERT_CHAIN_POLICY_STATUS 1116 // func CertVerifyCertificateChainPolicy(pszPolicyOID /*const*/ LPCSTR, pChainContext PCCERT_CHAIN_CONTEXT, pPolicyPara PCERT_CHAIN_POLICY_PARA, pPolicyStatus PCERT_CHAIN_POLICY_STATUS) bool 1117 1118 // TODO: Unknown type(s): PCERT_REVOCATION_PARA, PCERT_REVOCATION_STATUS 1119 // func CertVerifyRevocation(dwEncodingType DWORD, dwRevType DWORD, cContext DWORD, rgpvContext *PVOID, dwFlags DWORD, pRevPara PCERT_REVOCATION_PARA, pRevStatus PCERT_REVOCATION_STATUS) bool 1120 1121 func CertVerifySubjectCertificateContext(pSubject /*const*/ PCCERT_CONTEXT, pIssuer /*const*/ PCCERT_CONTEXT, pdwFlags *uint32) bool { 1122 ret1 := syscall3(certVerifySubjectCertificateContext, 3, 1123 uintptr(unsafe.Pointer(pSubject)), 1124 uintptr(unsafe.Pointer(pIssuer)), 1125 uintptr(unsafe.Pointer(pdwFlags))) 1126 return ret1 != 0 1127 } 1128 1129 func CertVerifyTimeValidity(pTimeToVerify *FILETIME, pCertInfo PCERT_INFO) LONG { 1130 ret1 := syscall3(certVerifyTimeValidity, 2, 1131 uintptr(unsafe.Pointer(pTimeToVerify)), 1132 uintptr(unsafe.Pointer(pCertInfo)), 1133 0) 1134 return LONG(ret1) 1135 } 1136 1137 func CertVerifyValidityNesting(pSubjectInfo PCERT_INFO, pIssuerInfo PCERT_INFO) bool { 1138 ret1 := syscall3(certVerifyValidityNesting, 2, 1139 uintptr(unsafe.Pointer(pSubjectInfo)), 1140 uintptr(unsafe.Pointer(pIssuerInfo)), 1141 0) 1142 return ret1 != 0 1143 } 1144 1145 // TODO: Unknown type(s): HCRYPTPROV_OR_NCRYPT_KEY_HANDLE * 1146 // func CryptAcquireCertificatePrivateKey(pCert /*const*/ PCCERT_CONTEXT, dwFlags DWORD, pvParameters uintptr, phCryptProvOrNCryptKey HCRYPTPROV_OR_NCRYPT_KEY_HANDLE *, pdwKeySpec *uint32, pfCallerFreeProvOrNCryptKey *BOOL) bool 1147 1148 func CryptBinaryToString(pbBinary /*const*/ *byte, cbBinary DWORD, dwFlags DWORD, pszString LPWSTR, pcchString *uint32) bool { 1149 ret1 := syscall6(cryptBinaryToString, 5, 1150 uintptr(unsafe.Pointer(pbBinary)), 1151 uintptr(cbBinary), 1152 uintptr(dwFlags), 1153 uintptr(unsafe.Pointer(pszString)), 1154 uintptr(unsafe.Pointer(pcchString)), 1155 0) 1156 return ret1 != 0 1157 } 1158 1159 // TODO: Unknown type(s): HCRYPTASYNC 1160 // func CryptCloseAsyncHandle(hAsync HCRYPTASYNC) bool 1161 1162 // TODO: Unknown type(s): PHCRYPTASYNC 1163 // func CryptCreateAsyncHandle(dwFlags DWORD, phAsync PHCRYPTASYNC) bool 1164 1165 // TODO: Unknown type(s): const PUBLICKEYSTRUC * 1166 // func CryptCreateKeyIdentifierFromCSP(dwCertEncodingType DWORD, pszPubKeyOID /*const*/ LPCSTR, pPubKeyStruc /*const*/ const PUBLICKEYSTRUC *, cbPubKeyStruc DWORD, dwFlags DWORD, pvReserved uintptr, pbHash *byte, pcbHash *uint32) bool 1167 1168 // TODO: Unknown type(s): PCRYPT_DECRYPT_MESSAGE_PARA, PCRYPT_VERIFY_MESSAGE_PARA 1169 // func CryptDecodeMessage(dwMsgTypeFlags DWORD, pDecryptPara PCRYPT_DECRYPT_MESSAGE_PARA, pVerifyPara PCRYPT_VERIFY_MESSAGE_PARA, dwSignerIndex DWORD, pbEncodedBlob /*const*/ *byte, cbEncodedBlob DWORD, dwPrevInnerContentType DWORD, pdwMsgType *uint32, pdwInnerContentType *uint32, pbDecoded *byte, pcbDecoded *uint32, ppXchgCert *PCCERT_CONTEXT, ppSignerCert *PCCERT_CONTEXT) bool 1170 1171 func CryptDecodeObject(dwCertEncodingType DWORD, lpszStructType /*const*/ LPCSTR, pbEncoded /*const*/ *byte, cbEncoded DWORD, dwFlags DWORD, pvStructInfo uintptr, pcbStructInfo *uint32) bool { 1172 ret1 := syscall9(cryptDecodeObject, 7, 1173 uintptr(dwCertEncodingType), 1174 uintptr(unsafe.Pointer(lpszStructType)), 1175 uintptr(unsafe.Pointer(pbEncoded)), 1176 uintptr(cbEncoded), 1177 uintptr(dwFlags), 1178 pvStructInfo, 1179 uintptr(unsafe.Pointer(pcbStructInfo)), 1180 0, 1181 0) 1182 return ret1 != 0 1183 } 1184 1185 // TODO: Unknown type(s): PCRYPT_DECODE_PARA 1186 // func CryptDecodeObjectEx(dwCertEncodingType DWORD, lpszStructType /*const*/ LPCSTR, pbEncoded /*const*/ *byte, cbEncoded DWORD, dwFlags DWORD, pDecodePara PCRYPT_DECODE_PARA, pvStructInfo uintptr, pcbStructInfo *uint32) bool 1187 1188 // TODO: Unknown type(s): PCRYPT_DECRYPT_MESSAGE_PARA, PCRYPT_VERIFY_MESSAGE_PARA 1189 // func CryptDecryptAndVerifyMessageSignature(pDecryptPara PCRYPT_DECRYPT_MESSAGE_PARA, pVerifyPara PCRYPT_VERIFY_MESSAGE_PARA, dwSignerIndex DWORD, pbEncryptedBlob /*const*/ *byte, cbEncryptedBlob DWORD, pbDecrypted *byte, pcbDecrypted *uint32, ppXchgCert *PCCERT_CONTEXT, ppSignerCert *PCCERT_CONTEXT) bool 1190 1191 // TODO: Unknown type(s): PCRYPT_DECRYPT_MESSAGE_PARA 1192 // func CryptDecryptMessage(pDecryptPara PCRYPT_DECRYPT_MESSAGE_PARA, pbEncryptedBlob /*const*/ *byte, cbEncryptedBlob DWORD, pbDecrypted *byte, pcbDecrypted *uint32, ppXchgCert *PCCERT_CONTEXT) bool 1193 1194 func CryptEncodeObject(dwCertEncodingType DWORD, lpszStructType /*const*/ LPCSTR, pvStructInfo /*const*/ uintptr, pbEncoded *byte, pcbEncoded *uint32) bool { 1195 ret1 := syscall6(cryptEncodeObject, 5, 1196 uintptr(dwCertEncodingType), 1197 uintptr(unsafe.Pointer(lpszStructType)), 1198 pvStructInfo, 1199 uintptr(unsafe.Pointer(pbEncoded)), 1200 uintptr(unsafe.Pointer(pcbEncoded)), 1201 0) 1202 return ret1 != 0 1203 } 1204 1205 // TODO: Unknown type(s): PCRYPT_ENCODE_PARA 1206 // func CryptEncodeObjectEx(dwCertEncodingType DWORD, lpszStructType /*const*/ LPCSTR, pvStructInfo /*const*/ uintptr, dwFlags DWORD, pEncodePara PCRYPT_ENCODE_PARA, pvEncoded uintptr, pcbEncoded *uint32) bool 1207 1208 // TODO: Unknown type(s): PCRYPT_ENCRYPT_MESSAGE_PARA 1209 // func CryptEncryptMessage(pEncryptPara PCRYPT_ENCRYPT_MESSAGE_PARA, cRecipientCert DWORD, rgpRecipientCert *PCCERT_CONTEXT, pbToBeEncrypted /*const*/ *byte, cbToBeEncrypted DWORD, pbEncryptedBlob *byte, pcbEncryptedBlob *uint32) bool 1210 1211 // TODO: Unknown type(s): PFN_CRYPT_ENUM_KEYID_PROP 1212 // func CryptEnumKeyIdentifierProperties(pKeyIdentifier /*const*/ *CRYPT_HASH_BLOB, dwPropId DWORD, dwFlags DWORD, pwszComputerName string, pvReserved uintptr, pvArg uintptr, pfnEnum PFN_CRYPT_ENUM_KEYID_PROP) bool 1213 1214 // TODO: Unknown type(s): PFN_CRYPT_ENUM_OID_FUNC 1215 // func CryptEnumOIDFunction(dwEncodingType DWORD, pszFuncName /*const*/ LPCSTR, pszOID /*const*/ LPCSTR, dwFlags DWORD, pvArg uintptr, pfnEnumOIDFunc PFN_CRYPT_ENUM_OID_FUNC) bool 1216 1217 // TODO: Unknown type(s): PFN_CRYPT_ENUM_OID_INFO 1218 // func CryptEnumOIDInfo(dwGroupId DWORD, dwFlags DWORD, pvArg uintptr, pfnEnumOIDInfo PFN_CRYPT_ENUM_OID_INFO) bool 1219 1220 func CryptExportPKCS8(hCryptProv HCRYPTPROV, dwKeySpec DWORD, pszPrivateKeyObjId LPSTR, dwFlags DWORD, pvAuxInfo uintptr, pbPrivateKeyBlob *byte, pcbPrivateKeyBlob *uint32) bool { 1221 ret1 := syscall9(cryptExportPKCS8, 7, 1222 uintptr(hCryptProv), 1223 uintptr(dwKeySpec), 1224 uintptr(unsafe.Pointer(pszPrivateKeyObjId)), 1225 uintptr(dwFlags), 1226 pvAuxInfo, 1227 uintptr(unsafe.Pointer(pbPrivateKeyBlob)), 1228 uintptr(unsafe.Pointer(pcbPrivateKeyBlob)), 1229 0, 1230 0) 1231 return ret1 != 0 1232 } 1233 1234 // TODO: Unknown type(s): HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, PCERT_PUBLIC_KEY_INFO 1235 // func CryptExportPublicKeyInfo(hCryptProvOrNCryptKey HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwKeySpec DWORD, dwCertEncodingType DWORD, pInfo PCERT_PUBLIC_KEY_INFO, pcbInfo *uint32) bool 1236 1237 // TODO: Unknown type(s): HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, PCERT_PUBLIC_KEY_INFO 1238 // func CryptExportPublicKeyInfoEx(hCryptProvOrNCryptKey HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwKeySpec DWORD, dwCertEncodingType DWORD, pszPublicKeyObjId LPSTR, dwFlags DWORD, pvAuxInfo uintptr, pInfo PCERT_PUBLIC_KEY_INFO, pcbInfo *uint32) bool 1239 1240 func CryptFindCertificateKeyProvInfo(pCert /*const*/ PCCERT_CONTEXT, dwFlags DWORD, pvReserved uintptr) bool { 1241 ret1 := syscall3(cryptFindCertificateKeyProvInfo, 3, 1242 uintptr(unsafe.Pointer(pCert)), 1243 uintptr(dwFlags), 1244 pvReserved) 1245 return ret1 != 0 1246 } 1247 1248 func CryptFindLocalizedName(pwszCryptName string) string { 1249 pwszCryptNameStr := unicode16FromString(pwszCryptName) 1250 ret1 := syscall3(cryptFindLocalizedName, 1, 1251 uintptr(unsafe.Pointer(&pwszCryptNameStr[0])), 1252 0, 1253 0) 1254 return stringFromUnicode16((*uint16)(unsafe.Pointer(ret1))) 1255 } 1256 1257 // TODO: Unknown type(s): PCCRYPT_OID_INFO 1258 // func CryptFindOIDInfo(dwKeyType DWORD, pvKey uintptr, dwGroupId DWORD) PCCRYPT_OID_INFO 1259 1260 func CryptFormatObject(dwCertEncodingType DWORD, dwFormatType DWORD, dwFormatStrType DWORD, pFormatStruct uintptr, lpszStructType /*const*/ LPCSTR, pbEncoded /*const*/ *byte, cbEncoded DWORD, pbFormat uintptr, pcbFormat *uint32) bool { 1261 ret1 := syscall9(cryptFormatObject, 9, 1262 uintptr(dwCertEncodingType), 1263 uintptr(dwFormatType), 1264 uintptr(dwFormatStrType), 1265 pFormatStruct, 1266 uintptr(unsafe.Pointer(lpszStructType)), 1267 uintptr(unsafe.Pointer(pbEncoded)), 1268 uintptr(cbEncoded), 1269 pbFormat, 1270 uintptr(unsafe.Pointer(pcbFormat))) 1271 return ret1 != 0 1272 } 1273 1274 // TODO: Unknown type(s): HCRYPTOIDFUNCADDR 1275 // func CryptFreeOIDFunctionAddress(hFuncAddr HCRYPTOIDFUNCADDR, dwFlags DWORD) bool 1276 1277 // TODO: Unknown type(s): HCRYPTASYNC, PFN_CRYPT_ASYNC_PARAM_FREE_FUNC * 1278 // func CryptGetAsyncParam(hAsync HCRYPTASYNC, pszParamOid LPSTR, ppvParam *LPVOID, ppfnFree PFN_CRYPT_ASYNC_PARAM_FREE_FUNC *) bool 1279 1280 // TODO: Unknown type(s): HCRYPTOIDFUNCSET 1281 // func CryptGetDefaultOIDDllList(hFuncSet HCRYPTOIDFUNCSET, dwEncodingType DWORD, pwszDllList *WCHAR, pcchDllList *uint32) bool 1282 1283 // TODO: Unknown type(s): HCRYPTOIDFUNCADDR *, HCRYPTOIDFUNCSET 1284 // func CryptGetDefaultOIDFunctionAddress(hFuncSet HCRYPTOIDFUNCSET, dwEncodingType DWORD, pwszDll string, dwFlags DWORD, ppvFuncAddr uintptr, phFuncAddr HCRYPTOIDFUNCADDR *) bool 1285 1286 func CryptGetKeyIdentifierProperty(pKeyIdentifier /*const*/ *CRYPT_HASH_BLOB, dwPropId DWORD, dwFlags DWORD, pwszComputerName string, pvReserved uintptr, pvData uintptr, pcbData *uint32) bool { 1287 pwszComputerNameStr := unicode16FromString(pwszComputerName) 1288 ret1 := syscall9(cryptGetKeyIdentifierProperty, 7, 1289 uintptr(unsafe.Pointer(pKeyIdentifier)), 1290 uintptr(dwPropId), 1291 uintptr(dwFlags), 1292 uintptr(unsafe.Pointer(&pwszComputerNameStr[0])), 1293 pvReserved, 1294 pvData, 1295 uintptr(unsafe.Pointer(pcbData)), 1296 0, 1297 0) 1298 return ret1 != 0 1299 } 1300 1301 // TODO: Unknown type(s): HCRYPTPROV_LEGACY 1302 // func CryptGetMessageCertificates(dwMsgAndCertEncodingType DWORD, hCryptProv HCRYPTPROV_LEGACY, dwFlags DWORD, pbSignedBlob /*const*/ *byte, cbSignedBlob DWORD) HCERTSTORE 1303 1304 func CryptGetMessageSignerCount(dwMsgEncodingType DWORD, pbSignedBlob /*const*/ *byte, cbSignedBlob DWORD) LONG { 1305 ret1 := syscall3(cryptGetMessageSignerCount, 3, 1306 uintptr(dwMsgEncodingType), 1307 uintptr(unsafe.Pointer(pbSignedBlob)), 1308 uintptr(cbSignedBlob)) 1309 return LONG(ret1) 1310 } 1311 1312 // TODO: Unknown type(s): HCRYPTOIDFUNCADDR *, HCRYPTOIDFUNCSET 1313 // func CryptGetOIDFunctionAddress(hFuncSet HCRYPTOIDFUNCSET, dwEncodingType DWORD, pszOID /*const*/ LPCSTR, dwFlags DWORD, ppvFuncAddr uintptr, phFuncAddr HCRYPTOIDFUNCADDR *) bool 1314 1315 func CryptGetOIDFunctionValue(dwEncodingType DWORD, pszFuncName /*const*/ LPCSTR, pszOID /*const*/ LPCSTR, pwszValueName string, pdwValueType *uint32, pbValueData *byte, pcbValueData *uint32) bool { 1316 pwszValueNameStr := unicode16FromString(pwszValueName) 1317 ret1 := syscall9(cryptGetOIDFunctionValue, 7, 1318 uintptr(dwEncodingType), 1319 uintptr(unsafe.Pointer(pszFuncName)), 1320 uintptr(unsafe.Pointer(pszOID)), 1321 uintptr(unsafe.Pointer(&pwszValueNameStr[0])), 1322 uintptr(unsafe.Pointer(pdwValueType)), 1323 uintptr(unsafe.Pointer(pbValueData)), 1324 uintptr(unsafe.Pointer(pcbValueData)), 1325 0, 1326 0) 1327 return ret1 != 0 1328 } 1329 1330 // TODO: Unknown type(s): HCRYPTPROV_LEGACY 1331 // func CryptHashCertificate(hCryptProv HCRYPTPROV_LEGACY, algid ALG_ID, dwFlags DWORD, pbEncoded /*const*/ *byte, cbEncoded DWORD, pbComputedHash *byte, pcbComputedHash *uint32) bool 1332 1333 // TODO: Unknown type(s): PCRYPT_HASH_MESSAGE_PARA 1334 // func CryptHashMessage(pHashPara PCRYPT_HASH_MESSAGE_PARA, fDetachedHash bool, cToBeHashed DWORD, rgpbToBeHashed /*const*/ **BYTE, rgcbToBeHashed *uint32, pbHashedBlob *byte, pcbHashedBlob *uint32, pbComputedHash *byte, pcbComputedHash *uint32) bool 1335 1336 // TODO: Unknown type(s): HCRYPTPROV_LEGACY, PCERT_PUBLIC_KEY_INFO 1337 // func CryptHashPublicKeyInfo(hCryptProv HCRYPTPROV_LEGACY, algid ALG_ID, dwFlags DWORD, dwCertEncodingType DWORD, pInfo PCERT_PUBLIC_KEY_INFO, pbComputedHash *byte, pcbComputedHash *uint32) bool 1338 1339 // TODO: Unknown type(s): HCRYPTPROV_LEGACY 1340 // func CryptHashToBeSigned(hCryptProv HCRYPTPROV_LEGACY, dwCertEncodingType DWORD, pbEncoded /*const*/ *byte, cbEncoded DWORD, pbComputedHash *byte, pcbComputedHash *uint32) bool 1341 1342 // TODO: Unknown type(s): CRYPT_PKCS8_IMPORT_PARAMS 1343 // func CryptImportPKCS8(sPrivateKeyAndParams CRYPT_PKCS8_IMPORT_PARAMS, dwFlags DWORD, phCryptProv *HCRYPTPROV, pvAuxInfo uintptr) bool 1344 1345 // TODO: Unknown type(s): PCERT_PUBLIC_KEY_INFO 1346 // func CryptImportPublicKeyInfo(hCryptProv HCRYPTPROV, dwCertEncodingType DWORD, pInfo PCERT_PUBLIC_KEY_INFO, phKey *HCRYPTKEY) bool 1347 1348 // TODO: Unknown type(s): PCERT_PUBLIC_KEY_INFO 1349 // func CryptImportPublicKeyInfoEx(hCryptProv HCRYPTPROV, dwCertEncodingType DWORD, pInfo PCERT_PUBLIC_KEY_INFO, aiKeyAlg ALG_ID, dwFlags DWORD, pvAuxInfo uintptr, phKey *HCRYPTKEY) bool 1350 1351 // TODO: Unknown type(s): HCRYPTOIDFUNCSET 1352 // func CryptInitOIDFunctionSet(pszFuncName /*const*/ LPCSTR, dwFlags DWORD) HCRYPTOIDFUNCSET 1353 1354 // TODO: Unknown type(s): HCRYPTDEFAULTCONTEXT * 1355 // func CryptInstallDefaultContext(hCryptProv HCRYPTPROV, dwDefaultType DWORD, pvDefaultPara /*const*/ uintptr, dwFlags DWORD, pvReserved uintptr, phDefaultContext HCRYPTDEFAULTCONTEXT *) bool 1356 1357 // TODO: Unknown type(s): const CRYPT_OID_FUNC_ENTRY* 1358 // func CryptInstallOIDFunctionAddress(hModule HMODULE, dwEncodingType DWORD, pszFuncName /*const*/ LPCSTR, cFuncEntry DWORD, rgFuncEntry /*const*/ const CRYPT_OID_FUNC_ENTRY*, dwFlags DWORD) bool 1359 1360 func CryptMemAlloc(cbSize ULONG) LPVOID { 1361 ret1 := syscall3(cryptMemAlloc, 1, 1362 uintptr(cbSize), 1363 0, 1364 0) 1365 return (LPVOID)(unsafe.Pointer(ret1)) 1366 } 1367 1368 func CryptMemFree(pv LPVOID) { 1369 syscall3(cryptMemFree, 1, 1370 uintptr(unsafe.Pointer(pv)), 1371 0, 1372 0) 1373 } 1374 1375 func CryptMemRealloc(pv LPVOID, cbSize ULONG) LPVOID { 1376 ret1 := syscall3(cryptMemRealloc, 2, 1377 uintptr(unsafe.Pointer(pv)), 1378 uintptr(cbSize), 1379 0) 1380 return (LPVOID)(unsafe.Pointer(ret1)) 1381 } 1382 1383 func CryptMsgCalculateEncodedLength(dwMsgEncodingType DWORD, dwFlags DWORD, dwMsgType DWORD, pvMsgEncodeInfo /*const*/ uintptr, pszInnerContentObjID LPSTR, cbData DWORD) DWORD { 1384 ret1 := syscall6(cryptMsgCalculateEncodedLength, 6, 1385 uintptr(dwMsgEncodingType), 1386 uintptr(dwFlags), 1387 uintptr(dwMsgType), 1388 pvMsgEncodeInfo, 1389 uintptr(unsafe.Pointer(pszInnerContentObjID)), 1390 uintptr(cbData)) 1391 return DWORD(ret1) 1392 } 1393 1394 func CryptMsgClose(hCryptMsg HCRYPTMSG) bool { 1395 ret1 := syscall3(cryptMsgClose, 1, 1396 uintptr(unsafe.Pointer(hCryptMsg)), 1397 0, 1398 0) 1399 return ret1 != 0 1400 } 1401 1402 func CryptMsgControl(hCryptMsg HCRYPTMSG, dwFlags DWORD, dwCtrlType DWORD, pvCtrlPara /*const*/ uintptr) bool { 1403 ret1 := syscall6(cryptMsgControl, 4, 1404 uintptr(unsafe.Pointer(hCryptMsg)), 1405 uintptr(dwFlags), 1406 uintptr(dwCtrlType), 1407 pvCtrlPara, 1408 0, 1409 0) 1410 return ret1 != 0 1411 } 1412 1413 // TODO: Unknown type(s): PCMSG_SIGNER_ENCODE_INFO 1414 // func CryptMsgCountersign(hCryptMsg HCRYPTMSG, dwIndex DWORD, cCountersigners DWORD, rgCountersigners PCMSG_SIGNER_ENCODE_INFO) bool 1415 1416 // TODO: Unknown type(s): PCMSG_SIGNER_ENCODE_INFO 1417 // func CryptMsgCountersignEncoded(dwEncodingType DWORD, pbSignerInfo *byte, cbSignerInfo DWORD, cCountersigners DWORD, rgCountersigners PCMSG_SIGNER_ENCODE_INFO, pbCountersignature *byte, pcbCountersignature *DWORD) bool 1418 1419 func CryptMsgDuplicate(hCryptMsg HCRYPTMSG) HCRYPTMSG { 1420 ret1 := syscall3(cryptMsgDuplicate, 1, 1421 uintptr(unsafe.Pointer(hCryptMsg)), 1422 0, 1423 0) 1424 return (HCRYPTMSG)(unsafe.Pointer(ret1)) 1425 } 1426 1427 // TODO: Unknown type(s): PCMSG_SIGNED_ENCODE_INFO 1428 // func CryptMsgEncodeAndSignCTL(dwMsgEncodingType DWORD, pCtlInfo PCTL_INFO, pSignInfo PCMSG_SIGNED_ENCODE_INFO, dwFlags DWORD, pbEncoded *byte, pcbEncoded *uint32) bool 1429 1430 func CryptMsgGetAndVerifySigner(hCryptMsg HCRYPTMSG, cSignerStore DWORD, rghSignerStore *HCERTSTORE, dwFlags DWORD, ppSigner *PCCERT_CONTEXT, pdwSignerIndex *uint32) bool { 1431 ret1 := syscall6(cryptMsgGetAndVerifySigner, 6, 1432 uintptr(unsafe.Pointer(hCryptMsg)), 1433 uintptr(cSignerStore), 1434 uintptr(unsafe.Pointer(rghSignerStore)), 1435 uintptr(dwFlags), 1436 uintptr(unsafe.Pointer(ppSigner)), 1437 uintptr(unsafe.Pointer(pdwSignerIndex))) 1438 return ret1 != 0 1439 } 1440 1441 func CryptMsgGetParam(hCryptMsg HCRYPTMSG, dwParamType DWORD, dwIndex DWORD, pvData uintptr, pcbData *uint32) bool { 1442 ret1 := syscall6(cryptMsgGetParam, 5, 1443 uintptr(unsafe.Pointer(hCryptMsg)), 1444 uintptr(dwParamType), 1445 uintptr(dwIndex), 1446 pvData, 1447 uintptr(unsafe.Pointer(pcbData)), 1448 0) 1449 return ret1 != 0 1450 } 1451 1452 // TODO: Unknown type(s): HCRYPTPROV_LEGACY, PCMSG_STREAM_INFO 1453 // func CryptMsgOpenToDecode(dwMsgEncodingType DWORD, dwFlags DWORD, dwMsgType DWORD, hCryptProv HCRYPTPROV_LEGACY, pRecipientInfo PCERT_INFO, pStreamInfo PCMSG_STREAM_INFO) HCRYPTMSG 1454 1455 // TODO: Unknown type(s): PCMSG_STREAM_INFO 1456 // func CryptMsgOpenToEncode(dwMsgEncodingType DWORD, dwFlags DWORD, dwMsgType DWORD, pvMsgEncodeInfo /*const*/ uintptr, pszInnerContentObjID LPSTR, pStreamInfo PCMSG_STREAM_INFO) HCRYPTMSG 1457 1458 // TODO: Unknown type(s): PCMSG_SIGNED_ENCODE_INFO 1459 // func CryptMsgSignCTL(dwMsgEncodingType DWORD, pbCtlContent *byte, cbCtlContent DWORD, pSignInfo PCMSG_SIGNED_ENCODE_INFO, dwFlags DWORD, pbEncoded *byte, pcbEncoded *uint32) bool 1460 1461 func CryptMsgUpdate(hCryptMsg HCRYPTMSG, pbData /*const*/ *byte, cbData DWORD, fFinal bool) bool { 1462 ret1 := syscall6(cryptMsgUpdate, 4, 1463 uintptr(unsafe.Pointer(hCryptMsg)), 1464 uintptr(unsafe.Pointer(pbData)), 1465 uintptr(cbData), 1466 getUintptrFromBool(fFinal), 1467 0, 1468 0) 1469 return ret1 != 0 1470 } 1471 1472 // TODO: Unknown type(s): HCRYPTPROV_LEGACY 1473 // func CryptMsgVerifyCountersignatureEncoded(hCryptProv HCRYPTPROV_LEGACY, dwEncodingType DWORD, pbSignerInfo *byte, cbSignerInfo DWORD, pbSignerInfoCountersignature *byte, cbSignerInfoCountersignature DWORD, pciCountersigner PCERT_INFO) bool 1474 1475 // TODO: Unknown type(s): HCRYPTPROV_LEGACY 1476 // func CryptMsgVerifyCountersignatureEncodedEx(hCryptProv HCRYPTPROV_LEGACY, dwEncodingType DWORD, pbSignerInfo *byte, cbSignerInfo DWORD, pbSignerInfoCountersignature *byte, cbSignerInfoCountersignature DWORD, dwSignerType DWORD, pvSigner uintptr, dwFlags DWORD, pvExtra uintptr) bool 1477 1478 // TODO: Unknown type(s): CRYPTPROTECT_PROMPTSTRUCT * 1479 // func CryptProtectData(pDataIn *DATA_BLOB, szDataDescr string, pOptionalEntropy *DATA_BLOB, pvReserved uintptr, pPromptStruct CRYPTPROTECT_PROMPTSTRUCT *, dwFlags DWORD, pDataOut *DATA_BLOB) bool 1480 1481 func CryptProtectMemory(pDataIn LPVOID, cbDataIn DWORD, dwFlags DWORD) bool { 1482 ret1 := syscall3(cryptProtectMemory, 3, 1483 uintptr(unsafe.Pointer(pDataIn)), 1484 uintptr(cbDataIn), 1485 uintptr(dwFlags)) 1486 return ret1 != 0 1487 } 1488 1489 func CryptQueryObject(dwObjectType DWORD, pvObject /*const*/ uintptr, dwExpectedContentTypeFlags DWORD, dwExpectedFormatTypeFlags DWORD, dwFlags DWORD, pdwMsgAndCertEncodingType *uint32, pdwContentType *uint32, pdwFormatType *uint32, phCertStore *HCERTSTORE, phMsg *HCRYPTMSG, ppvContext /*const*/ uintptr) bool { 1490 ret1 := syscall12(cryptQueryObject, 11, 1491 uintptr(dwObjectType), 1492 pvObject, 1493 uintptr(dwExpectedContentTypeFlags), 1494 uintptr(dwExpectedFormatTypeFlags), 1495 uintptr(dwFlags), 1496 uintptr(unsafe.Pointer(pdwMsgAndCertEncodingType)), 1497 uintptr(unsafe.Pointer(pdwContentType)), 1498 uintptr(unsafe.Pointer(pdwFormatType)), 1499 uintptr(unsafe.Pointer(phCertStore)), 1500 uintptr(unsafe.Pointer(phMsg)), 1501 ppvContext, 1502 0) 1503 return ret1 != 0 1504 } 1505 1506 func CryptRegisterDefaultOIDFunction(dwEncodingType DWORD, pszFuncName /*const*/ LPCSTR, dwIndex DWORD, pwszDll string) bool { 1507 pwszDllStr := unicode16FromString(pwszDll) 1508 ret1 := syscall6(cryptRegisterDefaultOIDFunction, 4, 1509 uintptr(dwEncodingType), 1510 uintptr(unsafe.Pointer(pszFuncName)), 1511 uintptr(dwIndex), 1512 uintptr(unsafe.Pointer(&pwszDllStr[0])), 1513 0, 1514 0) 1515 return ret1 != 0 1516 } 1517 1518 func CryptRegisterOIDFunction(dwEncodingType DWORD, pszFuncName /*const*/ LPCSTR, pszOID /*const*/ LPCSTR, pwszDll string, pszOverrideFuncName /*const*/ LPCSTR) bool { 1519 pwszDllStr := unicode16FromString(pwszDll) 1520 ret1 := syscall6(cryptRegisterOIDFunction, 5, 1521 uintptr(dwEncodingType), 1522 uintptr(unsafe.Pointer(pszFuncName)), 1523 uintptr(unsafe.Pointer(pszOID)), 1524 uintptr(unsafe.Pointer(&pwszDllStr[0])), 1525 uintptr(unsafe.Pointer(pszOverrideFuncName)), 1526 0) 1527 return ret1 != 0 1528 } 1529 1530 // TODO: Unknown type(s): PCCRYPT_OID_INFO 1531 // func CryptRegisterOIDInfo(pInfo PCCRYPT_OID_INFO, dwFlags DWORD) bool 1532 1533 // TODO: Unknown type(s): SIP_ADD_NEWPROVIDER * 1534 // func CryptSIPAddProvider(psNewProv SIP_ADD_NEWPROVIDER *) bool 1535 1536 // TODO: Unknown type(s): SIP_INDIRECT_DATA *, SIP_SUBJECTINFO * 1537 // func CryptSIPCreateIndirectData(pSubjectInfo SIP_SUBJECTINFO *, pcbIndirectData *uint32, pIndirectData SIP_INDIRECT_DATA *) bool 1538 1539 // TODO: Unknown type(s): SIP_SUBJECTINFO * 1540 // func CryptSIPGetSignedDataMsg(pSubjectInfo SIP_SUBJECTINFO *, pdwEncodingType *uint32, dwIndex DWORD, pcbSignedDataMsg *uint32, pbSignedDataMsg *byte) bool 1541 1542 // TODO: Unknown type(s): SIP_DISPATCH_INFO * 1543 // func CryptSIPLoad(pgSubject /*const*/ *GUID, dwFlags DWORD, pSipDispatch SIP_DISPATCH_INFO *) bool 1544 1545 // TODO: Unknown type(s): SIP_SUBJECTINFO * 1546 // func CryptSIPPutSignedDataMsg(pSubjectInfo SIP_SUBJECTINFO *, dwEncodingType DWORD, pdwIndex *uint32, cbSignedDataMsg DWORD, pbSignedDataMsg *byte) bool 1547 1548 func CryptSIPRemoveProvider(pgProv *GUID) bool { 1549 ret1 := syscall3(cryptSIPRemoveProvider, 1, 1550 uintptr(unsafe.Pointer(pgProv)), 1551 0, 1552 0) 1553 return ret1 != 0 1554 } 1555 1556 // TODO: Unknown type(s): SIP_SUBJECTINFO * 1557 // func CryptSIPRemoveSignedDataMsg(pSubjectInfo SIP_SUBJECTINFO *, dwIndex DWORD) bool 1558 1559 func CryptSIPRetrieveSubjectGuid(fileName string, hFileIn HANDLE, pgSubject *GUID) bool { 1560 fileNameStr := unicode16FromString(fileName) 1561 ret1 := syscall3(cryptSIPRetrieveSubjectGuid, 3, 1562 uintptr(unsafe.Pointer(&fileNameStr[0])), 1563 uintptr(hFileIn), 1564 uintptr(unsafe.Pointer(pgSubject))) 1565 return ret1 != 0 1566 } 1567 1568 func CryptSIPRetrieveSubjectGuidForCatalogFile(fileName string, hFileIn HANDLE, pgSubject *GUID) bool { 1569 fileNameStr := unicode16FromString(fileName) 1570 ret1 := syscall3(cryptSIPRetrieveSubjectGuidForCatalogFile, 3, 1571 uintptr(unsafe.Pointer(&fileNameStr[0])), 1572 uintptr(hFileIn), 1573 uintptr(unsafe.Pointer(pgSubject))) 1574 return ret1 != 0 1575 } 1576 1577 // TODO: Unknown type(s): SIP_INDIRECT_DATA *, SIP_SUBJECTINFO * 1578 // func CryptSIPVerifyIndirectData(pSubjectInfo SIP_SUBJECTINFO *, pIndirectData SIP_INDIRECT_DATA *) bool 1579 1580 // TODO: Unknown type(s): HCRYPTASYNC, PFN_CRYPT_ASYNC_PARAM_FREE_FUNC 1581 // func CryptSetAsyncParam(hAsync HCRYPTASYNC, pszParamOid LPSTR, pvParam LPVOID, pfnFree PFN_CRYPT_ASYNC_PARAM_FREE_FUNC) bool 1582 1583 func CryptSetKeyIdentifierProperty(pKeyIdentifier /*const*/ *CRYPT_HASH_BLOB, dwPropId DWORD, dwFlags DWORD, pwszComputerName string, pvReserved uintptr, pvData /*const*/ uintptr) bool { 1584 pwszComputerNameStr := unicode16FromString(pwszComputerName) 1585 ret1 := syscall6(cryptSetKeyIdentifierProperty, 6, 1586 uintptr(unsafe.Pointer(pKeyIdentifier)), 1587 uintptr(dwPropId), 1588 uintptr(dwFlags), 1589 uintptr(unsafe.Pointer(&pwszComputerNameStr[0])), 1590 pvReserved, 1591 pvData) 1592 return ret1 != 0 1593 } 1594 1595 func CryptSetOIDFunctionValue(dwEncodingType DWORD, pszFuncName /*const*/ LPCSTR, pszOID /*const*/ LPCSTR, pwszValueName string, dwValueType DWORD, pbValueData /*const*/ *byte, cbValueData DWORD) bool { 1596 pwszValueNameStr := unicode16FromString(pwszValueName) 1597 ret1 := syscall9(cryptSetOIDFunctionValue, 7, 1598 uintptr(dwEncodingType), 1599 uintptr(unsafe.Pointer(pszFuncName)), 1600 uintptr(unsafe.Pointer(pszOID)), 1601 uintptr(unsafe.Pointer(&pwszValueNameStr[0])), 1602 uintptr(dwValueType), 1603 uintptr(unsafe.Pointer(pbValueData)), 1604 uintptr(cbValueData), 1605 0, 1606 0) 1607 return ret1 != 0 1608 } 1609 1610 // TODO: Unknown type(s): HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, PCRYPT_ALGORITHM_IDENTIFIER 1611 // func CryptSignAndEncodeCertificate(hCryptProvOrNCryptKey HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwKeySpec DWORD, dwCertEncodingType DWORD, lpszStructType /*const*/ LPCSTR, pvStructInfo /*const*/ uintptr, pSignatureAlgorithm PCRYPT_ALGORITHM_IDENTIFIER, pvHashAuxInfo /*const*/ uintptr, pbEncoded *byte, pcbEncoded *uint32) bool 1612 1613 // TODO: Unknown type(s): PCRYPT_ENCRYPT_MESSAGE_PARA, PCRYPT_SIGN_MESSAGE_PARA 1614 // func CryptSignAndEncryptMessage(pSignPara PCRYPT_SIGN_MESSAGE_PARA, pEncryptPara PCRYPT_ENCRYPT_MESSAGE_PARA, cRecipientCert DWORD, rgpRecipientCert *PCCERT_CONTEXT, pbToBeSignedAndEncrypted /*const*/ *byte, cbToBeSignedAndEncrypted DWORD, pbSignedAndEncryptedBlob *byte, pcbSignedAndEncryptedBlob *uint32) bool 1615 1616 // TODO: Unknown type(s): HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, PCRYPT_ALGORITHM_IDENTIFIER 1617 // func CryptSignCertificate(hCryptProvOrNCryptKey HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwKeySpec DWORD, dwCertEncodingType DWORD, pbEncodedToBeSigned /*const*/ *byte, cbEncodedToBeSigned DWORD, pSignatureAlgorithm PCRYPT_ALGORITHM_IDENTIFIER, pvHashAuxInfo /*const*/ uintptr, pbSignature *byte, pcbSignature *uint32) bool 1618 1619 // TODO: Unknown type(s): PCRYPT_SIGN_MESSAGE_PARA 1620 // func CryptSignMessage(pSignPara PCRYPT_SIGN_MESSAGE_PARA, fDetachedSignature bool, cToBeSigned DWORD, rgpbToBeSigned /*const*/ **BYTE, rgcbToBeSigned *uint32, pbSignedBlob *byte, pcbSignedBlob *uint32) bool 1621 1622 // TODO: Unknown type(s): PCRYPT_KEY_SIGN_MESSAGE_PARA 1623 // func CryptSignMessageWithKey(pSignPara PCRYPT_KEY_SIGN_MESSAGE_PARA, pbToBeSigned /*const*/ *byte, cbToBeSigned DWORD, pbSignedBlob *byte, pcbSignedBlob *uint32) bool 1624 1625 func CryptStringToBinary(pszString string, cchString DWORD, dwFlags DWORD, pbBinary *byte, pcbBinary *uint32, pdwSkip *uint32, pdwFlags *uint32) bool { 1626 pszStringStr := unicode16FromString(pszString) 1627 ret1 := syscall9(cryptStringToBinary, 7, 1628 uintptr(unsafe.Pointer(&pszStringStr[0])), 1629 uintptr(cchString), 1630 uintptr(dwFlags), 1631 uintptr(unsafe.Pointer(pbBinary)), 1632 uintptr(unsafe.Pointer(pcbBinary)), 1633 uintptr(unsafe.Pointer(pdwSkip)), 1634 uintptr(unsafe.Pointer(pdwFlags)), 1635 0, 1636 0) 1637 return ret1 != 0 1638 } 1639 1640 // TODO: Unknown type(s): HCRYPTDEFAULTCONTEXT 1641 // func CryptUninstallDefaultContext(hDefaultContext HCRYPTDEFAULTCONTEXT, dwFlags DWORD, pvReserved uintptr) bool 1642 1643 // TODO: Unknown type(s): CRYPTPROTECT_PROMPTSTRUCT * 1644 // func CryptUnprotectData(pDataIn *DATA_BLOB, ppszDataDescr *LPWSTR, pOptionalEntropy *DATA_BLOB, pvReserved uintptr, pPromptStruct CRYPTPROTECT_PROMPTSTRUCT *, dwFlags DWORD, pDataOut *DATA_BLOB) bool 1645 1646 func CryptUnprotectMemory(pDataIn LPVOID, cbDataIn DWORD, dwFlags DWORD) bool { 1647 ret1 := syscall3(cryptUnprotectMemory, 3, 1648 uintptr(unsafe.Pointer(pDataIn)), 1649 uintptr(cbDataIn), 1650 uintptr(dwFlags)) 1651 return ret1 != 0 1652 } 1653 1654 func CryptUnregisterDefaultOIDFunction(dwEncodingType DWORD, pszFuncName /*const*/ LPCSTR, pwszDll string) bool { 1655 pwszDllStr := unicode16FromString(pwszDll) 1656 ret1 := syscall3(cryptUnregisterDefaultOIDFunction, 3, 1657 uintptr(dwEncodingType), 1658 uintptr(unsafe.Pointer(pszFuncName)), 1659 uintptr(unsafe.Pointer(&pwszDllStr[0]))) 1660 return ret1 != 0 1661 } 1662 1663 func CryptUnregisterOIDFunction(dwEncodingType DWORD, pszFuncName /*const*/ LPCSTR, pszOID /*const*/ LPCSTR) bool { 1664 ret1 := syscall3(cryptUnregisterOIDFunction, 3, 1665 uintptr(dwEncodingType), 1666 uintptr(unsafe.Pointer(pszFuncName)), 1667 uintptr(unsafe.Pointer(pszOID))) 1668 return ret1 != 0 1669 } 1670 1671 // TODO: Unknown type(s): PCCRYPT_OID_INFO 1672 // func CryptUnregisterOIDInfo(pInfo PCCRYPT_OID_INFO) bool 1673 1674 // TODO: Unknown type(s): HCRYPTPROV_LEGACY, PCERT_PUBLIC_KEY_INFO 1675 // func CryptVerifyCertificateSignature(hCryptProv HCRYPTPROV_LEGACY, dwCertEncodingType DWORD, pbEncoded /*const*/ *byte, cbEncoded DWORD, pPublicKey PCERT_PUBLIC_KEY_INFO) bool 1676 1677 // TODO: Unknown type(s): HCRYPTPROV_LEGACY 1678 // func CryptVerifyCertificateSignatureEx(hCryptProv HCRYPTPROV_LEGACY, dwCertEncodingType DWORD, dwSubjectType DWORD, pvSubject uintptr, dwIssuerType DWORD, pvIssuer uintptr, dwFlags DWORD, pvExtra uintptr) bool 1679 1680 // TODO: Unknown type(s): PCRYPT_HASH_MESSAGE_PARA 1681 // func CryptVerifyDetachedMessageHash(pHashPara PCRYPT_HASH_MESSAGE_PARA, pbDetachedHashBlob *byte, cbDetachedHashBlob DWORD, cToBeHashed DWORD, rgpbToBeHashed /*const*/ **BYTE, rgcbToBeHashed *uint32, pbComputedHash *byte, pcbComputedHash *uint32) bool 1682 1683 // TODO: Unknown type(s): PCRYPT_VERIFY_MESSAGE_PARA 1684 // func CryptVerifyDetachedMessageSignature(pVerifyPara PCRYPT_VERIFY_MESSAGE_PARA, dwSignerIndex DWORD, pbDetachedSignBlob /*const*/ *byte, cbDetachedSignBlob DWORD, cToBeSigned DWORD, rgpbToBeSigned /*const*/ **BYTE, rgcbToBeSigned *uint32, ppSignerCert *PCCERT_CONTEXT) bool 1685 1686 // TODO: Unknown type(s): PCRYPT_HASH_MESSAGE_PARA 1687 // func CryptVerifyMessageHash(pHashPara PCRYPT_HASH_MESSAGE_PARA, pbHashedBlob *byte, cbHashedBlob DWORD, pbToBeHashed *byte, pcbToBeHashed *uint32, pbComputedHash *byte, pcbComputedHash *uint32) bool 1688 1689 // TODO: Unknown type(s): PCRYPT_VERIFY_MESSAGE_PARA 1690 // func CryptVerifyMessageSignature(pVerifyPara PCRYPT_VERIFY_MESSAGE_PARA, dwSignerIndex DWORD, pbSignedBlob /*const*/ *byte, cbSignedBlob DWORD, pbDecoded *byte, pcbDecoded *uint32, ppSignerCert *PCCERT_CONTEXT) bool 1691 1692 // TODO: Unknown type(s): PCERT_PUBLIC_KEY_INFO, PCRYPT_KEY_VERIFY_MESSAGE_PARA 1693 // func CryptVerifyMessageSignatureWithKey(pVerifyPara PCRYPT_KEY_VERIFY_MESSAGE_PARA, pPublicKeyInfo PCERT_PUBLIC_KEY_INFO, pbSignedBlob /*const*/ *byte, cbSignedBlob DWORD, pbDecoded *byte, pcbDecoded *uint32) bool 1694 1695 // TODO: Unknown type(s): ASN1decoding_t, HCRYPTASN1MODULE 1696 // func I_CryptGetAsn1Decoder(hAsn1Module HCRYPTASN1MODULE) ASN1decoding_t 1697 1698 // TODO: Unknown type(s): ASN1encoding_t, HCRYPTASN1MODULE 1699 // func I_CryptGetAsn1Encoder(hAsn1Module HCRYPTASN1MODULE) ASN1encoding_t 1700 1701 // TODO: Unknown type(s): ASN1module_t, HCRYPTASN1MODULE 1702 // func I_CryptInstallAsn1Module(pMod ASN1module_t, dwFlags DWORD, pvReserved uintptr) HCRYPTASN1MODULE 1703 1704 // TODO: Unknown type(s): HCRYPTASN1MODULE 1705 // func I_CryptUninstallAsn1Module(hAsn1Module HCRYPTASN1MODULE) bool 1706 1707 func PFXExportCertStore(hStore HCERTSTORE, pPFX *CRYPT_DATA_BLOB, szPassword string, dwFlags DWORD) bool { 1708 szPasswordStr := unicode16FromString(szPassword) 1709 ret1 := syscall6(pFXExportCertStore, 4, 1710 uintptr(hStore), 1711 uintptr(unsafe.Pointer(pPFX)), 1712 uintptr(unsafe.Pointer(&szPasswordStr[0])), 1713 uintptr(dwFlags), 1714 0, 1715 0) 1716 return ret1 != 0 1717 } 1718 1719 func PFXExportCertStoreEx(hStore HCERTSTORE, pPFX *CRYPT_DATA_BLOB, szPassword string, pvPara uintptr, dwFlags DWORD) bool { 1720 szPasswordStr := unicode16FromString(szPassword) 1721 ret1 := syscall6(pFXExportCertStoreEx, 5, 1722 uintptr(hStore), 1723 uintptr(unsafe.Pointer(pPFX)), 1724 uintptr(unsafe.Pointer(&szPasswordStr[0])), 1725 pvPara, 1726 uintptr(dwFlags), 1727 0) 1728 return ret1 != 0 1729 } 1730 1731 func PFXImportCertStore(pPFX *CRYPT_DATA_BLOB, szPassword string, dwFlags DWORD) HCERTSTORE { 1732 szPasswordStr := unicode16FromString(szPassword) 1733 ret1 := syscall3(pFXImportCertStore, 3, 1734 uintptr(unsafe.Pointer(pPFX)), 1735 uintptr(unsafe.Pointer(&szPasswordStr[0])), 1736 uintptr(dwFlags)) 1737 return HCERTSTORE(ret1) 1738 } 1739 1740 func PFXIsPFXBlob(pPFX *CRYPT_DATA_BLOB) bool { 1741 ret1 := syscall3(pFXIsPFXBlob, 1, 1742 uintptr(unsafe.Pointer(pPFX)), 1743 0, 1744 0) 1745 return ret1 != 0 1746 } 1747 1748 func PFXVerifyPassword(pPFX *CRYPT_DATA_BLOB, szPassword string, dwFlags DWORD) bool { 1749 szPasswordStr := unicode16FromString(szPassword) 1750 ret1 := syscall3(pFXVerifyPassword, 3, 1751 uintptr(unsafe.Pointer(pPFX)), 1752 uintptr(unsafe.Pointer(&szPasswordStr[0])), 1753 uintptr(dwFlags)) 1754 return ret1 != 0 1755 } 1756 1757 func I_CertUpdateStore(store1 HCERTSTORE, store2 HCERTSTORE, unk0 DWORD, unk1 DWORD) bool { 1758 ret1 := syscall6(i_CertUpdateStore, 4, 1759 uintptr(store1), 1760 uintptr(store2), 1761 uintptr(unk0), 1762 uintptr(unk1), 1763 0, 1764 0) 1765 return ret1 != 0 1766 } 1767 1768 func I_CryptAllocTls() DWORD { 1769 ret1 := syscall3(i_CryptAllocTls, 0, 1770 0, 1771 0, 1772 0) 1773 return DWORD(ret1) 1774 } 1775 1776 // TODO: Unknown type(s): HLRUCACHE * 1777 // func I_CryptCreateLruCache(unknown uintptr, out HLRUCACHE *) bool 1778 1779 // TODO: Unknown type(s): HLRUCACHE 1780 // func I_CryptCreateLruEntry(h HLRUCACHE, unk0 DWORD, unk1 DWORD) bool 1781 1782 func I_CryptDetachTls(dwTlsIndex DWORD) LPVOID { 1783 ret1 := syscall3(i_CryptDetachTls, 1, 1784 uintptr(dwTlsIndex), 1785 0, 1786 0) 1787 return (LPVOID)(unsafe.Pointer(ret1)) 1788 } 1789 1790 func I_CryptFindLruEntry(unk0 DWORD, unk1 DWORD) bool { 1791 ret1 := syscall3(i_CryptFindLruEntry, 2, 1792 uintptr(unk0), 1793 uintptr(unk1), 1794 0) 1795 return ret1 != 0 1796 } 1797 1798 func I_CryptFindLruEntryData(unk0 DWORD, unk1 DWORD, unk2 DWORD) bool { 1799 ret1 := syscall3(i_CryptFindLruEntryData, 3, 1800 uintptr(unk0), 1801 uintptr(unk1), 1802 uintptr(unk2)) 1803 return ret1 != 0 1804 } 1805 1806 // TODO: Unknown type(s): HLRUCACHE 1807 // func I_CryptFlushLruCache(h HLRUCACHE, unk0 DWORD, unk1 DWORD) DWORD 1808 1809 // TODO: Unknown type(s): HLRUCACHE 1810 // func I_CryptFreeLruCache(h HLRUCACHE, unk0 DWORD, unk1 DWORD) HLRUCACHE 1811 1812 func I_CryptFreeTls(dwTlsIndex DWORD, unknown DWORD) bool { 1813 ret1 := syscall3(i_CryptFreeTls, 2, 1814 uintptr(dwTlsIndex), 1815 uintptr(unknown), 1816 0) 1817 return ret1 != 0 1818 } 1819 1820 func I_CryptGetDefaultCryptProv(reserved DWORD) HCRYPTPROV { 1821 ret1 := syscall3(i_CryptGetDefaultCryptProv, 1, 1822 uintptr(reserved), 1823 0, 1824 0) 1825 return HCRYPTPROV(ret1) 1826 } 1827 1828 func I_CryptGetOssGlobal(x DWORD) bool { 1829 ret1 := syscall3(i_CryptGetOssGlobal, 1, 1830 uintptr(x), 1831 0, 1832 0) 1833 return ret1 != 0 1834 } 1835 1836 func I_CryptGetTls(dwTlsIndex DWORD) LPVOID { 1837 ret1 := syscall3(i_CryptGetTls, 1, 1838 uintptr(dwTlsIndex), 1839 0, 1840 0) 1841 return (LPVOID)(unsafe.Pointer(ret1)) 1842 } 1843 1844 func I_CryptInstallOssGlobal(x DWORD, y DWORD, z DWORD) DWORD { 1845 ret1 := syscall3(i_CryptInstallOssGlobal, 3, 1846 uintptr(x), 1847 uintptr(y), 1848 uintptr(z)) 1849 return DWORD(ret1) 1850 } 1851 1852 func I_CryptReadTrustedPublisherDWORDValueFromRegistry(name string, value *uint32) bool { 1853 nameStr := unicode16FromString(name) 1854 ret1 := syscall3(i_CryptReadTrustedPublisherDWORDValueFromRegistry, 2, 1855 uintptr(unsafe.Pointer(&nameStr[0])), 1856 uintptr(unsafe.Pointer(value)), 1857 0) 1858 return ret1 != 0 1859 } 1860 1861 func I_CryptSetTls(dwTlsIndex DWORD, lpTlsValue LPVOID) bool { 1862 ret1 := syscall3(i_CryptSetTls, 2, 1863 uintptr(dwTlsIndex), 1864 uintptr(unsafe.Pointer(lpTlsValue)), 1865 0) 1866 return ret1 != 0 1867 }