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