|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows NT Security
// Copyright (C) Microsoft Corporation, 1997 - 1999
//
// File: urlprov.h
//
// Contents: CryptGetObjectUrl provider definitions
//
// History: 16-Sep-97 kirtd Created
//
//----------------------------------------------------------------------------
#if !defined(__URLPROV_H__)
#define __URLPROV_H__
#if defined(__cplusplus)
extern "C" { #endif
//
// CryptGetObjectUrl provider prototypes
//
typedef BOOL (WINAPI *PFN_GET_OBJECT_URL_FUNC) ( IN LPCSTR pszUrlOid, IN LPVOID pvPara, IN DWORD dwFlags, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo, IN OPTIONAL LPVOID pvReserved );
BOOL WINAPI CertificateIssuerGetObjectUrl ( IN LPCSTR pszUrlOid, IN LPVOID pvPara, IN DWORD dwFlags, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo, IN OPTIONAL LPVOID pvReserved );
BOOL WINAPI CertificateCrlDistPointGetObjectUrl ( IN LPCSTR pszUrlOid, IN LPVOID pvPara, IN DWORD dwFlags, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo, IN LPVOID pvReserved );
typedef struct _URL_OID_CTL_ISSUER_PARAM {
PCCTL_CONTEXT pCtlContext; DWORD SignerIndex;
} URL_OID_CTL_ISSUER_PARAM, *PURL_OID_CTL_ISSUER_PARAM;
BOOL WINAPI CtlIssuerGetObjectUrl ( IN LPCSTR pszUrlOid, IN LPVOID pvPara, IN DWORD dwFlags, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo, IN LPVOID pvReserved );
BOOL WINAPI CtlNextUpdateGetObjectUrl ( IN LPCSTR pszUrlOid, IN LPVOID pvPara, IN DWORD dwFlags, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo, IN LPVOID pvReserved );
BOOL WINAPI CrlIssuerGetObjectUrl ( IN LPCSTR pszUrlOid, IN LPVOID pvPara, IN DWORD dwFlags, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo, IN LPVOID pvReserved );
BOOL WINAPI CertificateFreshestCrlGetObjectUrl( IN LPCSTR pszUrlOid, IN LPVOID pvPara, IN DWORD dwFlags, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo, IN OPTIONAL LPVOID pvReserved );
BOOL WINAPI CrlFreshestCrlGetObjectUrl( IN LPCSTR pszUrlOid, IN LPVOID pvPara, IN DWORD dwFlags, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo, IN OPTIONAL LPVOID pvReserved );
BOOL WINAPI CertificateCrossCertDistPointGetObjectUrl( IN LPCSTR pszUrlOid, IN LPVOID pvPara, IN DWORD dwFlags, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo, IN LPVOID pvReserved );
//
// CryptGetObjectUrl helper function prototypes
//
BOOL WINAPI ObjectContextUrlFromInfoAccess ( IN LPCSTR pszContextOid, IN LPVOID pvContext, IN DWORD Index, IN LPCSTR pszInfoAccessOid, IN DWORD dwFlags, IN LPCSTR pszAccessMethodOid, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo, IN LPVOID pvReserved );
BOOL WINAPI ObjectContextUrlFromCrlDistPoint ( IN LPCSTR pszContextOid, IN LPVOID pvContext, IN DWORD Index, IN DWORD dwFlags, IN LPCSTR pszSourceOid, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo, IN LPVOID pvReserved );
BOOL WINAPI ObjectContextUrlFromNextUpdateLocation ( IN LPCSTR pszContextOid, IN LPVOID pvContext, IN DWORD Index, IN DWORD dwFlags, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo, IN LPVOID pvReserved );
VOID WINAPI InitializeDefaultUrlInfo ( OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT DWORD* pcbUrlInfo );
#define MAX_RAW_URL_DATA 4
typedef struct _CRYPT_RAW_URL_DATA {
DWORD dwFlags; LPVOID pvData;
} CRYPT_RAW_URL_DATA, *PCRYPT_RAW_URL_DATA;
BOOL WINAPI ObjectContextGetRawUrlData ( IN LPCSTR pszContextOid, IN LPVOID pvContext, IN DWORD Index, IN DWORD dwFlags, IN LPCSTR pszSourceOid, OUT PCRYPT_RAW_URL_DATA aRawUrlData, IN OUT DWORD* pcRawUrlData );
VOID WINAPI ObjectContextFreeRawUrlData ( IN DWORD cRawUrlData, IN PCRYPT_RAW_URL_DATA aRawUrlData );
BOOL WINAPI GetUrlArrayAndInfoFromInfoAccess ( IN DWORD cRawUrlData, IN PCRYPT_RAW_URL_DATA aRawUrlData, IN LPCSTR pszAccessMethodOid, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo );
BOOL WINAPI GetUrlArrayAndInfoFromCrlDistPoint ( IN DWORD cRawUrlData, IN PCRYPT_RAW_URL_DATA aRawUrlData, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo );
BOOL WINAPI GetUrlArrayAndInfoFromNextUpdateLocation ( IN DWORD cRawUrlData, IN PCRYPT_RAW_URL_DATA aRawUrlData, OUT OPTIONAL PCRYPT_URL_ARRAY pUrlArray, IN OUT DWORD* pcbUrlArray, OUT OPTIONAL PCRYPT_URL_INFO pUrlInfo, IN OUT OPTIONAL DWORD* pcbUrlInfo );
BOOL WINAPI CopyUrlArray ( IN PCRYPT_URL_ARRAY pDest, IN PCRYPT_URL_ARRAY pSource, IN DWORD cbDest );
VOID WINAPI GetUrlArrayIndex ( IN PCRYPT_URL_ARRAY pUrlArray, IN LPWSTR pwszUrl, IN DWORD DefaultIndex, OUT DWORD* pUrlIndex, OUT BOOL* pfHintInArray );
//
// Provider table externs
//
extern HCRYPTOIDFUNCSET hGetObjectUrlFuncSet;
#if defined(__cplusplus)
} #endif
#endif
|