//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1995 - 1999 // // File: certhlp.h // // Contents: the header for certhlp.cpp, the helper functions for // CertMgr tool // // // History: 21-July-97 xiaohs created // //-------------------------------------------------------------------------- #ifndef CERTHLP_H #define CERTHLP_H #ifdef __cplusplus extern "C" { #endif BOOL CheckParameter(); BOOL ParseSwitch (int *pArgc, WCHAR **pArgv[]); void Usage(void); void UndocumentedUsage(); BOOL InitModule(); wchar_t *IDSwcscat(HMODULE hModule, WCHAR *pwsz, int idsString); BOOL SetParam(WCHAR **ppwszParam, WCHAR *pwszValue); BOOL OpenGenericStore(LPWSTR wszStoreName, BOOL fSystemStore, DWORD dwStoreFlag, LPSTR szStoreProvider, DWORD dwStoreOpenFlag, BOOL fCheckExist, HCERTSTORE *phCertStore); BOOL AddCertStore(HCERTSTORE hCertStore); BOOL DeleteCertStore(HCERTSTORE hCertStore); BOOL PutCertStore(HCERTSTORE hCertStore); BOOL SaveStore(HCERTSTORE hSrcStore); BOOL SetEKUProperty( HCERTSTORE hSrcStore); BOOL SetNameProperty( HCERTSTORE hSrcStore); PCCRL_CONTEXT FindCRLInStore(HCERTSTORE hCertStore, CRYPT_HASH_BLOB *pBlob); BOOL MoveItem(HCERTSTORE hSrcStore, HCERTSTORE hDesStore, DWORD dwItem); BOOL DeleteItem(HCERTSTORE hSrcStore, DWORD dwItem); BOOL DisplayCertAndPrompt(PCCERT_CONTEXT *rgpCertContext, DWORD dwCertCount, DWORD *pdwIndex); BOOL DisplayCRLAndPrompt(PCCRL_CONTEXT *rgpCRLContext, DWORD dwCRLCount, DWORD *pdwIndex); BOOL DisplayCTLAndPrompt(PCCTL_CONTEXT *rgpCTLContext, DWORD dwCTLCount, DWORD *pdwIndex); BOOL BuildCertList(HCERTSTORE hCertStore, LPWSTR wszCertCN, PCCERT_CONTEXT **prgpCertContext, DWORD *pdwCertCount); BOOL BuildCRLList( HCERTSTORE hCertStore, PCCRL_CONTEXT **prgpCRLContext, DWORD *pdwCRLCount); BOOL BuildCTLList( HCERTSTORE hCertStore, PCCTL_CONTEXT **prgpCTLContext, DWORD *pdwCTLCount); BOOL DisplayCertStore(HCERTSTORE hCertStore); BOOL DisplayCert(PCCERT_CONTEXT pCertContext, DWORD dwItem); BOOL DisplayCTL(PCCTL_CONTEXT pCTLContext, DWORD dwItem); BOOL DisplayCRL(PCCRL_CONTEXT pCRLContext, DWORD dwItem); BOOL DisplaySignerInfo(HCRYPTMSG hMsg, DWORD dwItem); HCERTSTORE OpenSipStore(LPWSTR pwszStoreFilename); HRESULT Base64ToBytes(CHAR *pEncode, DWORD cbEncode, BYTE **ppb, DWORD *pcb); HRESULT Base64ToBytesW(WCHAR *pEncode, DWORD cbEncode, BYTE **ppb, DWORD *pcb); BOOL GetBase64Decoded(LPWSTR wszStoreName, BYTE **ppbByte, DWORD *pcbByte); HCERTSTORE OpenEncodedCRL(LPWSTR pwszStoreFilename); HCERTSTORE OpenEncodedCTL (LPWSTR pwszStoreFilename); HCERTSTORE OpenEncodedCert (LPWSTR pwszStoreFilename); BOOL SetParam(WCHAR **ppwszParam, WCHAR *pwszValue); HRESULT WSZtoBLOB(LPWSTR pwsz, BYTE **ppbByte, DWORD *pcbByte); DWORD SkipOverIdentifierAndLengthOctets( IN const BYTE *pbDER, IN DWORD cbDER ); BOOL SignNoContentWrap(IN const BYTE *pbDER, IN DWORD cbDER); BOOL WINAPI FormatBasicConstraints2( DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat); void PrintCtlEntries(PCCTL_CONTEXT pCtl, DWORD dwDisplayFlag); void PrintCrlEntries(DWORD cEntry, PCRL_ENTRY pEntry, DWORD dwDisplayFlags); BOOL DisplaySignerInfo(HCRYPTMSG hMsg, DWORD dwItem); void PrintBytes(LPWSTR pwszHdr, BYTE *pb, DWORD cbSize); void PrintAttributes(DWORD cAttr, PCRYPT_ATTRIBUTE pAttr, DWORD dwItem); void DecodeAndDisplayAltName( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayAltName( PCERT_ALT_NAME_INFO pInfo, DWORD dwDisplayFlags); void DisplayAltNameEntry( PCERT_ALT_NAME_ENTRY pEntry, DWORD dwDisplayFlags); void DisplayThumbprint( LPWSTR pwszHash, BYTE *pbHash, DWORD cbHash ); LPWSTR FileTimeText(FILETIME *pft); void PrintAuxCertProperties(PCCERT_CONTEXT pCert,DWORD dwDisplayFlags); void DecodeAndDisplayCtlUsage( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplaySignature( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags ); BOOL DecodeName(BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void PrintExtensions(DWORD cExt, PCERT_EXTENSION pExt, DWORD dwDisplayFlags); void DisplaySMIMECapabilitiesExtension( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayEnhancedKeyUsageExtension( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayCommonNameExtension( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplaySpcFinancialCriteriaExtension( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplaySpcMinimalCriteriaExtension( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplaySpcLink(PSPC_LINK pSpcLink); void DisplaySpcSpAgencyExtension( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayPoliciesExtension( int idsIDS, BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayKeyUsageExtension( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayBasicConstraints2Extension( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayBasicConstraintsExtension( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayKeyUsage(BYTE bFlag); void DisplayKeyUsageRestrictionExtension( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayCRLReason( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayAltNameExtension( int idsIDS, BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayKeyAttrExtension( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayCrlDistPointsExtension( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayAuthorityKeyIdExtension( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayAuthorityKeyId2Extension( BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayAnyString( int idsIDS, BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayBits( int idsIDS, BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); void DisplayOctetString( int idsIDS, BYTE *pbEncoded, DWORD cbEncoded, DWORD dwDisplayFlags); LPCWSTR GetOIDName(LPCSTR pszOID, DWORD dwGroupId = 0); BOOL InstalledFormat(LPSTR szStructType, BYTE *pbEncoded, DWORD cbEncoded); WCHAR *GuidText(GUID *pguid); void *AllocAndGetMsgParam( IN HCRYPTMSG hMsg, IN DWORD dwParamType, IN DWORD dwIndex, OUT DWORD *pcbData ); HRESULT SZtoWSZ(LPSTR szStr,LPWSTR *pwsz); void *TestNoCopyDecodeObject( IN LPCSTR lpszStructType, IN const BYTE *pbEncoded, IN DWORD cbEncoded, OUT DWORD *pcbInfo = NULL ); BOOL IsTimeValidCtl(IN PCCTL_CONTEXT pCtl); void DisplaySerialNumber(PCRYPT_INTEGER_BLOB pSerialNumber); void ReverseBytes(IN OUT PBYTE pbIn, IN DWORD cbIn); ALG_ID GetAlgid(LPCSTR pszOID, DWORD dwGroupId); void GetSignAlgids( IN LPCSTR pszOID, OUT ALG_ID *paiHash, OUT ALG_ID *paiPubKey ); void GetSignAlgids( IN LPCSTR pszOID, OUT ALG_ID *paiHash, OUT ALG_ID *paiPubKey ); void DisplayTimeStamp(BYTE *pbEncoded,DWORD cbEncoded,DWORD dwDisplayFlags); #ifdef __cplusplus } #endif #endif // CERTHLP_H