377 lines
10 KiB
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
|