]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/crypt32/crypt32.factor
scryfall: parse mtga deck format
[factor.git] / basis / windows / crypt32 / crypt32.factor
1 ! Copyright (C) 2016 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.syntax classes.struct windows.kernel32
4 windows.types ;
5 IN: windows.crypt32
6
7 LIBRARY: crypt32
8
9 TYPEDEF: HANDLE HCERTSTORE
10 TYPEDEF: ULONG_PTR HCRYPTPROV
11 TYPEDEF: HANDLE HCRYPTPROV_LEGACY
12
13 STRUCT: CRYPT_BIT_BLOB
14     { cbData DWORD }
15     { pbData BYTE* }
16     { cUnusedBits DWORD } ;
17 TYPEDEF: CRYPT_BIT_BLOB* PCRYPT_BIT_BLOB
18
19 STRUCT: CRYPTOAPI_BLOB 
20     { cbData DWORD }
21     { pbData BYTE* } ;
22
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
36
37 STRUCT: CRYPT_ALGORITHM_IDENTIFIER
38     { pszObjId LPSTR }
39     { Parameters CRYPT_OBJID_BLOB } ;
40 TYPEDEF: CRYPT_ALGORITHM_IDENTIFIER* PCRYPT_ALGORITHM_IDENTIFIER
41
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
46
47 STRUCT: CERT_EXTENSION
48     { pszObjId LPSTR }
49     { fCritical BOOL }
50     { Value CRYPT_OBJID_BLOB } ;
51 TYPEDEF: CERT_EXTENSION* PCERT_EXTENSION
52
53 STRUCT: CERT_INFO
54     { dwVersion DWORD }
55     { SerialNumber CRYPT_INTEGER_BLOB }
56     { SignatureAlgorithm CRYPT_ALGORITHM_IDENTIFIER }
57     { Issuer CERT_NAME_BLOB }
58     { NotBefore FILETIME }
59     { NotAfter FILETIME }
60     { Subject CERT_NAME_BLOB }
61     { SubjectPublicKeyInfo CERT_PUBLIC_KEY_INFO }
62     { IssuerUniqueId CRYPT_BIT_BLOB }
63     { SubjectUniqueId CRYPT_BIT_BLOB }
64     { cExtension DWORD }
65     { rgExtension PCERT_EXTENSION } ;
66 TYPEDEF: CERT_INFO* PCERT_INFO
67
68 STRUCT: CERT_CONTEXT
69     { dwCertEncodingType DWORD }
70     { pbCertEncoded BYTE* }
71     { cbCertEncoded DWORD }
72     { pCertInfo PCERT_INFO }
73     { hCertStore HCERTSTORE } ;
74 TYPEDEF: CERT_CONTEXT* PCCERT_CONTEXT
75
76
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
101 ! CertAlgIdToOID
102 ! CertCloseServerOcspResponse
103 FUNCTION: BOOL CertCloseStore ( HCERTSTORE hCertStore, DWORD dwFlags )
104 ! CertCompareCertificate
105 ! CertCompareCertificateName
106 ! CertCompareIntegerBlob
107 ! CertComparePublicKeyInfo
108 ! CertControlStore
109 ! CertCreateCRLContext
110 ! CertCreateCTLContext
111 ! CertCreateCTLEntryFromCertificateContextProperties
112 ! CertCreateCertificateChainEngine
113 ! CertCreateCertificateContext
114 ! CertCreateContext
115 ! CertCreateSelfSignCertificate
116 ! CertDeleteCRLFromStore
117 ! CertDeleteCTLFromStore
118 ! CertDeleteCertificateFromStore
119 ! CertDuplicateCRLContext
120 ! CertDuplicateCTLContext
121 ! CertDuplicateCertificateChain
122 ! CertDuplicateCertificateContext
123 ! CertDuplicateStore
124 ! CertEnumCRLContextProperties
125 ! CertEnumCRLsInStore
126 ! CertEnumCTLContextProperties
127 ! CertEnumCTLsInStore
128 ! CertEnumCertificateContextProperties
129 FUNCTION: PCCERT_CONTEXT CertEnumCertificatesInStore (
130     HCERTSTORE     hCertStore,
131     PCCERT_CONTEXT pPrevCertContext
132 )
133 ! CertEnumPhysicalStore
134 ! CertEnumSubjectInSortedCTL
135 ! CertEnumSystemStore
136 ! CertEnumSystemStoreLocation
137 ! CertFindAttribute
138 ! CertFindCRLInStore
139 ! CertFindCTLInStore
140 ! CertFindCertificateInCRL
141 ! CertFindCertificateInStore
142 ! CertFindChainInStore
143 ! CertFindExtension
144 ! CertFindRDNAttr
145 ! CertFindSubjectInCTL
146 ! CertFindSubjectInSortedCTL
147 ! CertFreeCRLContext
148 ! CertFreeCTLContext
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
162 ! CertGetNameStringA
163 ! CertGetNameStringW
164 ! CertGetPublicKeyLength
165 ! CertGetServerOcspResponseContext
166 ! CertGetStoreProperty
167 ! CertGetSubjectCertificateFromStore
168 ! CertGetValidUsages
169 ! CertIsRDNAttrsInCertificateName
170 ! CertIsStrongHashToSign
171 ! CertIsValidCRLForCertificate
172 ! CertIsWeakHash
173 ! CertNameToStrA
174 ! CertNameToStrW
175 ! CertOIDToAlgId
176 ! CertOpenServerOcspResponse
177 ! CertOpenStore
178 ! protocols: CA, MY, ROOT, SPC
179
180 FUNCTION: HCERTSTORE CertOpenSystemStoreW (
181     HCRYPTPROV_LEGACY hprov,
182     LPTCSTR szSubsystemProtocol
183 )
184
185 ALIAS: CertOpenSystemStore CertOpenSystemStoreW
186
187 ! CertRDNValueToStrA
188 ! CertRDNValueToStrW
189 ! CertRegisterPhysicalStore
190 ! CertRegisterSystemStore
191 ! CertRemoveEnhancedKeyUsageIdentifier
192 ! CertRemoveStoreFromCollection
193 ! CertResyncCertificateChainEngine
194 ! CertRetrieveLogoOrBiometricInfo
195 ! CertSaveStore
196 ! CertSelectCertificateChains
197 ! CertSerializeCRLStoreElement
198 ! CertSerializeCTLStoreElement
199 ! CertSerializeCertificateStoreElement
200 ! CertSetCRLContextProperty
201 ! CertSetCTLContextProperty
202 ! CertSetCertificateContextPropertiesFromCTLEntry
203 ! CertSetCertificateContextProperty
204 ! CertSetEnhancedKeyUsage
205 ! CertSetStoreProperty
206 ! CertStrToNameA
207 ! CertStrToNameW
208 ! CertUnregisterPhysicalStore
209 ! CertUnregisterSystemStore
210 ! CertVerifyCRLRevocation
211 ! CertVerifyCRLTimeValidity
212 ! CertVerifyCTLUsage
213 ! CertVerifyCertificateChainPolicy
214 ! CertVerifyRevocation
215 ! CertVerifySubjectCertificateContext
216 ! CertVerifyTimeValidity
217 ! CertVerifyValidityNesting
218 ! CryptAcquireCertificatePrivateKey
219 ! CryptBinaryToStringA
220 ! CryptBinaryToStringW
221 ! CryptCloseAsyncHandle
222 ! CryptCreateAsyncHandle
223 ! CryptCreateKeyIdentifierFromCSP
224 ! CryptDecodeMessage
225 ! CryptDecodeObject
226 ! CryptDecodeObjectEx
227 ! CryptDecryptAndVerifyMessageSignature
228 ! CryptDecryptMessage
229 ! CryptEncodeObject
230 ! CryptEncodeObjectEx
231 ! CryptEncryptMessage
232 ! CryptEnumKeyIdentifierProperties
233 ! CryptEnumOIDFunction
234 ! CryptEnumOIDInfo
235 ! CryptExportPKCS8
236 ! CryptExportPublicKeyInfo
237 ! CryptExportPublicKeyInfoEx
238 ! CryptExportPublicKeyInfoFromBCryptKeyHandle
239 ! CryptFindCertificateKeyProvInfo
240 ! CryptFindLocalizedName
241 ! CryptFindOIDInfo
242 ! CryptFormatObject
243 ! CryptFreeOIDFunctionAddress
244 ! CryptGetAsyncParam
245 ! CryptGetDefaultOIDDllList
246 ! CryptGetDefaultOIDFunctionAddress
247 ! CryptGetKeyIdentifierProperty
248 ! CryptGetMessageCertificates
249 ! CryptGetMessageSignerCount
250 ! CryptGetOIDFunctionAddress
251 ! CryptGetOIDFunctionValue
252 ! CryptHashCertificate
253 ! CryptHashCertificate2
254 ! CryptHashMessage
255 ! CryptHashPublicKeyInfo
256 ! CryptHashToBeSigned
257 ! CryptImportPKCS8
258 ! CryptImportPublicKeyInfo
259 ! CryptImportPublicKeyInfoEx
260 ! CryptImportPublicKeyInfoEx2
261 ! CryptInitOIDFunctionSet
262 ! CryptInstallDefaultContext
263 ! CryptInstallOIDFunctionAddress
264 ! CryptLoadSip
265 ! CryptMemAlloc
266 ! CryptMemFree
267 ! CryptMemRealloc
268 ! CryptMsgCalculateEncodedLength
269 ! CryptMsgClose
270 ! CryptMsgControl
271 ! CryptMsgCountersign
272 ! CryptMsgCountersignEncoded
273 ! CryptMsgDuplicate
274 ! CryptMsgEncodeAndSignCTL
275 ! CryptMsgGetAndVerifySigner
276 ! CryptMsgGetParam
277 ! CryptMsgOpenToDecode
278 ! CryptMsgOpenToEncode
279 ! CryptMsgSignCTL
280 ! CryptMsgUpdate
281 ! CryptMsgVerifyCountersignatureEncoded
282 ! CryptMsgVerifyCountersignatureEncodedEx
283 ! CryptProtectData
284 ! CryptProtectMemory
285 ! CryptQueryObject
286 ! CryptRegisterDefaultOIDFunction
287 ! CryptRegisterOIDFunction
288 ! CryptRegisterOIDInfo
289 ! CryptRetrieveTimeStamp
290 ! CryptSIPAddProvider
291 ! CryptSIPCreateIndirectData
292 ! CryptSIPGetCaps
293 ! CryptSIPGetSealedDigest
294 ! CryptSIPGetSignedDataMsg
295 ! CryptSIPLoad
296 ! CryptSIPPutSignedDataMsg
297 ! CryptSIPRemoveProvider
298 ! CryptSIPRemoveSignedDataMsg
299 ! CryptSIPRetrieveSubjectGuid
300 ! CryptSIPRetrieveSubjectGuidForCatalogFile
301 ! CryptSIPVerifyIndirectData
302 ! CryptSetAsyncParam
303 ! CryptSetKeyIdentifierProperty
304 ! CryptSetOIDFunctionValue
305 ! CryptSignAndEncodeCertificate
306 ! CryptSignAndEncryptMessage
307 ! CryptSignCertificate
308 ! CryptSignMessage
309 ! CryptSignMessageWithKey
310 ! CryptStringToBinaryA
311 ! CryptStringToBinaryW
312 ! CryptUninstallDefaultContext
313 ! CryptUnprotectData
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
328 ! I_CertDiagControl
329 ! I_CertProtectFunction
330 ! I_CertSrvProtectFunction
331 ! I_CertSyncStore
332 ! I_CertUpdateStore
333 ! I_CryptAddRefLruEntry
334 ! I_CryptAddSmartCardCertToStore
335 ! I_CryptAllocTls
336 ! I_CryptAllocTlsEx
337 ! I_CryptCreateLruCache
338 ! I_CryptCreateLruEntry
339 ! I_CryptDetachTls
340 ! I_CryptDisableLruOfEntries
341 ! I_CryptEnableLruOfEntries
342 ! I_CryptEnumMatchingLruEntries
343 ! I_CryptFindLruEntry
344 ! I_CryptFindLruEntryData
345 ! I_CryptFindSmartCardCertInStore
346 ! I_CryptFlushLruCache
347 ! I_CryptFreeLruCache
348 ! I_CryptFreeTls
349 ! I_CryptGetAsn1Decoder
350 ! I_CryptGetAsn1Encoder
351 ! I_CryptGetDefaultCryptProv
352 ! I_CryptGetDefaultCryptProvForEncrypt
353 ! I_CryptGetFileVersion
354 ! I_CryptGetLruEntryData
355 ! I_CryptGetLruEntryIdentifier
356 ! I_CryptGetOssGlobal
357 ! I_CryptGetTls
358 ! I_CryptInsertLruEntry
359 ! I_CryptInstallAsn1Module
360 ! I_CryptInstallOssGlobal
361 ! I_CryptReadTrustedPublisherDWORDValueFromRegistry
362 ! I_CryptRegisterSmartCardStore
363 ! I_CryptReleaseLruEntry
364 ! I_CryptRemoveLruEntry
365 ! I_CryptSetTls
366 ! I_CryptTouchLruEntry
367 ! I_CryptUninstallAsn1Module
368 ! I_CryptUninstallOssGlobal
369 ! I_CryptUnregisterSmartCardStore
370 ! I_CryptWalkAllLruCacheEntries
371 ! PFXExportCertStore
372 ! PFXExportCertStore2
373 ! PFXExportCertStoreEx
374 ! PFXImportCertStore
375 ! PFXIsPFXBlob
376 ! PFXVerifyPassword