|
|
//+--------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (c) 1997-1999 Microsoft Corporation
//
// File: clrhouse.h
//
// Contents:
// All Clearing house related function
//
// History:
//
// Note:
//---------------------------------------------------------------------------
#ifndef __LICENSE_SERVER_CLEARING_HOUSE_H__
#define __LICENSE_SERVER_CLEARING_HOUSE_H__
//-----------------------------------------------------------------------------
//
// Registry key for storing various certificates
//
#define LSERVER_CERTIFICATE_STORE_BASE LSERVER_SERVER_CERTIFICATE_REGKEY
//-----------------------------------------------------------------------------
// Actual License Server Certificate
//
#define LSERVER_CERTIFICATE_STORE_SIGNATURE "Signature"
#define LSERVER_CERTIFICATE_STORE_EXCHANGE "Exchange"
//-----------------------------------------------------------------------------
// License Server Certificate Chain
//
#define LSERVER_CERTIFICATE_CHAIN_SIGNATURE "SignatureChain"
#define LSERVER_CERTIFICATE_CHAIN_EXCHANGE "ExchangeChain"
#define LSERVER_CERTIFICATE_STORE_CA "CA"
#define LSERVER_CERTIFICATE_STORE_RA "RA"
#define LSERVER_CERTIFICATE_STORE_CH "CH"
#define LSERVER_CERTIFICATE_STORE_ROOT "ROOT"
//------------------------------------------------------------------------------
//
// Registry key for CA certificate
//
#define LSERVER_CERTIFICATE_REG_CA_SIGNATURE \
LSERVER_CERTIFICATE_STORE_BASE _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_SIGNATURE) _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_CA)
#define LSERVER_CERTIFICATE_REG_CA_EXCHANGE \
LSERVER_CERTIFICATE_STORE_BASE _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_EXCHANGE) _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_CA)
//------------------------------------------------------------------------------
//
// Registry key for RA certificate
//
#define LSERVER_CERTIFICATE_REG_MF_SIGNATURE \
LSERVER_CERTIFICATE_STORE_BASE _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_SIGNATURE) _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_RA)
#define LSERVER_CERTIFICATE_REG_MF_EXCHANGE \
LSERVER_CERTIFICATE_STORE_BASE _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_EXCHANGE) _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_RA)
//------------------------------------------------------------------------------
//
// Registry key for CH certificate
//
#define LSERVER_CERTIFICATE_REG_CH_SIGNATURE \
LSERVER_CERTIFICATE_STORE_BASE _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_SIGNATURE) _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_CH)
#define LSERVER_CERTIFICATE_REG_CH_EXCHANGE \
LSERVER_CERTIFICATE_STORE_BASE _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_EXCHANGE) _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_CH)
//------------------------------------------------------------------------------
//
// Registry key for ROOT certificate
//
#define LSERVER_CERTIFICATE_REG_ROOT_SIGNATURE \
LSERVER_CERTIFICATE_STORE_BASE _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_SIGNATURE) _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_ROOT)
#define LSERVER_CERTIFICATE_REG_ROOT_EXCHANGE \
LSERVER_CERTIFICATE_STORE_BASE _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_EXCHANGE) _TEXT("\\") _TEXT(LSERVER_CERTIFICATE_STORE_ROOT)
#ifdef __cplusplus
extern "C" { #endif
BOOL TLSChainIssuerCertificate( HCRYPTPROV hCryptProv, HCERTSTORE hChainFromStore, HCERTSTORE hChainToStore, PCCERT_CONTEXT pSubjectContext );
HCERTSTORE CertOpenRegistryStore( HKEY hKeyType, LPCTSTR szSubKey, HCRYPTPROV hCryptProv, HKEY* phKey ); DWORD TLSSaveCertAsPKCS7( PBYTE pbCert, DWORD cbCert, PBYTE* ppbEncodedCert, PDWORD pcbEncodedCert );
DWORD IsCertificateLicenseServerCertificate( IN HCRYPTPROV hCryptProv, IN DWORD dwCertType, IN DWORD cbPKCS7Cert, IN PBYTE pbPKCS7Cert, IN OUT DWORD* cbLsCert, IN OUT PBYTE* pbLsCert );
DWORD TLSSaveRootCertificateToReg( HCRYPTPROV hCryptProv, HKEY hKey, DWORD cbEncodedCert, PBYTE pbEncodedCert );
DWORD TLSSaveCertificateToReg( HCRYPTPROV hCryptProv, HKEY hKey, DWORD cbPKCS7Cert, PBYTE pbPKCS7Cert );
DWORD TLSSaveRootCertificatesToStore( IN HCRYPTPROV hCryptProv, IN DWORD cbSignatureCert, IN PBYTE pbSignatureCert, IN DWORD cbExchangeCert, IN PBYTE pbExchangeCert );
DWORD TLSSaveCertificatesToStore( IN HCRYPTPROV hCryptProv, IN DWORD dwCertType, IN DWORD dwCertLevel, IN DWORD cbSignatureCert, IN PBYTE pbSignatureCert, IN DWORD cbExchangeCert, IN PBYTE pbExchangeCert );
#ifdef __cplusplus
} #endif
#endif
|