|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1998 - 1999
//
// File: misc.h
//
//--------------------------------------------------------------------------
#ifndef __MISC_H_
#define __MISC_H_
// count the number of bytes needed to fully store the WSZ
#define WSZ_BYTECOUNT(__z__) \
( (__z__ == NULL) ? 0 : (wcslen(__z__)+1)*sizeof(WCHAR) )
#define IDM_NEW_CERTTYPE 1
#define IDM_EDIT_GLOBAL_CERTTYPE 2
#define IDM_MANAGE 3
LPCWSTR GetNullMachineName(CString* pcstr);
BOOL StringFromDurationUnit(DWORD dwExpirationUnits, CString* pcstr, BOOL fLocalized);
STDMETHODIMP CStringLoad(CString& cstr, IStream *pStm); STDMETHODIMP CStringSave(CString& cstr, IStream *pStm, BOOL fClearDirty);
void DisplayGenericCertSrvError(LPCONSOLE2 pConsole, DWORD dwErr); LPWSTR BuildErrorMessage(DWORD dwErr); BOOL FileTimeToLocalTimeString(FILETIME* pftGMT, LPWSTR* ppszTmp);
BOOL MyGetEnhancedKeyUsages(HCERTTYPE hCertType, CString **aszUsages, DWORD *cUsages, BOOL *pfCritical, BOOL fGetOIDSNotNames); BOOL GetIntendedUsagesString(HCERTTYPE hCertType, CString *pUsageString); BOOL MyGetKeyUsages(HCERTTYPE hCertType, CRYPT_BIT_BLOB **ppBitBlob, BOOL *pfPublicKeyUsageCritical); BOOL MyGetBasicConstraintInfo(HCERTTYPE hCertType, BOOL *pfCA, BOOL *pfPathLenConstraint, DWORD *pdwPathLenConstraint);
LPSTR MyMkMBStr(LPCWSTR pwsz); LPWSTR MyMkWStr(LPCSTR psz);
void MyErrorBox(HWND hwndParent, UINT nIDText, UINT nIDCaption, DWORD dwErrorCode = 0);
LPSTR AllocAndCopyStr(LPCSTR psz); LPWSTR AllocAndCopyStr(LPCWSTR pwsz); BOOL MyGetOIDInfo(LPWSTR string, DWORD stringSize, LPSTR pszObjId);
#define WIZ_DEFAULT_SD L"O:DAG:DAD:(A;;0x00000001;;;DA)"
#define REGSZ_ENABLE_CERTTYPE_EDITING L"EnableCertTypeEditing"
typedef struct _WIZARD_HELPER{ // KeyUsage
CRYPT_BIT_BLOB *pKeyUsage; BYTE KeyUsageBytes[2]; BOOL fMarkKeyUsageCritical; // EnhancedKeyUsage
CERT_ENHKEY_USAGE EnhancedKeyUsage; BOOL fMarkEKUCritical;
// Basic Constraints
CERT_BASIC_CONSTRAINTS2_INFO BasicConstraints2; // other cert type info
CString* pcstrFriendlyName; BOOL fIncludeEmail; BOOL fAllowAutoEnroll; BOOL fAllowCAtoFillInInfo; BOOL fMachine; BOOL fPublishToDS; BOOL fAddTemplateName; BOOL fAddDirectoryPath;
// CSP info
BOOL fPrivateKeyExportable; BOOL fDigitalSignatureContainer; BOOL fKeyExchangeContainer; CString* rgszCSPList; DWORD cCSPs; // page control varaibles
BOOL fShowAdvanced; BOOL fBaseCertTypeUsed; BOOL fInEditCertTypeMode; BOOL fCleanupOIDCheckBoxes; CString* pcstrBaseCertName;
// fonts
CFont BigBoldFont; CFont BoldFont;
// ACL's
PSECURITY_DESCRIPTOR pSD;
BOOL fKeyUsageInitialized; } WIZARD_HELPER, *PWIZARD_HELPER;
BOOL IsCerttypeEditingAllowed();
HRESULT RetrieveCATemplateList( HCAINFO hCAInfo, CTemplateList& list);
HRESULT UpdateCATemplateList( HCAINFO hCAInfo, const CTemplateList& list);
HRESULT AddToCATemplateList( HCAINFO hCAInfo, CTemplateList& list, HCERTTYPE hCertType);
HRESULT RemoveFromCATemplateList( HCAINFO hCAInfo, CTemplateList& list, HCERTTYPE hCertType);
#endif //__MISC_H_
|