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.
233 lines
5.5 KiB
233 lines
5.5 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1996 - 1996
|
|
//
|
|
// File: global.h
|
|
//
|
|
// Contents: Top level internal header file for CertStor APIs. This file
|
|
// includes all base header files and contains other global
|
|
// stuff.
|
|
//
|
|
// History: 14-May-96 kevinr created
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
#include <windows.h>
|
|
#include <assert.h>
|
|
#include <malloc.h>
|
|
#include <memory.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <time.h>
|
|
#include <crtdbg.h>
|
|
#include <shlwapi.h>
|
|
|
|
#include <userenv.h>
|
|
#include <shlobj.h>
|
|
|
|
#include "crtem.h"
|
|
|
|
#include "wincrypt.h"
|
|
#include "ossutil.h"
|
|
#include "asn1code.h"
|
|
#include "unicode.h"
|
|
#include "crypttls.h"
|
|
#include "crypthlp.h"
|
|
#include "certprot.h"
|
|
#include "pkialloc.h"
|
|
#include "asn1util.h"
|
|
#include "utf8.h"
|
|
|
|
extern HMODULE hCertStoreInst;
|
|
#include "resource.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if 0 // JLS
|
|
|
|
// # of bytes for a hash. Such as, SHA (20) or MD5 (16)
|
|
#define MAX_HASH_LEN 20
|
|
#define SHA1_HASH_LEN 20
|
|
|
|
// Null terminated ascii hex characters of the hash.
|
|
// For Win95 Remote Registry Access:: Need extra character
|
|
#define MAX_CERT_REG_VALUE_NAME_LEN (2 * MAX_HASH_LEN + 1 + 1)
|
|
#define MAX_HASH_NAME_LEN MAX_CERT_REG_VALUE_NAME_LEN
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// Compares the certificate's public key with the provider's public key
|
|
// to see if they are identical.
|
|
//
|
|
// Returns TRUE if the keys are identical.
|
|
//
|
|
// Implemented in certhlpr.cpp.
|
|
//--------------------------------------------------------------------------
|
|
BOOL
|
|
WINAPI
|
|
I_CertCompareCertAndProviderPublicKey(
|
|
IN PCCERT_CONTEXT pCert,
|
|
IN HCRYPTPROV hProv,
|
|
IN DWORD dwKeySpec
|
|
);
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// Registry support functions
|
|
//
|
|
// Implemented in logstor.cpp.
|
|
//--------------------------------------------------------------------------
|
|
|
|
void
|
|
ILS_CloseRegistryKey(
|
|
IN HKEY hKey
|
|
);
|
|
|
|
BOOL
|
|
ILS_ReadDWORDValueFromRegistry(
|
|
IN HKEY hKey,
|
|
IN LPCWSTR pwszValueName,
|
|
IN DWORD *pdwValue
|
|
);
|
|
|
|
BOOL
|
|
ILS_ReadBINARYValueFromRegistry(
|
|
IN HKEY hKey,
|
|
IN LPCWSTR pwszValueName,
|
|
OUT BYTE **ppbValue,
|
|
OUT DWORD *pcbValue
|
|
);
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// Key Identifier registry and roaming file support functions
|
|
//
|
|
// Implemented in logstor.cpp.
|
|
//--------------------------------------------------------------------------
|
|
BOOL
|
|
ILS_ReadKeyIdElement(
|
|
IN const CRYPT_HASH_BLOB *pKeyIdentifier,
|
|
IN BOOL fLocalMachine,
|
|
IN OPTIONAL LPCWSTR pwszComputerName,
|
|
OUT BYTE **ppbElement,
|
|
OUT DWORD *pcbElement
|
|
);
|
|
BOOL
|
|
ILS_WriteKeyIdElement(
|
|
IN const CRYPT_HASH_BLOB *pKeyIdentifier,
|
|
IN BOOL fLocalMachine,
|
|
IN OPTIONAL LPCWSTR pwszComputerName,
|
|
IN const BYTE *pbElement,
|
|
IN DWORD cbElement
|
|
);
|
|
BOOL
|
|
ILS_DeleteKeyIdElement(
|
|
IN const CRYPT_HASH_BLOB *pKeyIdentifier,
|
|
IN BOOL fLocalMachine,
|
|
IN OPTIONAL LPCWSTR pwszComputerName
|
|
);
|
|
|
|
typedef BOOL (*PFN_ILS_OPEN_KEYID_ELEMENT)(
|
|
IN const CRYPT_HASH_BLOB *pKeyIdentifier,
|
|
IN const BYTE *pbElement,
|
|
IN DWORD cbElement,
|
|
IN void *pvArg
|
|
);
|
|
|
|
BOOL
|
|
ILS_OpenAllKeyIdElements(
|
|
IN BOOL fLocalMachine,
|
|
IN OPTIONAL LPCWSTR pwszComputerName,
|
|
IN void *pvArg,
|
|
IN PFN_ILS_OPEN_KEYID_ELEMENT pfnOpenKeyId
|
|
);
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// Protected Root functions
|
|
//
|
|
// Implemented in protroot.cpp.
|
|
//--------------------------------------------------------------------------
|
|
BOOL
|
|
IPR_IsCurrentUserRootsAllowed();
|
|
|
|
BOOL
|
|
IPR_OnlyLocalMachineGroupPolicyRootsAllowed();
|
|
|
|
void
|
|
IPR_InitProtectedRootInfo();
|
|
|
|
BOOL
|
|
IPR_DeleteUnprotectedRootsFromStore(
|
|
IN HCERTSTORE hStore,
|
|
OUT BOOL *pfProtected
|
|
);
|
|
|
|
int
|
|
IPR_ProtectedRootMessageBox(
|
|
IN PCCERT_CONTEXT pCert,
|
|
IN UINT wActionID,
|
|
IN UINT uFlags
|
|
);
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// Find chain helper functions
|
|
//
|
|
// Implemented in fndchain.cpp.
|
|
//--------------------------------------------------------------------------
|
|
BOOL IFC_IsEndCertValidForUsage(
|
|
IN PCCERT_CONTEXT pCert,
|
|
IN LPCSTR pszUsageIdentifier
|
|
);
|
|
|
|
//#include "ossx509.h"
|
|
|
|
//+-------------------------------------------------------------------------
|
|
// Convert to/from OssEncodedOID
|
|
//
|
|
// Implemented in oidconv.cpp.
|
|
//--------------------------------------------------------------------------
|
|
BOOL
|
|
WINAPI
|
|
I_CryptOIDConvDllMain(
|
|
HMODULE hInst,
|
|
ULONG ulReason,
|
|
LPVOID lpReserved
|
|
);
|
|
#endif // 0 // JLS
|
|
|
|
BOOL
|
|
WINAPI
|
|
I_CryptSetOssEncodedOID(
|
|
IN LPCSTR pszObjId,
|
|
OUT OssEncodedOID *pOss
|
|
);
|
|
void
|
|
WINAPI
|
|
I_CryptGetOssEncodedOID(
|
|
IN OssEncodedOID *pOss,
|
|
IN DWORD dwFlags,
|
|
OUT LPSTR *ppszObjId,
|
|
IN OUT BYTE **ppbExtra,
|
|
IN OUT LONG *plRemainExtra
|
|
);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
} // Balance extern "C" above
|
|
#endif
|
|
|
|
#include "ossconv.h"
|
|
|
|
#if 0 // JLS
|
|
|
|
#include "ossutil.h"
|
|
|
|
#include "ekuhlpr.h"
|
|
#include "origin.h"
|
|
#include <scrdcert.h>
|
|
#include <scstore.h>
|
|
|
|
#pragma hdrstop
|
|
|
|
#endif // 0 //JLS
|