Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / reactos / dll / win32 / crypt32 / crypt32_private.h
diff --git a/reactos/dll/win32/crypt32/crypt32_private.h b/reactos/dll/win32/crypt32/crypt32_private.h
deleted file mode 100644 (file)
index 9ef8655..0000000
+++ /dev/null
@@ -1,482 +0,0 @@
-/*
- * Copyright 2005 Juan Lang
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
-
-#ifndef __CRYPT32_PRIVATE_H__
-#define __CRYPT32_PRIVATE_H__
-
-#include <wine/config.h>
-#include <wine/port.h>
-
-#include <assert.h>
-#include <stdarg.h>
-#include <stdio.h>
-
-#define _INC_WINDOWS
-#define COM_NO_WINDOWS_H
-
-#define NONAMELESSUNION
-
-#include <windef.h>
-#include <winbase.h>
-#include <winuser.h>
-#include <winreg.h>
-#include <snmp.h>
-
-#define CERT_CHAIN_PARA_HAS_EXTRA_FIELDS
-#define CERT_REVOCATION_PARA_HAS_EXTRA_FIELDS
-#include <wincrypt.h>
-
-#include <mssip.h>
-
-#include <wine/unicode.h>
-#include <wine/list.h>
-#include <wine/exception.h>
-#include <wine/debug.h>
-
-#include "cryptres.h"
-
-/* a few asn.1 tags we need */
-#define ASN_BOOL            (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x01)
-#define ASN_BITSTRING       (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x03)
-#define ASN_ENUMERATED      (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x0a)
-#define ASN_UTF8STRING      (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x0c)
-#define ASN_SETOF           (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x11)
-#define ASN_NUMERICSTRING   (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x12)
-#define ASN_PRINTABLESTRING (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x13)
-#define ASN_T61STRING       (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x14)
-#define ASN_VIDEOTEXSTRING  (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x15)
-#define ASN_IA5STRING       (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x16)
-#define ASN_UTCTIME         (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x17)
-#define ASN_GENERALTIME     (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x18)
-#define ASN_GRAPHICSTRING   (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x19)
-#define ASN_VISIBLESTRING   (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x1a)
-#define ASN_GENERALSTRING   (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x1b)
-#define ASN_UNIVERSALSTRING (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x1c)
-#define ASN_BMPSTRING       (ASN_UNIVERSAL | ASN_PRIMITIVE | 0x1e)
-
-BOOL CRYPT_EncodeLen(DWORD len, BYTE *pbEncoded, DWORD *pcbEncoded) DECLSPEC_HIDDEN;
-
-typedef BOOL (WINAPI *CryptEncodeObjectExFunc)(DWORD, LPCSTR, const void *,
- DWORD, PCRYPT_ENCODE_PARA, BYTE *, DWORD *);
-
-struct AsnEncodeSequenceItem
-{
-    const void             *pvStructInfo;
-    CryptEncodeObjectExFunc encodeFunc;
-    DWORD                   size; /* used during encoding, not for your use */
-};
-
-BOOL WINAPI CRYPT_AsnEncodeSequence(DWORD dwCertEncodingType,
- struct AsnEncodeSequenceItem items[], DWORD cItem, DWORD dwFlags,
- PCRYPT_ENCODE_PARA pEncodePara, BYTE *pbEncoded, DWORD *pcbEncoded) DECLSPEC_HIDDEN;
-
-struct AsnConstructedItem
-{
-    BYTE                    tag;
-    const void             *pvStructInfo;
-    CryptEncodeObjectExFunc encodeFunc;
-};
-
-BOOL WINAPI CRYPT_AsnEncodeConstructed(DWORD dwCertEncodingType,
- LPCSTR lpszStructType, const void *pvStructInfo, DWORD dwFlags,
- PCRYPT_ENCODE_PARA pEncodePara, BYTE *pbEncoded, DWORD *pcbEncoded) DECLSPEC_HIDDEN;
-BOOL WINAPI CRYPT_AsnEncodeOid(DWORD dwCertEncodingType,
- LPCSTR lpszStructType, const void *pvStructInfo, DWORD dwFlags,
- PCRYPT_ENCODE_PARA pEncodePara, BYTE *pbEncoded, DWORD *pcbEncoded) DECLSPEC_HIDDEN;
-BOOL WINAPI CRYPT_AsnEncodeOctets(DWORD dwCertEncodingType,
- LPCSTR lpszStructType, const void *pvStructInfo, DWORD dwFlags,
- PCRYPT_ENCODE_PARA pEncodePara, BYTE *pbEncoded, DWORD *pcbEncoded) DECLSPEC_HIDDEN;
-
-typedef struct _CRYPT_DIGESTED_DATA
-{
-    DWORD                      version;
-    CRYPT_ALGORITHM_IDENTIFIER DigestAlgorithm;
-    CRYPT_CONTENT_INFO         ContentInfo;
-    CRYPT_HASH_BLOB            hash;
-} CRYPT_DIGESTED_DATA;
-
-BOOL CRYPT_AsnEncodePKCSDigestedData(const CRYPT_DIGESTED_DATA *digestedData,
- void *pvData, DWORD *pcbData) DECLSPEC_HIDDEN;
-
-typedef struct _CRYPT_ENCRYPTED_CONTENT_INFO
-{
-    LPSTR                      contentType;
-    CRYPT_ALGORITHM_IDENTIFIER contentEncryptionAlgorithm;
-    CRYPT_DATA_BLOB            encryptedContent;
-} CRYPT_ENCRYPTED_CONTENT_INFO;
-
-typedef struct _CRYPT_ENVELOPED_DATA
-{
-    DWORD                          version;
-    DWORD                          cRecipientInfo;
-    PCMSG_KEY_TRANS_RECIPIENT_INFO rgRecipientInfo;
-    CRYPT_ENCRYPTED_CONTENT_INFO   encryptedContentInfo;
-} CRYPT_ENVELOPED_DATA;
-
-BOOL CRYPT_AsnEncodePKCSEnvelopedData(const CRYPT_ENVELOPED_DATA *envelopedData,
- void *pvData, DWORD *pcbData) DECLSPEC_HIDDEN;
-
-BOOL CRYPT_AsnDecodePKCSEnvelopedData(const BYTE *pbEncoded, DWORD cbEncoded,
- DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara,
- CRYPT_ENVELOPED_DATA *envelopedData, DWORD *pcbEnvelopedData) DECLSPEC_HIDDEN;
-
-typedef struct _CRYPT_SIGNED_INFO
-{
-    DWORD                 version;
-    DWORD                 cCertEncoded;
-    PCERT_BLOB            rgCertEncoded;
-    DWORD                 cCrlEncoded;
-    PCRL_BLOB             rgCrlEncoded;
-    CRYPT_CONTENT_INFO    content;
-    DWORD                 cSignerInfo;
-    PCMSG_CMS_SIGNER_INFO rgSignerInfo;
-} CRYPT_SIGNED_INFO;
-
-BOOL CRYPT_AsnEncodeCMSSignedInfo(CRYPT_SIGNED_INFO *, void *pvData,
- DWORD *pcbData) DECLSPEC_HIDDEN;
-
-BOOL CRYPT_AsnDecodeCMSSignedInfo(const BYTE *pbEncoded, DWORD cbEncoded,
- DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara,
- CRYPT_SIGNED_INFO *signedInfo, DWORD *pcbSignedInfo) DECLSPEC_HIDDEN;
-
-/* Helper function to check *pcbEncoded, set it to the required size, and
- * optionally to allocate memory.  Assumes pbEncoded is not NULL.
- * If CRYPT_ENCODE_ALLOC_FLAG is set in dwFlags, *pbEncoded will be set to a
- * pointer to the newly allocated memory.
- */
-BOOL CRYPT_EncodeEnsureSpace(DWORD dwFlags, const CRYPT_ENCODE_PARA *pEncodePara,
- BYTE *pbEncoded, DWORD *pcbEncoded, DWORD bytesNeeded) DECLSPEC_HIDDEN;
-
-BOOL CRYPT_AsnDecodePKCSDigestedData(const BYTE *pbEncoded, DWORD cbEncoded,
- DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara,
- CRYPT_DIGESTED_DATA *digestedData, DWORD *pcbDigestedData) DECLSPEC_HIDDEN;
-
-BOOL WINAPI CRYPT_AsnEncodePubKeyInfoNoNull(DWORD dwCertEncodingType,
- LPCSTR lpszStructType, const void *pvStructInfo, DWORD dwFlags,
- PCRYPT_ENCODE_PARA pEncodePara, BYTE *pbEncoded, DWORD *pcbEncoded) DECLSPEC_HIDDEN;
-
-/* The following aren't defined in wincrypt.h, as they're "reserved" */
-#define CERT_CERT_PROP_ID 32
-#define CERT_CRL_PROP_ID  33
-#define CERT_CTL_PROP_ID  34
-
-/* Returns a handle to the default crypto provider; loads it if necessary.
- * Returns NULL on failure.
- */
-HCRYPTPROV CRYPT_GetDefaultProvider(void) DECLSPEC_HIDDEN;
-
-HINSTANCE hInstance DECLSPEC_HIDDEN;
-
-void crypt_oid_init(void) DECLSPEC_HIDDEN;
-void crypt_oid_free(void) DECLSPEC_HIDDEN;
-void crypt_sip_free(void) DECLSPEC_HIDDEN;
-void root_store_free(void) DECLSPEC_HIDDEN;
-void default_chain_engine_free(void) DECLSPEC_HIDDEN;
-
-/* (Internal) certificate store types and functions */
-struct WINE_CRYPTCERTSTORE;
-
-typedef struct _CONTEXT_PROPERTY_LIST CONTEXT_PROPERTY_LIST;
-
-typedef struct _context_t context_t;
-
-typedef struct {
-    void (*free)(context_t*);
-    struct _context_t *(*clone)(context_t*,struct WINE_CRYPTCERTSTORE*,BOOL);
-} context_vtbl_t;
-
-struct _context_t {
-    const context_vtbl_t *vtbl;
-    LONG ref;
-    struct WINE_CRYPTCERTSTORE *store;
-    struct _context_t *linked;
-    CONTEXT_PROPERTY_LIST *properties;
-    union {
-        struct list entry;
-        void *ptr;
-    } u;
-};
-
-static inline context_t *context_from_ptr(const void *ptr)
-{
-    return (context_t*)ptr-1;
-}
-
-static inline void *context_ptr(context_t *context)
-{
-    return context+1;
-}
-
-typedef struct {
-    context_t base;
-    CERT_CONTEXT ctx;
-} cert_t;
-
-static inline cert_t *cert_from_ptr(const CERT_CONTEXT *ptr)
-{
-    return CONTAINING_RECORD(ptr, cert_t, ctx);
-}
-
-typedef struct {
-    context_t base;
-    CRL_CONTEXT ctx;
-} crl_t;
-
-static inline crl_t *crl_from_ptr(const CRL_CONTEXT *ptr)
-{
-    return CONTAINING_RECORD(ptr, crl_t, ctx);
-}
-
-typedef struct {
-    context_t base;
-    CTL_CONTEXT ctx;
-} ctl_t;
-
-static inline ctl_t *ctl_from_ptr(const CTL_CONTEXT *ptr)
-{
-    return CONTAINING_RECORD(ptr, ctl_t, ctx);
-}
-
-/* Some typedefs that make it easier to abstract which type of context we're
- * working with.
- */
-typedef const void *(WINAPI *CreateContextFunc)(DWORD dwCertEncodingType,
- const BYTE *pbCertEncoded, DWORD cbCertEncoded);
-typedef BOOL (WINAPI *AddContextToStoreFunc)(HCERTSTORE hCertStore,
- const void *context, DWORD dwAddDisposition, const void **ppStoreContext);
-typedef BOOL (WINAPI *AddEncodedContextToStoreFunc)(HCERTSTORE hCertStore,
- DWORD dwCertEncodingType, const BYTE *pbEncoded, DWORD cbEncoded,
- DWORD dwAddDisposition, const void **ppContext);
-typedef const void *(WINAPI *EnumContextsInStoreFunc)(HCERTSTORE hCertStore,
- const void *pPrevContext);
-typedef DWORD (WINAPI *EnumPropertiesFunc)(const void *context, DWORD dwPropId);
-typedef BOOL (WINAPI *GetContextPropertyFunc)(const void *context,
- DWORD dwPropID, void *pvData, DWORD *pcbData);
-typedef BOOL (WINAPI *SetContextPropertyFunc)(const void *context,
- DWORD dwPropID, DWORD dwFlags, const void *pvData);
-typedef BOOL (WINAPI *SerializeElementFunc)(const void *context, DWORD dwFlags,
- BYTE *pbElement, DWORD *pcbElement);
-typedef BOOL (WINAPI *DeleteContextFunc)(const void *contex);
-
-/* An abstract context (certificate, CRL, or CTL) interface */
-typedef struct _WINE_CONTEXT_INTERFACE
-{
-    CreateContextFunc            create;
-    AddContextToStoreFunc        addContextToStore;
-    AddEncodedContextToStoreFunc addEncodedToStore;
-    EnumContextsInStoreFunc      enumContextsInStore;
-    EnumPropertiesFunc           enumProps;
-    GetContextPropertyFunc       getProp;
-    SetContextPropertyFunc       setProp;
-    SerializeElementFunc         serialize;
-    DeleteContextFunc            deleteFromStore;
-} WINE_CONTEXT_INTERFACE;
-
-extern const WINE_CONTEXT_INTERFACE *pCertInterface DECLSPEC_HIDDEN;
-extern const WINE_CONTEXT_INTERFACE *pCRLInterface DECLSPEC_HIDDEN;
-extern const WINE_CONTEXT_INTERFACE *pCTLInterface DECLSPEC_HIDDEN;
-
-typedef struct WINE_CRYPTCERTSTORE * (*StoreOpenFunc)(HCRYPTPROV hCryptProv,
- DWORD dwFlags, const void *pvPara);
-
-typedef struct _CONTEXT_FUNCS
-{
-  /* Called to add a context to a store.  If toReplace is not NULL,
-   * context replaces toReplace in the store, and access checks should not be
-   * performed.  Otherwise context is a new context, and it should only be
-   * added if the store allows it.  If ppStoreContext is not NULL, the added
-   * context should be returned in *ppStoreContext.
-   */
-    BOOL (*addContext)(struct WINE_CRYPTCERTSTORE*,context_t*,context_t*,context_t**,BOOL);
-    context_t *(*enumContext)(struct WINE_CRYPTCERTSTORE *store, context_t *prev);
-    BOOL (*delete)(struct WINE_CRYPTCERTSTORE*,context_t*);
-} CONTEXT_FUNCS;
-
-typedef enum _CertStoreType {
-    StoreTypeMem,
-    StoreTypeCollection,
-    StoreTypeProvider,
-    StoreTypeEmpty
-} CertStoreType;
-
-#define WINE_CRYPTCERTSTORE_MAGIC 0x74726563
-
-/* A cert store is polymorphic through the use of function pointers.  A type
- * is still needed to distinguish collection stores from other types.
- * On the function pointers:
- * - closeStore is called when the store's ref count becomes 0
- * - control is optional, but should be implemented by any store that supports
- *   persistence
- */
-
-typedef struct {
-    void (*addref)(struct WINE_CRYPTCERTSTORE*);
-    DWORD (*release)(struct WINE_CRYPTCERTSTORE*,DWORD);
-    void (*releaseContext)(struct WINE_CRYPTCERTSTORE*,context_t*);
-    BOOL (*control)(struct WINE_CRYPTCERTSTORE*,DWORD,DWORD,void const*);
-    CONTEXT_FUNCS certs;
-    CONTEXT_FUNCS crls;
-    CONTEXT_FUNCS ctls;
-} store_vtbl_t;
-
-typedef struct WINE_CRYPTCERTSTORE
-{
-    DWORD                       dwMagic;
-    LONG                        ref;
-    DWORD                       dwOpenFlags;
-    CertStoreType               type;
-    const store_vtbl_t         *vtbl;
-    CONTEXT_PROPERTY_LIST      *properties;
-} WINECRYPT_CERTSTORE;
-
-void CRYPT_InitStore(WINECRYPT_CERTSTORE *store, DWORD dwFlags,
- CertStoreType type, const store_vtbl_t*) DECLSPEC_HIDDEN;
-void CRYPT_FreeStore(WINECRYPT_CERTSTORE *store) DECLSPEC_HIDDEN;
-BOOL WINAPI I_CertUpdateStore(HCERTSTORE store1, HCERTSTORE store2, DWORD unk0,
- DWORD unk1) DECLSPEC_HIDDEN;
-
-WINECRYPT_CERTSTORE *CRYPT_CollectionOpenStore(HCRYPTPROV hCryptProv,
- DWORD dwFlags, const void *pvPara) DECLSPEC_HIDDEN;
-WINECRYPT_CERTSTORE *CRYPT_ProvCreateStore(DWORD dwFlags,
- WINECRYPT_CERTSTORE *memStore, const CERT_STORE_PROV_INFO *pProvInfo) DECLSPEC_HIDDEN;
-WINECRYPT_CERTSTORE *CRYPT_ProvOpenStore(LPCSTR lpszStoreProvider,
- DWORD dwEncodingType, HCRYPTPROV hCryptProv, DWORD dwFlags,
- const void *pvPara) DECLSPEC_HIDDEN;
-WINECRYPT_CERTSTORE *CRYPT_RegOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags,
- const void *pvPara) DECLSPEC_HIDDEN;
-WINECRYPT_CERTSTORE *CRYPT_FileOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags,
- const void *pvPara) DECLSPEC_HIDDEN;
-WINECRYPT_CERTSTORE *CRYPT_FileNameOpenStoreA(HCRYPTPROV hCryptProv,
- DWORD dwFlags, const void *pvPara) DECLSPEC_HIDDEN;
-WINECRYPT_CERTSTORE *CRYPT_FileNameOpenStoreW(HCRYPTPROV hCryptProv,
- DWORD dwFlags, const void *pvPara) DECLSPEC_HIDDEN;
-
-void CRYPT_ImportSystemRootCertsToReg(void) DECLSPEC_HIDDEN;
-BOOL CRYPT_SerializeContextsToReg(HKEY key, DWORD flags, const WINE_CONTEXT_INTERFACE *contextInterface,
-    HCERTSTORE memStore) DECLSPEC_HIDDEN;
-
-BOOL CRYPT_IsCertificateSelfSigned(PCCERT_CONTEXT cert) DECLSPEC_HIDDEN;
-
-/* Allocates and initializes a certificate chain engine, but without creating
- * the root store.  Instead, it uses root, and assumes the caller has done any
- * checking necessary.
- */
-HCERTCHAINENGINE CRYPT_CreateChainEngine(HCERTSTORE, DWORD, const CERT_CHAIN_ENGINE_CONFIG*) DECLSPEC_HIDDEN;
-
-/* Helper function for store reading functions and
- * CertAddSerializedElementToStore.  Returns a context of the appropriate type
- * if it can, or NULL otherwise.  Doesn't validate any of the properties in
- * the serialized context (for example, bad hashes are retained.)
- * *pdwContentType is set to the type of the returned context.
- */
-const void *CRYPT_ReadSerializedElement(const BYTE *pbElement,
- DWORD cbElement, DWORD dwContextTypeFlags, DWORD *pdwContentType) DECLSPEC_HIDDEN;
-
-/* Reads contexts serialized in the file into the memory store.  Returns FALSE
- * if the file is not of the expected format.
- */
-BOOL CRYPT_ReadSerializedStoreFromFile(HANDLE file, HCERTSTORE store) DECLSPEC_HIDDEN;
-
-/* Reads contexts serialized in the blob into the memory store.  Returns FALSE
- * if the file is not of the expected format.
- */
-BOOL CRYPT_ReadSerializedStoreFromBlob(const CRYPT_DATA_BLOB *blob,
- HCERTSTORE store) DECLSPEC_HIDDEN;
-
-/* Fixes up the pointers in info, where info is assumed to be a
- * CRYPT_KEY_PROV_INFO, followed by its container name, provider name, and any
- * provider parameters, in a contiguous buffer, but where info's pointers are
- * assumed to be invalid.  Upon return, info's pointers point to the
- * appropriate memory locations.
- */
-void CRYPT_FixKeyProvInfoPointers(PCRYPT_KEY_PROV_INFO info) DECLSPEC_HIDDEN;
-
-/**
- *  String functions
- */
-
-DWORD cert_name_to_str_with_indent(DWORD dwCertEncodingType, DWORD indent,
- const CERT_NAME_BLOB *pName, DWORD dwStrType, LPWSTR psz, DWORD csz) DECLSPEC_HIDDEN;
-
-/**
- *  Context functions
- */
-
-/* Allocates a new data context, a context which owns properties directly.
- * contextSize is the size of the public data type associated with context,
- * which should be one of CERT_CONTEXT, CRL_CONTEXT, or CTL_CONTEXT.
- * Free with Context_Release.
- */
-context_t *Context_CreateDataContext(size_t contextSize, const context_vtbl_t *vtbl, struct WINE_CRYPTCERTSTORE*) DECLSPEC_HIDDEN;
-
-/* Creates a new link context.  The context refers to linked
- * rather than owning its own properties.  If addRef is TRUE (which ordinarily
- * it should be) linked is addref'd.
- * Free with Context_Release.
- */
-context_t *Context_CreateLinkContext(unsigned contextSize, context_t *linked, struct WINE_CRYPTCERTSTORE*) DECLSPEC_HIDDEN;
-
-/* Copies properties from fromContext to toContext. */
-void Context_CopyProperties(const void *to, const void *from) DECLSPEC_HIDDEN;
-
-void Context_AddRef(context_t*) DECLSPEC_HIDDEN;
-void Context_Release(context_t *context) DECLSPEC_HIDDEN;
-void Context_Free(context_t*) DECLSPEC_HIDDEN;
-
-/**
- *  Context property list functions
- */
-
-CONTEXT_PROPERTY_LIST *ContextPropertyList_Create(void) DECLSPEC_HIDDEN;
-
-/* Searches for the property with ID id in the context.  Returns TRUE if found,
- * and copies the property's length and a pointer to its data to blob.
- * Otherwise returns FALSE.
- */
-BOOL ContextPropertyList_FindProperty(CONTEXT_PROPERTY_LIST *list, DWORD id,
- PCRYPT_DATA_BLOB blob) DECLSPEC_HIDDEN;
-
-BOOL ContextPropertyList_SetProperty(CONTEXT_PROPERTY_LIST *list, DWORD id,
- const BYTE *pbData, size_t cbData) DECLSPEC_HIDDEN;
-
-void ContextPropertyList_RemoveProperty(CONTEXT_PROPERTY_LIST *list, DWORD id) DECLSPEC_HIDDEN;
-
-DWORD ContextPropertyList_EnumPropIDs(CONTEXT_PROPERTY_LIST *list, DWORD id) DECLSPEC_HIDDEN;
-
-void ContextPropertyList_Copy(CONTEXT_PROPERTY_LIST *to,
- CONTEXT_PROPERTY_LIST *from) DECLSPEC_HIDDEN;
-
-void ContextPropertyList_Free(CONTEXT_PROPERTY_LIST *list) DECLSPEC_HIDDEN;
-
-extern WINECRYPT_CERTSTORE empty_store DECLSPEC_HIDDEN;
-void init_empty_store(void) DECLSPEC_HIDDEN;
-
-/**
- *  Utilities.
- */
-
-/* Align up to a DWORD_PTR boundary
- */
-#define ALIGN_DWORD_PTR(x) (((x) + sizeof(DWORD_PTR) - 1) & ~(sizeof(DWORD_PTR) - 1))
-#define POINTER_ALIGN_DWORD_PTR(p) ((LPVOID)ALIGN_DWORD_PTR((DWORD_PTR)(p)))
-
-/* Check if the OID is a small int
- */
-#define IS_INTOID(x)    (((ULONG_PTR)(x) >> 16) == 0)
-
-#endif /* __CRYPT32_PRIVATE_H__ */