//+-------------------------------------------------------------------------
//
//  Microsoft Windows
//
//  Copyright (C) Microsoft Corporation, 1996 - 1999
//
//  File:       crypt32.src
//
//--------------------------------------------------------------------------

LIBRARY CRYPT32

EXPORTS

#ifdef PRIVATE_VERSION
#define CRYPTPRIVATE
#else
#define CRYPTPRIVATE PRIVATE
#endif

#define EXPORT_ALTERNATE_FILETYPES  1

#define CMS_PKCS7  1
#ifdef CMS_PKCS7
CryptVerifyCertificateSignatureEx
CryptMsgVerifyCountersignatureEncodedEx
#endif

CryptEncodeObject
CryptDecodeObject
CryptEncodeObjectEx
CryptDecodeObjectEx
CryptFormatObject
CryptQueryObject

CryptInitOIDFunctionSet
CryptInstallOIDFunctionAddress
CryptGetOIDFunctionAddress
CryptGetDefaultOIDDllList
CryptGetDefaultOIDFunctionAddress
CryptFreeOIDFunctionAddress
CryptSetOIDFunctionValue
CryptGetOIDFunctionValue
CryptRegisterOIDFunction
CryptUnregisterOIDFunction
CryptRegisterDefaultOIDFunction
CryptUnregisterDefaultOIDFunction
CryptFindOIDInfo
CryptEnumOIDInfo
CryptRegisterOIDInfo
CryptUnregisterOIDInfo
CryptEnumOIDFunction
CryptFindLocalizedName
CertVerifyRevocation


CryptLoadSip
CryptSIPLoad
CryptSIPRetrieveSubjectGuid
CryptSIPRetrieveSubjectGuidForCatalogFile
CryptSIPAddProvider
CryptSIPRemoveProvider
CryptSIPPutSignedDataMsg
CryptSIPGetSignedDataMsg
CryptSIPRemoveSignedDataMsg
CryptSIPCreateIndirectData
CryptSIPVerifyIndirectData


I_CryptInstallOssGlobal                 CRYPTPRIVATE
I_CryptUninstallOssGlobal               CRYPTPRIVATE
I_CryptGetOssGlobal                     CRYPTPRIVATE
I_CryptAllocTls                         CRYPTPRIVATE
I_CryptFreeTls                          CRYPTPRIVATE
I_CryptDetachTls                        CRYPTPRIVATE
I_CryptSetTls                           CRYPTPRIVATE
I_CryptGetTls                           CRYPTPRIVATE

I_CryptInstallAsn1Module                CRYPTPRIVATE
I_CryptUninstallAsn1Module              CRYPTPRIVATE
I_CryptGetAsn1Encoder                   CRYPTPRIVATE
I_CryptGetAsn1Decoder                   CRYPTPRIVATE

I_CryptGetDefaultCryptProv              CRYPTPRIVATE
I_CryptGetDefaultCryptProvForEncrypt    CRYPTPRIVATE
I_CryptGetFileVersion                   CRYPTPRIVATE
I_CertSyncStore                         CRYPTPRIVATE
I_CertUpdateStore                       CRYPTPRIVATE

I_CryptRegisterSmartCardStore           CRYPTPRIVATE
I_CryptUnregisterSmartCardStore         CRYPTPRIVATE
I_CryptFindSmartCardCertInStore         CRYPTPRIVATE
I_CryptAddSmartCardCertToStore          CRYPTPRIVATE

I_CryptCreateLruCache                   CRYPTPRIVATE
I_CryptFlushLruCache                    CRYPTPRIVATE
I_CryptFreeLruCache                     CRYPTPRIVATE
I_CryptCreateLruEntry                   CRYPTPRIVATE
I_CryptGetLruEntryIdentifier            CRYPTPRIVATE
I_CryptGetLruEntryData                  CRYPTPRIVATE
I_CryptAddRefLruEntry                   CRYPTPRIVATE
I_CryptReleaseLruEntry                  CRYPTPRIVATE
I_CryptInsertLruEntry                   CRYPTPRIVATE
I_CryptRemoveLruEntry                   CRYPTPRIVATE
I_CryptTouchLruEntry                    CRYPTPRIVATE
I_CryptFindLruEntry                     CRYPTPRIVATE
I_CryptFindLruEntryData                 CRYPTPRIVATE
I_CryptEnumMatchingLruEntries           CRYPTPRIVATE
I_CryptEnableLruOfEntries               CRYPTPRIVATE
I_CryptDisableLruOfEntries              CRYPTPRIVATE
I_CryptWalkAllLruCacheEntries           CRYPTPRIVATE

