factor/basis/windows/crypt32/crypt32.factor

377 lines
10 KiB
Factor

! Copyright (C) 2016 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: alien.syntax classes.struct windows.kernel32
windows.types ;
IN: windows.crypt32
LIBRARY: crypt32
TYPEDEF: HANDLE HCERTSTORE
TYPEDEF: ULONG_PTR HCRYPTPROV
TYPEDEF: HANDLE HCRYPTPROV_LEGACY
STRUCT: CRYPT_BIT_BLOB
{ cbData DWORD }
{ pbData BYTE* }
{ cUnusedBits DWORD } ;
TYPEDEF: CRYPT_BIT_BLOB* PCRYPT_BIT_BLOB
STRUCT: CRYPTOAPI_BLOB
{ cbData DWORD }
{ pbData BYTE* } ;
TYPEDEF: CRYPTOAPI_BLOB CRYPT_INTEGER_BLOB
TYPEDEF: CRYPTOAPI_BLOB CRYPT_UINT_BLOB
TYPEDEF: CRYPTOAPI_BLOB CRYPT_OBJID_BLOB
TYPEDEF: CRYPTOAPI_BLOB CERT_NAME_BLOB
TYPEDEF: CRYPTOAPI_BLOB CERT_RDN_VALUE_BLOB
TYPEDEF: CRYPTOAPI_BLOB CERT_BLOB
TYPEDEF: CRYPTOAPI_BLOB CRL_BLOB
TYPEDEF: CRYPTOAPI_BLOB DATA_BLOB
TYPEDEF: CRYPTOAPI_BLOB CRYPT_DATA_BLOB
TYPEDEF: CRYPTOAPI_BLOB CRYPT_HASH_BLOB
TYPEDEF: CRYPTOAPI_BLOB CRYPT_DIGEST_BLOB
TYPEDEF: CRYPTOAPI_BLOB CRYPT_DER_BLOB
TYPEDEF: CRYPTOAPI_BLOB CRYPT_ATTR_BLOB
STRUCT: CRYPT_ALGORITHM_IDENTIFIER
{ pszObjId LPSTR }
{ Parameters CRYPT_OBJID_BLOB } ;
TYPEDEF: CRYPT_ALGORITHM_IDENTIFIER* PCRYPT_ALGORITHM_IDENTIFIER
STRUCT: CERT_PUBLIC_KEY_INFO
{ Algorithm CRYPT_ALGORITHM_IDENTIFIER }
{ PublicKey CRYPT_BIT_BLOB } ;
TYPEDEF: CERT_PUBLIC_KEY_INFO* PCERT_PUBLIC_KEY_INFO
STRUCT: CERT_EXTENSION
{ pszObjId LPSTR }
{ fCritical BOOL }
{ Value CRYPT_OBJID_BLOB } ;
TYPEDEF: CERT_EXTENSION* PCERT_EXTENSION
STRUCT: CERT_INFO
{ dwVersion DWORD }
{ SerialNumber CRYPT_INTEGER_BLOB }
{ SignatureAlgorithm CRYPT_ALGORITHM_IDENTIFIER }
{ Issuer CERT_NAME_BLOB }
{ NotBefore FILETIME }
{ NotAfter FILETIME }
{ Subject CERT_NAME_BLOB }
{ SubjectPublicKeyInfo CERT_PUBLIC_KEY_INFO }
{ IssuerUniqueId CRYPT_BIT_BLOB }
{ SubjectUniqueId CRYPT_BIT_BLOB }
{ cExtension DWORD }
{ rgExtension PCERT_EXTENSION } ;
TYPEDEF: CERT_INFO* PCERT_INFO
STRUCT: CERT_CONTEXT
{ dwCertEncodingType DWORD }
{ pbCertEncoded BYTE* }
{ cbCertEncoded DWORD }
{ pCertInfo PCERT_INFO }
{ hCertStore HCERTSTORE } ;
TYPEDEF: CERT_CONTEXT* PCCERT_CONTEXT
! CryptObjectLocatorFree
! CryptObjectLocatorGet
! CryptObjectLocatorGetContent
! CryptObjectLocatorGetUpdated
! CryptObjectLocatorInitialize
! CryptObjectLocatorIsChanged
! CryptObjectLocatorRelease
! I_PFXImportCertStoreEx
! CertAddCRLContextToStore
! CertAddCRLLinkToStore
! CertAddCTLContextToStore
! CertAddCTLLinkToStore
! CertAddCertificateContextToStore
! CertAddCertificateLinkToStore
! CertAddEncodedCRLToStore
! CertAddEncodedCTLToStore
! CertAddEncodedCertificateToStore
! CertAddEncodedCertificateToSystemStoreA
! CertAddEncodedCertificateToSystemStoreW
! CertAddEnhancedKeyUsageIdentifier
! CertAddRefServerOcspResponse
! CertAddRefServerOcspResponseContext
! CertAddSerializedElementToStore
! CertAddStoreToCollection
! CertAlgIdToOID
! CertCloseServerOcspResponse
FUNCTION: BOOL CertCloseStore ( HCERTSTORE hCertStore, DWORD dwFlags )
! CertCompareCertificate
! CertCompareCertificateName
! CertCompareIntegerBlob
! CertComparePublicKeyInfo
! CertControlStore
! CertCreateCRLContext
! CertCreateCTLContext
! CertCreateCTLEntryFromCertificateContextProperties
! CertCreateCertificateChainEngine
! CertCreateCertificateContext
! CertCreateContext
! CertCreateSelfSignCertificate
! CertDeleteCRLFromStore
! CertDeleteCTLFromStore
! CertDeleteCertificateFromStore
! CertDuplicateCRLContext
! CertDuplicateCTLContext
! CertDuplicateCertificateChain
! CertDuplicateCertificateContext
! CertDuplicateStore
! CertEnumCRLContextProperties
! CertEnumCRLsInStore
! CertEnumCTLContextProperties
! CertEnumCTLsInStore
! CertEnumCertificateContextProperties
FUNCTION: PCCERT_CONTEXT CertEnumCertificatesInStore (
HCERTSTORE hCertStore,
PCCERT_CONTEXT pPrevCertContext
)
! CertEnumPhysicalStore
! CertEnumSubjectInSortedCTL
! CertEnumSystemStore
! CertEnumSystemStoreLocation
! CertFindAttribute
! CertFindCRLInStore
! CertFindCTLInStore
! CertFindCertificateInCRL
! CertFindCertificateInStore
! CertFindChainInStore
! CertFindExtension
! CertFindRDNAttr
! CertFindSubjectInCTL
! CertFindSubjectInSortedCTL
! CertFreeCRLContext
! CertFreeCTLContext
! CertFreeCertificateChain
! CertFreeCertificateChainEngine
! CertFreeCertificateChainList
FUNCTION: BOOL CertFreeCertificateContext ( PCCERT_CONTEXT pCertContext )
! CertFreeServerOcspResponseContext
! CertGetCRLContextProperty
! CertGetCRLFromStore
! CertGetCTLContextProperty
! CertGetCertificateChain
! CertGetCertificateContextProperty
! CertGetEnhancedKeyUsage
! CertGetIntendedKeyUsage
! CertGetIssuerCertificateFromStore
! CertGetNameStringA
! CertGetNameStringW
! CertGetPublicKeyLength
! CertGetServerOcspResponseContext
! CertGetStoreProperty
! CertGetSubjectCertificateFromStore
! CertGetValidUsages
! CertIsRDNAttrsInCertificateName
! CertIsStrongHashToSign
! CertIsValidCRLForCertificate
! CertIsWeakHash
! CertNameToStrA
! CertNameToStrW
! CertOIDToAlgId
! CertOpenServerOcspResponse
! CertOpenStore
! protocols: CA, MY, ROOT, SPC
FUNCTION: HCERTSTORE CertOpenSystemStoreW (
HCRYPTPROV_LEGACY hprov,
LPTCSTR szSubsystemProtocol
)
ALIAS: CertOpenSystemStore CertOpenSystemStoreW
! CertRDNValueToStrA
! CertRDNValueToStrW
! CertRegisterPhysicalStore
! CertRegisterSystemStore
! CertRemoveEnhancedKeyUsageIdentifier
! CertRemoveStoreFromCollection
! CertResyncCertificateChainEngine
! CertRetrieveLogoOrBiometricInfo
! CertSaveStore
! CertSelectCertificateChains
! CertSerializeCRLStoreElement
! CertSerializeCTLStoreElement
! CertSerializeCertificateStoreElement
! CertSetCRLContextProperty
! CertSetCTLContextProperty
! CertSetCertificateContextPropertiesFromCTLEntry
! CertSetCertificateContextProperty
! CertSetEnhancedKeyUsage
! CertSetStoreProperty
! CertStrToNameA
! CertStrToNameW
! CertUnregisterPhysicalStore
! CertUnregisterSystemStore
! CertVerifyCRLRevocation
! CertVerifyCRLTimeValidity
! CertVerifyCTLUsage
! CertVerifyCertificateChainPolicy
! CertVerifyRevocation
! CertVerifySubjectCertificateContext
! CertVerifyTimeValidity
! CertVerifyValidityNesting
! CryptAcquireCertificatePrivateKey
! CryptBinaryToStringA
! CryptBinaryToStringW
! CryptCloseAsyncHandle
! CryptCreateAsyncHandle
! CryptCreateKeyIdentifierFromCSP
! CryptDecodeMessage
! CryptDecodeObject
! CryptDecodeObjectEx
! CryptDecryptAndVerifyMessageSignature
! CryptDecryptMessage
! CryptEncodeObject
! CryptEncodeObjectEx
! CryptEncryptMessage
! CryptEnumKeyIdentifierProperties
! CryptEnumOIDFunction
! CryptEnumOIDInfo
! CryptExportPKCS8
! CryptExportPublicKeyInfo
! CryptExportPublicKeyInfoEx
! CryptExportPublicKeyInfoFromBCryptKeyHandle
! CryptFindCertificateKeyProvInfo
! CryptFindLocalizedName
! CryptFindOIDInfo
! CryptFormatObject
! CryptFreeOIDFunctionAddress
! CryptGetAsyncParam
! CryptGetDefaultOIDDllList
! CryptGetDefaultOIDFunctionAddress
! CryptGetKeyIdentifierProperty
! CryptGetMessageCertificates
! CryptGetMessageSignerCount
! CryptGetOIDFunctionAddress
! CryptGetOIDFunctionValue
! CryptHashCertificate
! CryptHashCertificate2
! CryptHashMessage
! CryptHashPublicKeyInfo
! CryptHashToBeSigned
! CryptImportPKCS8
! CryptImportPublicKeyInfo
! CryptImportPublicKeyInfoEx
! CryptImportPublicKeyInfoEx2
! CryptInitOIDFunctionSet
! CryptInstallDefaultContext
! CryptInstallOIDFunctionAddress
! CryptLoadSip
! CryptMemAlloc
! CryptMemFree
! CryptMemRealloc
! CryptMsgCalculateEncodedLength
! CryptMsgClose
! CryptMsgControl
! CryptMsgCountersign
! CryptMsgCountersignEncoded
! CryptMsgDuplicate
! CryptMsgEncodeAndSignCTL
! CryptMsgGetAndVerifySigner
! CryptMsgGetParam
! CryptMsgOpenToDecode
! CryptMsgOpenToEncode
! CryptMsgSignCTL
! CryptMsgUpdate
! CryptMsgVerifyCountersignatureEncoded
! CryptMsgVerifyCountersignatureEncodedEx
! CryptProtectData
! CryptProtectMemory
! CryptQueryObject
! CryptRegisterDefaultOIDFunction
! CryptRegisterOIDFunction
! CryptRegisterOIDInfo
! CryptRetrieveTimeStamp
! CryptSIPAddProvider
! CryptSIPCreateIndirectData
! CryptSIPGetCaps
! CryptSIPGetSealedDigest
! CryptSIPGetSignedDataMsg
! CryptSIPLoad
! CryptSIPPutSignedDataMsg
! CryptSIPRemoveProvider
! CryptSIPRemoveSignedDataMsg
! CryptSIPRetrieveSubjectGuid
! CryptSIPRetrieveSubjectGuidForCatalogFile
! CryptSIPVerifyIndirectData
! CryptSetAsyncParam
! CryptSetKeyIdentifierProperty
! CryptSetOIDFunctionValue
! CryptSignAndEncodeCertificate
! CryptSignAndEncryptMessage
! CryptSignCertificate
! CryptSignMessage
! CryptSignMessageWithKey
! CryptStringToBinaryA
! CryptStringToBinaryW
! CryptUninstallDefaultContext
! CryptUnprotectData
! CryptUnprotectMemory
! CryptUnregisterDefaultOIDFunction
! CryptUnregisterOIDFunction
! CryptUnregisterOIDInfo
! CryptUpdateProtectedState
! CryptVerifyCertificateSignature
! CryptVerifyCertificateSignatureEx
! CryptVerifyDetachedMessageHash
! CryptVerifyDetachedMessageSignature
! CryptVerifyMessageHash
! CryptVerifyMessageSignature
! CryptVerifyMessageSignatureWithKey
! CryptVerifyTimeStampSignature
! I_CertChainEngineIsDisallowedCertificate
! I_CertDiagControl
! I_CertProtectFunction
! I_CertSrvProtectFunction
! I_CertSyncStore
! I_CertUpdateStore
! I_CryptAddRefLruEntry
! I_CryptAddSmartCardCertToStore
! I_CryptAllocTls
! I_CryptAllocTlsEx
! I_CryptCreateLruCache
! I_CryptCreateLruEntry
! I_CryptDetachTls
! I_CryptDisableLruOfEntries
! I_CryptEnableLruOfEntries
! I_CryptEnumMatchingLruEntries
! I_CryptFindLruEntry
! I_CryptFindLruEntryData
! I_CryptFindSmartCardCertInStore
! I_CryptFlushLruCache
! I_CryptFreeLruCache
! I_CryptFreeTls
! I_CryptGetAsn1Decoder
! I_CryptGetAsn1Encoder
! I_CryptGetDefaultCryptProv
! I_CryptGetDefaultCryptProvForEncrypt
! I_CryptGetFileVersion
! I_CryptGetLruEntryData
! I_CryptGetLruEntryIdentifier
! I_CryptGetOssGlobal
! I_CryptGetTls
! I_CryptInsertLruEntry
! I_CryptInstallAsn1Module
! I_CryptInstallOssGlobal
! I_CryptReadTrustedPublisherDWORDValueFromRegistry
! I_CryptRegisterSmartCardStore
! I_CryptReleaseLruEntry
! I_CryptRemoveLruEntry
! I_CryptSetTls
! I_CryptTouchLruEntry
! I_CryptUninstallAsn1Module
! I_CryptUninstallOssGlobal
! I_CryptUnregisterSmartCardStore
! I_CryptWalkAllLruCacheEntries
! PFXExportCertStore
! PFXExportCertStore2
! PFXExportCertStoreEx
! PFXImportCertStore
! PFXIsPFXBlob
! PFXVerifyPassword