You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
155 lines
5.1 KiB
155 lines
5.1 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1999
|
|
//
|
|
// File: enrlhelp.h
|
|
//
|
|
// Contents: Headers for the helper functions for smard card enrollment station
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#ifndef __ENRLHELP_H__
|
|
#define __ENRLHELP_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Contants defines
|
|
#define g_dwMsgAndCertEncodingType PKCS_7_ASN_ENCODING | X509_ASN_ENCODING
|
|
|
|
const WCHAR g_MyStoreName[]=L"MY";
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// SCrdEnroll_CSP_INFO
|
|
typedef struct _SCrdEnroll_CERT_SELECT_INFO
|
|
{
|
|
DWORD dwFlags;
|
|
LPWSTR pwszCertTemplateName;
|
|
}SCrdEnroll_CERT_SELECT_INFO, *PSCrdEnroll_CERT_SELECT_INFO;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Function Prototypes
|
|
LPWSTR CopyWideString(LPCWSTR wsz);
|
|
|
|
BOOL SearchAndDeleteCert(PCCERT_CONTEXT pCertContext);
|
|
|
|
BOOL InitlializeCSPList(DWORD *pdwCSPCount, SCrdEnroll_CSP_INFO **prgCSPInfo);
|
|
|
|
void FreeCSPInfo(DWORD dwCSPCount, SCrdEnroll_CSP_INFO *prgCSPInfo);
|
|
|
|
BOOL GetCAInfoFromCertType(HANDLE hToken,
|
|
LPWSTR pwszCTName,
|
|
DWORD *pdwValidCA,
|
|
SCrdEnroll_CA_INFO **prgCAInfo);
|
|
|
|
HRESULT GetCAArchivalCert(LPWSTR pwszCAName,
|
|
PCCERT_CONTEXT *ppCert);
|
|
|
|
BOOL InitializeCTList(DWORD *pdwCTIndex,
|
|
DWORD *pdwCTCount,
|
|
SCrdEnroll_CT_INFO **prgCTInfo);
|
|
|
|
LPVOID SCrdEnrollAlloc (
|
|
ULONG cbSize);
|
|
|
|
LPVOID SCrdEnrollRealloc (
|
|
LPVOID pv,
|
|
ULONG cbSize);
|
|
|
|
VOID SCrdEnrollFree (
|
|
LPVOID pv);
|
|
|
|
|
|
void FreeCTInfo(DWORD dwCTCount, SCrdEnroll_CT_INFO *rgCTInfo);
|
|
|
|
void FreeCAInfo(DWORD dwCACount, SCrdEnroll_CA_INFO *rgCAInfo);
|
|
|
|
|
|
HRESULT CodeToHR(HRESULT hr);
|
|
|
|
HRESULT GetSelectedUserName(IDsObjectPicker *pDsObjectPicker,
|
|
LPWSTR *ppwszSelectedUserSAM,
|
|
LPWSTR *ppwszSelectedUserUPN);
|
|
|
|
BOOL SignWithCert(LPSTR pszCSPName,
|
|
DWORD dwCSPType,
|
|
PCCERT_CONTEXT pSigningCert);
|
|
|
|
|
|
|
|
HRESULT ChkSCardStatus(BOOL fSCardSigningCert,
|
|
PCCERT_CONTEXT pSigningCertCertContext,
|
|
LPSTR pszCSPNameSigningCert,
|
|
DWORD dwCSPTypeSigningCert,
|
|
LPSTR pszContainerSigningCert,
|
|
LPWSTR pwszSelectedCSP,
|
|
LPWSTR *ppwszNewContainerName);
|
|
|
|
|
|
BOOL ChKInsertedCardSigningCert(LPWSTR pwszInsertProvider,
|
|
DWORD dwInsertProviderType,
|
|
LPWSTR pwszReaderName,
|
|
PCCERT_CONTEXT pSignCertContext,
|
|
LPSTR pszSignProvider,
|
|
DWORD dwSignProviderType,
|
|
LPSTR pszSignContainer,
|
|
BOOL *pfSame);
|
|
|
|
BOOL DecodeBlobW(WCHAR *pch,
|
|
DWORD cch,
|
|
BYTE **ppbData,
|
|
DWORD *pcbData);
|
|
|
|
|
|
BOOL EncodeBlobW(BYTE *pbData,
|
|
DWORD cbData,
|
|
DWORD dwFlags,
|
|
WCHAR **ppch,
|
|
DWORD *pcch);
|
|
|
|
|
|
BOOL GetNameFromPKCS10(BYTE *pbPKCS10,
|
|
DWORD cbPKCS10,
|
|
DWORD dwFlags,
|
|
LPSTR pszOID,
|
|
LPWSTR *ppwszName);
|
|
|
|
BOOL VerifyCertTemplateName(PCCERT_CONTEXT pCertContext,
|
|
LPWSTR pwszCertTemplateName);
|
|
|
|
|
|
BOOL WINAPI SelectSignCertCallBack(
|
|
PCCERT_CONTEXT pCertContext,
|
|
BOOL *pfInitialSelectedCert,
|
|
void *pvCallbackData);
|
|
|
|
BOOL VerifyCertChain(PCCERT_CONTEXT pCertContext);
|
|
|
|
BOOL IsNewerCert(PCCERT_CONTEXT pFirstCert,
|
|
PCCERT_CONTEXT pSecondCert);
|
|
|
|
BOOL SmartCardCSP(PCCERT_CONTEXT pCertContext);
|
|
|
|
DWORD GetEncodeFlag(DWORD dwFlags);
|
|
|
|
BOOL GetName(LPWSTR pwszName,
|
|
EXTENDED_NAME_FORMAT NameFormat,
|
|
EXTENDED_NAME_FORMAT DesiredFormat,
|
|
LPWSTR *ppwszDesiredName);
|
|
|
|
|
|
BOOL RetrieveCAName(DWORD dwFlags,
|
|
SCrdEnroll_CA_INFO *pCAInfo,
|
|
LPWSTR *ppwszName);
|
|
|
|
#ifdef __cplusplus
|
|
} // Balance extern "C" above
|
|
#endif
|
|
|
|
|
|
|
|
#endif //__ENRLHELP_H__
|