I_CertProtectFunction                   CRYPTPRIVATE
I_CertSrvProtectFunction                CRYPTPRIVATE
I_CryptReadTrustedPublisherDWORDValueFromRegistry CRYPTPRIVATE

CertOpenStore
CertCloseStore
CertSaveStore
CertDuplicateStore
CertAddEncodedCertificateToStore
CertAddCertificateContextToStore
CertAddEncodedCRLToStore
CertAddCRLContextToStore
CertDeleteCertificateFromStore
CertDeleteCRLFromStore
CertEnumCertificatesInStore
CertFindCertificateInStore
CertGetSubjectCertificateFromStore
CertGetCRLFromStore
CertEnumCRLsInStore
CertFindCRLInStore
CertGetIssuerCertificateFromStore
CertVerifySubjectCertificateContext
CertCreateCertificateContext
CertDuplicateCertificateContext
CertSetCertificateContextProperty
CertGetCertificateContextProperty
CertFreeCertificateContext
CertCreateCRLContext
CertDuplicateCRLContext
CertFreeCRLContext
CertSetCRLContextProperty
CertGetCRLContextProperty

CertAddSerializedElementToStore
CertSerializeCertificateStoreElement
CertSerializeCRLStoreElement
CertEnumCertificateContextProperties
CertCreateCTLEntryFromCertificateContextProperties
CertSetCertificateContextPropertiesFromCTLEntry
CertEnumCRLContextProperties

CertDuplicateCTLContext
CertCreateCTLContext
CertFreeCTLContext
CertSetCTLContextProperty
CertGetCTLContextProperty
CertEnumCTLContextProperties
CertEnumCTLsInStore
CertFindSubjectInCTL
CertFindCTLInStore
CertAddEncodedCTLToStore
CertAddCTLContextToStore
CertSerializeCTLStoreElement
CertDeleteCTLFromStore
CertVerifyCTLUsage

CertCreateContext
CertFindSubjectInSortedCTL
CertEnumSubjectInSortedCTL

CertFindCertificateInCRL
CertIsValidCRLForCertificate


CertControlStore
CertAddStoreToCollection
CertRemoveStoreFromCollection
CertAddCertificateLinkToStore
CertAddCRLLinkToStore
CertAddCTLLinkToStore
CertSetStoreProperty
CertGetStoreProperty

CertRegisterSystemStore
CertRegisterPhysicalStore
CertUnregisterSystemStore
CertUnregisterPhysicalStore
CertEnumSystemStoreLocation
CertEnumSystemStore
CertEnumPhysicalStore

CertGetEnhancedKeyUsage
CertSetEnhancedKeyUsage
CertAddEnhancedKeyUsageIdentifier
CertRemoveEnhancedKeyUsageIdentifier
CertGetValidUsages

CertCreateSelfSignCertificate

CryptMsgGetAndVerifySigner
CryptMsgSignCTL
CryptMsgEncodeAndSignCTL


CertOpenSystemStoreA
CertOpenSystemStoreW
CertAddEncodedCertificateToSystemStoreA
CertAddEncodedCertificateToSystemStoreW

CryptImportPublicKeyInfo
CryptExportPublicKeyInfo
CryptHashCertificate
CryptHashToBeSigned
CryptHashPublicKeyInfo
CryptSignCertificate
CryptSignAndEncodeCertificate
CryptVerifyCertificateSignature

CryptInstallDefaultContext
CryptUninstallDefaultContext

CryptImportPublicKeyInfoEx
CryptExportPublicKeyInfoEx

CryptAcquireCertificatePrivateKey
CryptFindCertificateKeyProvInfo

CryptGetKeyIdentifierProperty
CryptSetKeyIdentifierProperty
CryptEnumKeyIdentifierProperties
CryptCreateKeyIdentifierFromCSP

CryptImportPKCS8
CryptExportPKCS8

CertCompareIntegerBlob
CertCompareCertificate
CertCompareCertificateName
CertIsRDNAttrsInCertificateName
CertComparePublicKeyInfo
CertGetPublicKeyLength
CertVerifyTimeValidity
CertVerifyCRLTimeValidity
CertVerifyValidityNesting
CertVerifyCRLRevocation
CertAlgIdToOID
CertOIDToAlgId
CertFindExtension
CertFindAttribute
CertFindRDNAttr
CertGetIntendedKeyUsage
CertRDNValueToStrA
CertRDNValueToStrW
CertNameToStrA
CertNameToStrW
CertStrToNameA
CertStrToNameW

