1 ! Copyright (C) 2016 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.syntax classes.struct windows.kernel32
9 TYPEDEF: HANDLE HCERTSTORE
10 TYPEDEF: ULONG_PTR HCRYPTPROV
11 TYPEDEF: HANDLE HCRYPTPROV_LEGACY
13 STRUCT: CRYPT_BIT_BLOB
16 { cUnusedBits DWORD } ;
17 TYPEDEF: CRYPT_BIT_BLOB* PCRYPT_BIT_BLOB
19 STRUCT: CRYPTOAPI_BLOB
23 TYPEDEF: CRYPTOAPI_BLOB CRYPT_INTEGER_BLOB
24 TYPEDEF: CRYPTOAPI_BLOB CRYPT_UINT_BLOB
25 TYPEDEF: CRYPTOAPI_BLOB CRYPT_OBJID_BLOB
26 TYPEDEF: CRYPTOAPI_BLOB CERT_NAME_BLOB
27 TYPEDEF: CRYPTOAPI_BLOB CERT_RDN_VALUE_BLOB
28 TYPEDEF: CRYPTOAPI_BLOB CERT_BLOB
29 TYPEDEF: CRYPTOAPI_BLOB CRL_BLOB
30 TYPEDEF: CRYPTOAPI_BLOB DATA_BLOB
31 TYPEDEF: CRYPTOAPI_BLOB CRYPT_DATA_BLOB
32 TYPEDEF: CRYPTOAPI_BLOB CRYPT_HASH_BLOB
33 TYPEDEF: CRYPTOAPI_BLOB CRYPT_DIGEST_BLOB
34 TYPEDEF: CRYPTOAPI_BLOB CRYPT_DER_BLOB
35 TYPEDEF: CRYPTOAPI_BLOB CRYPT_ATTR_BLOB
37 STRUCT: CRYPT_ALGORITHM_IDENTIFIER
39 { Parameters CRYPT_OBJID_BLOB } ;
40 TYPEDEF: CRYPT_ALGORITHM_IDENTIFIER* PCRYPT_ALGORITHM_IDENTIFIER
42 STRUCT: CERT_PUBLIC_KEY_INFO
43 { Algorithm CRYPT_ALGORITHM_IDENTIFIER }
44 { PublicKey CRYPT_BIT_BLOB } ;
45 TYPEDEF: CERT_PUBLIC_KEY_INFO* PCERT_PUBLIC_KEY_INFO
47 STRUCT: CERT_EXTENSION
50 { Value CRYPT_OBJID_BLOB } ;
51 TYPEDEF: CERT_EXTENSION* PCERT_EXTENSION
55 { SerialNumber CRYPT_INTEGER_BLOB }
56 { SignatureAlgorithm CRYPT_ALGORITHM_IDENTIFIER }
57 { Issuer CERT_NAME_BLOB }
58 { NotBefore FILETIME }
60 { Subject CERT_NAME_BLOB }
61 { SubjectPublicKeyInfo CERT_PUBLIC_KEY_INFO }
62 { IssuerUniqueId CRYPT_BIT_BLOB }
63 { SubjectUniqueId CRYPT_BIT_BLOB }
65 { rgExtension PCERT_EXTENSION } ;
66 TYPEDEF: CERT_INFO* PCERT_INFO
69 { dwCertEncodingType DWORD }
70 { pbCertEncoded BYTE* }
71 { cbCertEncoded DWORD }
72 { pCertInfo PCERT_INFO }
73 { hCertStore HCERTSTORE } ;
74 TYPEDEF: CERT_CONTEXT* PCCERT_CONTEXT
77 ! CryptObjectLocatorFree
78 ! CryptObjectLocatorGet
79 ! CryptObjectLocatorGetContent
80 ! CryptObjectLocatorGetUpdated
81 ! CryptObjectLocatorInitialize
82 ! CryptObjectLocatorIsChanged
83 ! CryptObjectLocatorRelease
84 ! I_PFXImportCertStoreEx
85 ! CertAddCRLContextToStore
86 ! CertAddCRLLinkToStore
87 ! CertAddCTLContextToStore
88 ! CertAddCTLLinkToStore
89 ! CertAddCertificateContextToStore
90 ! CertAddCertificateLinkToStore
91 ! CertAddEncodedCRLToStore
92 ! CertAddEncodedCTLToStore
93 ! CertAddEncodedCertificateToStore
94 ! CertAddEncodedCertificateToSystemStoreA
95 ! CertAddEncodedCertificateToSystemStoreW
96 ! CertAddEnhancedKeyUsageIdentifier
97 ! CertAddRefServerOcspResponse
98 ! CertAddRefServerOcspResponseContext
99 ! CertAddSerializedElementToStore
100 ! CertAddStoreToCollection
102 ! CertCloseServerOcspResponse
103 FUNCTION: BOOL CertCloseStore ( HCERTSTORE hCertStore, DWORD dwFlags )
104 ! CertCompareCertificate
105 ! CertCompareCertificateName
106 ! CertCompareIntegerBlob
107 ! CertComparePublicKeyInfo
109 ! CertCreateCRLContext
110 ! CertCreateCTLContext
111 ! CertCreateCTLEntryFromCertificateContextProperties
112 ! CertCreateCertificateChainEngine
113 ! CertCreateCertificateContext
115 ! CertCreateSelfSignCertificate
116 ! CertDeleteCRLFromStore
117 ! CertDeleteCTLFromStore
118 ! CertDeleteCertificateFromStore
119 ! CertDuplicateCRLContext
120 ! CertDuplicateCTLContext
121 ! CertDuplicateCertificateChain
122 ! CertDuplicateCertificateContext
124 ! CertEnumCRLContextProperties
125 ! CertEnumCRLsInStore
126 ! CertEnumCTLContextProperties
127 ! CertEnumCTLsInStore
128 ! CertEnumCertificateContextProperties
129 FUNCTION: PCCERT_CONTEXT CertEnumCertificatesInStore (
130 HCERTSTORE hCertStore,
131 PCCERT_CONTEXT pPrevCertContext
133 ! CertEnumPhysicalStore
134 ! CertEnumSubjectInSortedCTL
135 ! CertEnumSystemStore
136 ! CertEnumSystemStoreLocation
140 ! CertFindCertificateInCRL
141 ! CertFindCertificateInStore
142 ! CertFindChainInStore
145 ! CertFindSubjectInCTL
146 ! CertFindSubjectInSortedCTL
149 ! CertFreeCertificateChain
150 ! CertFreeCertificateChainEngine
151 ! CertFreeCertificateChainList
152 FUNCTION: BOOL CertFreeCertificateContext ( PCCERT_CONTEXT pCertContext )
153 ! CertFreeServerOcspResponseContext
154 ! CertGetCRLContextProperty
155 ! CertGetCRLFromStore
156 ! CertGetCTLContextProperty
157 ! CertGetCertificateChain
158 ! CertGetCertificateContextProperty
159 ! CertGetEnhancedKeyUsage
160 ! CertGetIntendedKeyUsage
161 ! CertGetIssuerCertificateFromStore
164 ! CertGetPublicKeyLength
165 ! CertGetServerOcspResponseContext
166 ! CertGetStoreProperty
167 ! CertGetSubjectCertificateFromStore
169 ! CertIsRDNAttrsInCertificateName
170 ! CertIsStrongHashToSign
171 ! CertIsValidCRLForCertificate
176 ! CertOpenServerOcspResponse
178 ! protocols: CA, MY, ROOT, SPC
180 FUNCTION: HCERTSTORE CertOpenSystemStoreW (
181 HCRYPTPROV_LEGACY hprov,
182 LPTCSTR szSubsystemProtocol
185 ALIAS: CertOpenSystemStore CertOpenSystemStoreW
189 ! CertRegisterPhysicalStore
190 ! CertRegisterSystemStore
191 ! CertRemoveEnhancedKeyUsageIdentifier
192 ! CertRemoveStoreFromCollection
193 ! CertResyncCertificateChainEngine
194 ! CertRetrieveLogoOrBiometricInfo
196 ! CertSelectCertificateChains
197 ! CertSerializeCRLStoreElement
198 ! CertSerializeCTLStoreElement
199 ! CertSerializeCertificateStoreElement
200 ! CertSetCRLContextProperty
201 ! CertSetCTLContextProperty
202 ! CertSetCertificateContextPropertiesFromCTLEntry
203 ! CertSetCertificateContextProperty
204 ! CertSetEnhancedKeyUsage
205 ! CertSetStoreProperty
208 ! CertUnregisterPhysicalStore
209 ! CertUnregisterSystemStore
210 ! CertVerifyCRLRevocation
211 ! CertVerifyCRLTimeValidity
213 ! CertVerifyCertificateChainPolicy
214 ! CertVerifyRevocation
215 ! CertVerifySubjectCertificateContext
216 ! CertVerifyTimeValidity
217 ! CertVerifyValidityNesting
218 ! CryptAcquireCertificatePrivateKey
219 ! CryptBinaryToStringA
220 ! CryptBinaryToStringW
221 ! CryptCloseAsyncHandle
222 ! CryptCreateAsyncHandle
223 ! CryptCreateKeyIdentifierFromCSP
226 ! CryptDecodeObjectEx
227 ! CryptDecryptAndVerifyMessageSignature
228 ! CryptDecryptMessage
230 ! CryptEncodeObjectEx
231 ! CryptEncryptMessage
232 ! CryptEnumKeyIdentifierProperties
233 ! CryptEnumOIDFunction
236 ! CryptExportPublicKeyInfo
237 ! CryptExportPublicKeyInfoEx
238 ! CryptExportPublicKeyInfoFromBCryptKeyHandle
239 ! CryptFindCertificateKeyProvInfo
240 ! CryptFindLocalizedName
243 ! CryptFreeOIDFunctionAddress
245 ! CryptGetDefaultOIDDllList
246 ! CryptGetDefaultOIDFunctionAddress
247 ! CryptGetKeyIdentifierProperty
248 ! CryptGetMessageCertificates
249 ! CryptGetMessageSignerCount
250 ! CryptGetOIDFunctionAddress
251 ! CryptGetOIDFunctionValue
252 ! CryptHashCertificate
253 ! CryptHashCertificate2
255 ! CryptHashPublicKeyInfo
256 ! CryptHashToBeSigned
258 ! CryptImportPublicKeyInfo
259 ! CryptImportPublicKeyInfoEx
260 ! CryptImportPublicKeyInfoEx2
261 ! CryptInitOIDFunctionSet
262 ! CryptInstallDefaultContext
263 ! CryptInstallOIDFunctionAddress
268 ! CryptMsgCalculateEncodedLength
271 ! CryptMsgCountersign
272 ! CryptMsgCountersignEncoded
274 ! CryptMsgEncodeAndSignCTL
275 ! CryptMsgGetAndVerifySigner
277 ! CryptMsgOpenToDecode
278 ! CryptMsgOpenToEncode
281 ! CryptMsgVerifyCountersignatureEncoded
282 ! CryptMsgVerifyCountersignatureEncodedEx
286 ! CryptRegisterDefaultOIDFunction
287 ! CryptRegisterOIDFunction
288 ! CryptRegisterOIDInfo
289 ! CryptRetrieveTimeStamp
290 ! CryptSIPAddProvider
291 ! CryptSIPCreateIndirectData
293 ! CryptSIPGetSealedDigest
294 ! CryptSIPGetSignedDataMsg
296 ! CryptSIPPutSignedDataMsg
297 ! CryptSIPRemoveProvider
298 ! CryptSIPRemoveSignedDataMsg
299 ! CryptSIPRetrieveSubjectGuid
300 ! CryptSIPRetrieveSubjectGuidForCatalogFile
301 ! CryptSIPVerifyIndirectData
303 ! CryptSetKeyIdentifierProperty
304 ! CryptSetOIDFunctionValue
305 ! CryptSignAndEncodeCertificate
306 ! CryptSignAndEncryptMessage
307 ! CryptSignCertificate
309 ! CryptSignMessageWithKey
310 ! CryptStringToBinaryA
311 ! CryptStringToBinaryW
312 ! CryptUninstallDefaultContext
314 ! CryptUnprotectMemory
315 ! CryptUnregisterDefaultOIDFunction
316 ! CryptUnregisterOIDFunction
317 ! CryptUnregisterOIDInfo
318 ! CryptUpdateProtectedState
319 ! CryptVerifyCertificateSignature
320 ! CryptVerifyCertificateSignatureEx
321 ! CryptVerifyDetachedMessageHash
322 ! CryptVerifyDetachedMessageSignature
323 ! CryptVerifyMessageHash
324 ! CryptVerifyMessageSignature
325 ! CryptVerifyMessageSignatureWithKey
326 ! CryptVerifyTimeStampSignature
327 ! I_CertChainEngineIsDisallowedCertificate
329 ! I_CertProtectFunction
330 ! I_CertSrvProtectFunction
333 ! I_CryptAddRefLruEntry
334 ! I_CryptAddSmartCardCertToStore
337 ! I_CryptCreateLruCache
338 ! I_CryptCreateLruEntry
340 ! I_CryptDisableLruOfEntries
341 ! I_CryptEnableLruOfEntries
342 ! I_CryptEnumMatchingLruEntries
343 ! I_CryptFindLruEntry
344 ! I_CryptFindLruEntryData
345 ! I_CryptFindSmartCardCertInStore
346 ! I_CryptFlushLruCache
347 ! I_CryptFreeLruCache
349 ! I_CryptGetAsn1Decoder
350 ! I_CryptGetAsn1Encoder
351 ! I_CryptGetDefaultCryptProv
352 ! I_CryptGetDefaultCryptProvForEncrypt
353 ! I_CryptGetFileVersion
354 ! I_CryptGetLruEntryData
355 ! I_CryptGetLruEntryIdentifier
356 ! I_CryptGetOssGlobal
358 ! I_CryptInsertLruEntry
359 ! I_CryptInstallAsn1Module
360 ! I_CryptInstallOssGlobal
361 ! I_CryptReadTrustedPublisherDWORDValueFromRegistry
362 ! I_CryptRegisterSmartCardStore
363 ! I_CryptReleaseLruEntry
364 ! I_CryptRemoveLruEntry
366 ! I_CryptTouchLruEntry
367 ! I_CryptUninstallAsn1Module
368 ! I_CryptUninstallOssGlobal
369 ! I_CryptUnregisterSmartCardStore
370 ! I_CryptWalkAllLruCacheEntries
372 ! PFXExportCertStore2
373 ! PFXExportCertStoreEx