//+-------------------------------------------------------------------------- // // Copyright (c) 1997-1999 Microsoft Corporation // // File: // // Contents: // // History: // //--------------------------------------------------------------------------- #ifndef __TLSAPIP_H__ #define __TLSAPIP_H__ #include #include "tlsapi.h" #include "tlsrpc.h" #define TLSCERT_TYPE_EXCHANGE 1 #define TLSCERT_TYPE_SIGNATURE 2 #define ENTERPRISE_SERVER_MULTI L"EnterpriseServerMulti" #define TLS_RTM_VERSION_BIT 0x20000000 #define IS_LSSERVER_RTM(x) ((x & TLS_RTM_VERSION_BIT) > 0) #define TLS_VERSION_ENTERPRISE_BIT 0x80000000 #define CURRENT_TLSERVER_VERSION(version) HIBYTE(LOWORD(version)) #define GET_LSSERVER_MAJOR_VERSION(version) HIBYTE(LOWORD(version)) #define GET_LSSERVER_MINOR_VERSION(version) LOBYTE(LOWORD(version)) #define IS_ENFORCE_LSSERVER(version) \ ((version & 0x40000000) > 0) //#define PERMANENT_LICENSE_LEASE_EXPIRE_LEEWAY (30) /* 30 seconds */ #define PERMANENT_LICENSE_LEASE_EXPIRE_LEEWAY (60*60*24*7) /* 7 days */ // // TLSInstallCertificate() certificate type. // #define CERTIFICATE_CA_TYPE 1 #define CERTITICATE_MF_TYPE 2 #define CERTIFICATE_CH_TYPE 3 #define CERTIFICATE_SPK_TYPE 4 #define CERTIFICATE_LEVEL_ROOT 0 typedef struct _LSHydraCertRequest { DWORD dwHydraVersion; PBYTE pbEncryptedHwid; DWORD cbEncryptedHwid; LPTSTR szSubjectRdn; PCERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo; DWORD dwNumCertExtension; PCERT_EXTENSION pCertExtensions; } LSHydraCertRequest, *LPLSHydraCertRequest, *PLSHydraCertRequest; #ifdef __cplusplus extern "C" { #endif DWORD WINAPI RequestToTlsRequest( const LICENSEREQUEST* lpRequest, TLSLICENSEREQUEST* lpRpcRequest ); DWORD WINAPI TlsRequestToRequest( TLSLICENSEREQUEST* lpRpcRequest , LICENSEREQUEST* lpRequest ); DWORD WINAPI TLSReplicateKeyPack( TLS_HANDLE hHandle, DWORD cbLsIdentification, PBYTE pbLsIdentification, LPLSKeyPack lpKeyPack, PDWORD pdwErrCode ); DWORD WINAPI TLSAuditLicenseKeyPack( TLS_HANDLE hHandle, DWORD dwKeyPackId, FILETIME ftStartTime, FILETIME ftEndTime, BOOL bResetCounter, LPTLSKeyPackAudit lplsAudit, PDWORD dwErrCode ); DWORD WINAPI TLSRetrieveTermServCert( TLS_HANDLE hHandle, DWORD cbResponseData, PBYTE pbResponseData, PDWORD cbCert, PBYTE* pbCert, PDWORD pdwErrCode ); DWORD WINAPI TLSRequestTermServCert( TLS_HANDLE hHandle, LPLSHydraCertRequest pRequest, PDWORD cbChallengeData, PBYTE* pbChallengeData, PDWORD pdwErrCode ); DWORD WINAPI TLSInstallCertificate( TLS_HANDLE hHandle, DWORD dwCertType, DWORD dwCertLevel, DWORD cbSingnatureCert, PBYTE pbSingnatureCert, DWORD cbExchangeCert, PBYTE pbExchangeCert, PDWORD pdwErrCode ); DWORD WINAPI TLSGetServerCertificate( TLS_HANDLE hHandle, BOOL bSignCert, PBYTE *ppCertBlob, PDWORD pdwCertBlobLen, PDWORD pdwErrCode ); DWORD WINAPI TLSRegisterLicenseKeyPack( TLS_HANDLE hHandle, LPBYTE pbCHCertBlob, DWORD cbCHCertBlobSize, LPBYTE pbRootCertBlob, DWORD cbRootCertBlob, LPBYTE lpKeyPackBlob, DWORD dwKeyPackBlobLen, PDWORD pdwErrCode ); DWORD WINAPI TLSGetLSPKCS10CertRequest( TLS_HANDLE hHandle, DWORD dwCertType, PDWORD pcbdata, PBYTE* ppbData, PDWORD pdwErrCode ); DWORD WINAPI TLSKeyPackAdd( TLS_HANDLE hHandle, LPLSKeyPack lpKeypack, PDWORD pdwErrCode ); DWORD WINAPI TLSKeyPackSetStatus( TLS_HANDLE hHandle, DWORD dwSetParm, LPLSKeyPack lpKeyPack, PDWORD pdwErrCode ); DWORD WINAPI TLSLicenseSetStatus( TLS_HANDLE hHandle, DWORD dwSetParam, LPLSLicense lpLicense, PDWORD pdwErrCode ); DWORD WINAPI TLSReturnKeyPack( TLS_HANDLE hHandle, DWORD dwKeyPackId, DWORD dwReturnReason, PDWORD pdwErrCode ); DWORD WINAPI TLSReturnLicense( TLS_HANDLE hHandle, DWORD dwKeyPackId, DWORD dwLicenseId, DWORD dwReturnReason, PDWORD pdwErrCode ); DWORD WINAPI TLSAnnounceServer( TLS_HANDLE hHandle, DWORD dwType, FILETIME* ftTime, LPTSTR pszSetupId, LPTSTR pszDomainName, LPTSTR pszMachineName, PDWORD pdwErrCode ); DWORD WINAPI TLSLookupServer( TLS_HANDLE hHandle, LPTSTR pszLookupSetupId, LPTSTR pszLsSetupId, PDWORD pcbSetupId, LPTSTR pszDomainName, PDWORD pcbDomainName, LPTSTR pszLsName, PDWORD pcbMachineName, PDWORD pdwErrCode ); DWORD WINAPI TLSLookupServerFixed( IN TLS_HANDLE hHandle, IN LPTSTR pszLookupSetupId, OUT LPTSTR *pszLsSetupId, OUT LPTSTR *pszDomainName, OUT LPTSTR *pszLsName, IN OUT PDWORD pdwErrCode ); DWORD WINAPI TLSAnnounceLicensePack( TLS_HANDLE hHandle, PTLSReplRecord pReplRecord, OUT PDWORD pdwErrCode ); DWORD WINAPI TLSReturnLicensedProduct( PCONTEXT_HANDLE phContext, PTLSLicenseToBeReturn pClientLicense, PDWORD pdwErrCode ); DWORD WINAPI TLSTriggerReGenKey( IN TLS_HANDLE hHandle, IN BOOL bReserved, OUT PDWORD pdwErrCode ); DWORD WINAPI TLSSetTlsPrivateData( IN TLS_HANDLE hHandle, IN DWORD dwPrivateDataType, IN PTLSPrivateDataUnion pPrivateData, OUT PDWORD pdwErrCode ); DWORD WINAPI TLSGetTlsPrivateData( IN TLS_HANDLE hHandle, IN DWORD dwGetDataType, IN PTLSPrivateDataUnion pGetParm, OUT PDWORD pdwRetDataType, OUT PTLSPrivateDataUnion* ppRetData, OUT PDWORD pdwErrCode ); DWORD WINAPI TLSResponseServerChallenge( IN TLS_HANDLE hHandle, IN PTLSCHALLENGERESPONSEDATA pClientResponse, OUT PDWORD pdwErrCode ); DWORD WINAPI TLSChallengeServer( IN TLS_HANDLE hHandle, IN DWORD dwClientType, IN PTLSCHALLENGEDATA pClientChallenge, OUT PTLSCHALLENGERESPONSEDATA* ppServerResponse, OUT PTLSCHALLENGEDATA* ppServerChallenge, OUT PDWORD pdwErrCode ); DWORD WINAPI TLSTelephoneRegisterLKP( TLS_HANDLE hHandle, DWORD cbData, PBYTE pbData, PDWORD pdwErrCode ); DWORD WINAPI TLSGetServerUniqueId( TLS_HANDLE hHandle, PDWORD pcbData, PBYTE* ppbByte, PDWORD pdwErrCode ); DWORD WINAPI TLSGetServerPID( TLS_HANDLE hHandle, PDWORD pcbData, PBYTE* ppbByte, PDWORD pdwErrCode ); DWORD WINAPI TLSGetServerSPK( TLS_HANDLE hHandle, PDWORD pcbData, PBYTE* ppbByte, PDWORD pdwErrCode ); DWORD WINAPI TLSDepositeServerSPK( TLS_HANDLE hHandle, DWORD cbSPK, PBYTE pbSPK, PCERT_EXTENSIONS pCertExtensions, PDWORD pdwErrCode ); DWORD WINAPI TLSAllocateInternetLicense( IN TLS_HANDLE hHandle, IN const CHALLENGE_CONTEXT ChallengeContext, IN const LICENSEREQUEST* pRequest, IN LPTSTR pszMachineName, IN LPTSTR pszUserName, IN const DWORD cbChallengeResponse, IN const PBYTE pbChallengeResponse, OUT PDWORD pcbLicense, OUT PBYTE* ppbLicense, IN OUT PDWORD pdwErrCode ); DWORD WINAPI TLSReturnInternetLicense( IN TLS_HANDLE hHandle, IN const DWORD cbLicense, IN const PBYTE pbLicense, OUT PDWORD pdwErrCode ); DWORD WINAPI TLSAllocateInternetLicenseEx( IN TLS_HANDLE hHandle, IN const CHALLENGE_CONTEXT ChallengeContext, IN const LICENSEREQUEST* pRequest, IN LPTSTR pszMachineName, IN LPTSTR pszUserName, IN const DWORD cbChallengeResponse, IN const PBYTE pbChallengeResponse, OUT PTLSInternetLicense pInternetLicense, OUT PDWORD pdwErrCode ); DWORD WINAPI TLSReturnInternetLicenseEx( IN TLS_HANDLE hHandle, IN const LICENSEREQUEST* pRequest, IN const ULARGE_INTEGER* pulSerialNumber, IN const DWORD dwQuantity, OUT PDWORD pdwErrCode ); BOOL TLSIsBetaNTServer(); BOOL TLSIsLicenseEnforceEnable(); BOOL TLSRefreshLicenseServerCache( DWORD dwTimeOut ); DWORD WINAPI TLSGenerateCustomerCert( IN TLS_HANDLE hHandle, DWORD dwCertEncodingType, DWORD dwNameAttrCount, CERT_RDN_ATTR rgNameAttr[], DWORD *pcbCert, BYTE **ppbCert, DWORD *pdwErrCode ); #ifdef __cplusplus } #endif #endif