CertGetNameStringA
CertGetNameStringW

CryptEncryptMessage
CryptDecryptMessage
CryptSignMessage
CryptVerifyMessageSignature
CryptGetMessageSignerCount
CryptGetMessageCertificates
CryptSignAndEncryptMessage
CryptDecryptAndVerifyMessageSignature
CryptHashMessage
CryptVerifyMessageHash
CryptSignMessageWithKey
CryptVerifyMessageSignatureWithKey
CryptVerifyDetachedMessageHash
CryptVerifyDetachedMessageSignature
CryptDecodeMessage

CryptMsgCalculateEncodedLength
CryptMsgClose
CryptMsgDuplicate
CryptMsgGetParam
CryptMsgOpenToDecode
CryptMsgOpenToEncode
CryptMsgUpdate
CryptMsgControl
CryptMsgCountersign
CryptMsgCountersignEncoded
CryptMsgVerifyCountersignatureEncoded

PFXImportCertStore
PFXExportCertStore
PFXIsPFXBlob
PFXExportCertStoreEx
PFXVerifyPassword

CryptMemAlloc
CryptMemRealloc
CryptMemFree

CryptCreateAsyncHandle
CryptSetAsyncParam
CryptGetAsyncParam
CryptCloseAsyncHandle

CertCreateCertificateChainEngine
CertFreeCertificateChainEngine
CertResyncCertificateChainEngine
CertGetCertificateChain
CertFreeCertificateChain
CertDuplicateCertificateChain
ChainWlxLogoffEvent                     CRYPTPRIVATE

CertFindChainInStore
CertVerifyCertificateChainPolicy

CryptProtectData
CryptUnprotectData

OpenCertPerformanceData                 CRYPTPRIVATE
CollectCertPerformanceData              CRYPTPRIVATE
CloseCertPerformanceData                CRYPTPRIVATE

CryptStringToBinaryA
CryptStringToBinaryW
CryptBinaryToStringA
CryptBinaryToStringW

#ifdef _M_IX86

RegCreateKeyExU                         CRYPTPRIVATE
RegCreateHKCUKeyExU                     CRYPTPRIVATE
RegOpenKeyExU                           CRYPTPRIVATE
RegOpenHKCUKeyExU                       CRYPTPRIVATE
RegEnumValueU                           CRYPTPRIVATE
RegSetValueExU                          CRYPTPRIVATE
RegDeleteValueU                         CRYPTPRIVATE
RegQueryInfoKeyU                        CRYPTPRIVATE
RegQueryValueExU                        CRYPTPRIVATE
CreateFileU                             CRYPTPRIVATE

CryptAcquireContextU                    CRYPTPRIVATE
CryptEnumProvidersU                     CRYPTPRIVATE
CryptSignHashU                          CRYPTPRIVATE
CryptVerifySignatureU                   CRYPTPRIVATE
CryptSetProviderU                       CRYPTPRIVATE
#endif


// Debug prints, do nothing in retail builds

    DbgInitOSS		@1001  NONAME
    DbgPrintf		@1002  NONAME

// Forward to advapi32 so old bits that import ordinals work.  However, don't
// put the exports in the implib (there s/b exactly one place for normal
// code to find the Reg api's).

    RegCreateKeyW	=advapi32.RegCreateKeyW	   @1003 NONAME PRIVATE
    RegCreateKeyExW	=advapi32.RegCreateKeyExW  @1004 NONAME PRIVATE
    RegOpenKeyW 	=advapi32.RegOpenKeyW	   @1005 NONAME PRIVATE
    RegOpenKeyExW	=advapi32.RegOpenKeyExW	   @1006 NONAME PRIVATE

    RegCreateKeyA	=advapi32.RegCreateKeyA	   @1007 NONAME PRIVATE
    RegCreateKeyExA	=advapi32.RegCreateKeyExA  @1008 NONAME PRIVATE
    RegOpenKeyA 	=advapi32.RegOpenKeyA	   @1009 NONAME PRIVATE
    RegOpenKeyExA	=advapi32.RegOpenKeyExA	   @1010 NONAME PRIVATE

    RegCloseKey 	=advapi32.RegCloseKey	   @1011 NONAME PRIVATE