129 lines
5.4 KiB
C
129 lines
5.4 KiB
C
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1997 - 1999
|
|
//
|
|
// File: cautil.h
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
//header file for utility functions
|
|
|
|
//--------------------------------------------------------------------
|
|
//
|
|
// CAUtilGetCADisplayName
|
|
//
|
|
// Get the display name of the CA based on its real name
|
|
//
|
|
//--------------------------------------------------------------------
|
|
BOOL CAUtilGetCADisplayName(DWORD dwCAFindFlags,
|
|
LPWSTR pwszCAName,
|
|
LPWSTR *ppwszCADisplayName);
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
//
|
|
// Verify that the user has the correct permision to
|
|
// ask for the requested certificatd types
|
|
//
|
|
//--------------------------------------------------------------------
|
|
BOOL CAUtilValidCertType(PCCRYPTUI_WIZ_CERT_REQUEST_INFO pCertRequestInfo,
|
|
CERT_WIZARD_INFO *pCertWizardInfo);
|
|
|
|
BOOL CAUtilValidCertTypeNoDS(HCERTTYPE hCertType,
|
|
LPWSTR pwszCertDNName,
|
|
CERT_WIZARD_INFO *pCertWizardInfo);
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
//
|
|
//Retrieve a list of CAs what supports the required certificate types
|
|
//
|
|
// The CA returned will support all the certificate types required.
|
|
// 1. Check the permission
|
|
// 2. Check for the subject name
|
|
//
|
|
// The CA returned will also support the CSP that user specified
|
|
// 1. If the CSP type is selected, then use it
|
|
// 1.1 If the CSP type is not sepecified and UILess mode, use RSA_FULL
|
|
// 1.2 If the CSP type is not sepecified and UI mode, no need to check
|
|
//---------------------------------------------------------------------
|
|
BOOL CAUtilRetrieveCAFromCertType(
|
|
CERT_WIZARD_INFO *pCertWizardInfo,
|
|
PCCRYPTUI_WIZ_CERT_REQUEST_INFO pCertRequestInfo,
|
|
BOOL fMultipleCA, //only need one CA
|
|
DWORD dwNameFlag,
|
|
DWORD *pdwCACount,
|
|
LPWSTR **ppwszCALocation,
|
|
LPWSTR **ppwszCAName);
|
|
|
|
//--------------------------------------------------------------------
|
|
//
|
|
//Based on the CA name and CA location, get a list of certificate type
|
|
//and their extensions
|
|
//
|
|
//---------------------------------------------------------------------
|
|
|
|
BOOL CAUtilGetCertTypeNameAndExtensionsNoDS
|
|
(CERT_WIZARD_INFO *pCertWizardInfo,
|
|
LPWSTR pwszCertDNName,
|
|
HCERTTYPE hCertType,
|
|
LPWSTR *pwszCertType,
|
|
LPWSTR *ppwszDisplayCertType,
|
|
PCERT_EXTENSIONS *pCertExtensions,
|
|
DWORD *pdwKeySpec,
|
|
DWORD *pdwMinKeySize,
|
|
DWORD *pdwCSPCount,
|
|
DWORD **ppdwCSPList,
|
|
DWORD *pdwRASignature,
|
|
DWORD *pdwEnrollmentFlags,
|
|
DWORD *pdwSubjectNameFlags,
|
|
DWORD *pdwPrivateKeyFlags,
|
|
DWORD *pdwGeneralFlags);
|
|
|
|
BOOL CAUtilGetCertTypeNameAndExtensions(
|
|
CERT_WIZARD_INFO *pCertWizardInfo,
|
|
PCCRYPTUI_WIZ_CERT_REQUEST_INFO pCertRequestInfo,
|
|
LPWSTR pwszCALocation,
|
|
LPWSTR pwszCAName,
|
|
DWORD *pdwCertType,
|
|
LPWSTR **ppwszCertType,
|
|
LPWSTR **ppwszDisplayCertType,
|
|
PCERT_EXTENSIONS **ppCertExtensions,
|
|
DWORD **ppdwKeySpec,
|
|
DWORD **ppdwCertTypeFlag,
|
|
DWORD **ppdwCSPCount,
|
|
DWORD ***ppdwCSPList,
|
|
DWORD **ppdwRASignature,
|
|
DWORD **ppdwEnrollmentFlags,
|
|
DWORD **ppdwSubjectNameFlags,
|
|
DWORD **ppdwPrivateKeyFlags,
|
|
DWORD **ppdwGeneralFlags
|
|
);
|
|
|
|
//--------------------------------------------------------------------
|
|
//
|
|
//Retrieve the CA information based on a certificate
|
|
//
|
|
//---------------------------------------------------------------------
|
|
BOOL CAUtilRetrieveCAFromCert(
|
|
CERT_WIZARD_INFO *pCertWizardInfo,
|
|
PCCRYPTUI_WIZ_CERT_REQUEST_INFO pCertRequestInfo,
|
|
LPWSTR *pwszCALocation,
|
|
LPWSTR *pwszCAName);
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
//
|
|
//From the API's cert type name, get the real name with GUID
|
|
//
|
|
//---------------------------------------------------------------------
|
|
BOOL CAUtilGetCertTypeName(CERT_WIZARD_INFO *pCertWizardInfo,
|
|
LPWSTR pwszAPIName,
|
|
LPWSTR *ppwszCTName);
|
|
|
|
BOOL CAUtilGetCertTypeNameNoDS(IN HCERTTYPE hCertType,
|
|
OUT LPWSTR *ppwszCTName);
|