//+------------------------------------------------------------------------- // // 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);