;*******************************************************************************
;*                                                                            **
;*                     I N T E L   P R O P R I E T A R Y                      **
;*                                                                            **
;*   COPYRIGHT (c) 2018 BY INTEL CORPORATION. ALL RIGHTS RESERVED.  NO        **
;*   PART  OF  THIS  PROGRAM OR PUBLICATION MAY BE REPRODUCED, TRANSMITTED,   **
;*   TRANSCRIBED, STORED IN A RETRIEVAL  SYSTEM,  OR  TRANSLATED  INTO  ANY   **
;*   LANGUAGE OR COMPUTER LANGUAGE IN ANY FORM OR BY ANY MEANS, ELECTRONIC,   **
;*   MECHANICAL, MAGNETIC, OPTICAL, CHEMICAL, MANUAL, OR OTHERWISE, WITHOUT   **
;*   THE PRIOR WRITTEN PERMISSION OF :                                        **
;*                                                                            **
;*                             INTEL CORPORATION                              **
;*                                                                            **
;*                          2200 MISSION COLLEGE BLVD                         **
;*                                                                            **
;*                     SANTA CLARA, CALIFORNIA 95052-8119                     **
;*                                                                            **
;*******************************************************************************
;
;
; File Name: iclsClient.inf
; Install information file for UWD iCLS Client
;--------- Version Section ---------------------------------------------------

[Version]
Signature="$WINDOWS NT$"
Class=SoftwareComponent 
ClassGuid={5c4c3332-344d-483c-8739-259e934c9cc8}
Provider=%ManufacturerName%
CatalogFile=iclsClient.cat
DriverVer = 04/12/2018,1.49.213.1

[SourceDisksNames]
1 = %Location%

[SourceDisksFiles]
x86_iclsClient.dll                = 1,iCLS\x86
x86_iclsClientInternal.dll        = 1,iCLS\x86
x86_iclsProxy.dll                 = 1,iCLS\x86
x86_iclsProxyInternal.dll         = 1,iCLS\x86
x86_IntelPTTEKRecertification.exe = 1,iCLS\x86
x86_libeay32.dll                  = 1,iCLS\x86
x86_SocketHeciServer.exe          = 1,iCLS\x86
x86_ssleay32.dll                  = 1,iCLS\x86
x86_TPMProvisioningService.exe    = 1,iCLS\x86

iclsClient.dll                    = 1,iCLS\x64
iclsClientInternal.dll            = 1,iCLS\x64
iclsProxy.dll                     = 1,iCLS\x64
iclsProxyInternal.dll             = 1,iCLS\x64
IntelPTTEKRecertification.exe     = 1,iCLS\x64
libeay32.dll                      = 1,iCLS\x64
SocketHeciServer.exe              = 1,iCLS\x64
ssleay32.dll                      = 1,iCLS\x64
TPMProvisioningService.exe        = 1,iCLS\x64

development_tools.txt             = 1,iCLS\Documents
License.txt                       = 1,iCLS\Documents
Readme.txt                        = 1,iCLS\Documents
redist.txt                        = 1,iCLS\Documents
Third Party Licenses.txt          = 1,iCLS\Documents
                                  
cacert.pem                        = 1,iCLS\conf
epid2_paramcert.dat               = 1,iCLS\conf
EPIDGroupCertLegacy.cer           = 1,iCLS\conf
EPIDGroupCertX509.cer             = 1,iCLS\conf
epid_paramcert.dat                = 1,iCLS\conf
iclsProxy.conf                    = 1,iCLS\conf

x86_msvcp140.dll                  = 1,vs2015\x86
x86_vcruntime140.dll              = 1,vs2015\x86
msvcp140.dll                      = 1,vs2015\x64
vcruntime140.dll                  = 1,vs2015\x64

[DestinationDirs]
iclsDir	                          = 11,%iCLSLocation%\lib      ; x32 on x32 OS
icls86Dir	                      = 11,%iCLSLocation%\lib32    ; x32 on x64 OS
icls64Dir	                      = 11,%iCLSLocation%\lib      ; x64 on x64 OS
confDir   	                      = 11,%iCLSLocation%\conf
docsDir   	                      = 11,%iCLSLocation%\Documents
vs2015RedistDir                   = 11,%iCLSLocation%\lib      ; x32 on x32 OS
vs2015Redistx86Dir                = 11,%iCLSLocation%\lib32    ; x32 on x64 OS
vs2015Redistx64Dir                = 11,%iCLSLocation%\lib      ; x64 on x64 OS

;--------- Manufacturer and Models Sections ----------------------------------

[Manufacturer]
%ManufacturerName%=Intel, NTx86.10.0, NTamd64.10.0

[Intel.NTx86.10.0]
%Location% = IclsClientInstallSection_NTx86, SWC\PROVIDER_INTEL_COMPONENT_ICLSCLIENT

[Intel.NTamd64.10.0]
%Location% = IclsClientInstallSection_NTamd64, SWC\PROVIDER_INTEL_COMPONENT_ICLSCLIENT

[IclsClientInstallSection_NTx86]
CopyFiles = iclsDir,confDir,docsDir,vs2015RedistDir
AddReg = IclsClientSoftwareReg86

[IclsClientInstallSection_NTamd64]
CopyFiles = icls86Dir,icls64Dir,confDir,docsDir,vs2015Redistx64Dir,vs2015Redistx86Dir
AddReg = IclsClientSoftwareReg64

;---- Registry HKLM\SYSTEM\CurrentControlSet\Control\Class\{5c4c3332-344d-483c-8739-259e934c9cc8}\0000\iCLS Client ----

[IclsClientSoftwareReg64]
HKR, "iCLS Client", "InstallDir64",%REG_SZ%,%11%\%iCLSLocation%\lib
HKR, "iCLS Client", "InstallDir32",%REG_SZ%,%11%\..\Sysnative\%iCLSLocation%\lib32
HKR, "iCLS Client", "API_Version",%REG_DWORD%,1
HKR, "iCLS Client", "buildNumber",%REG_SZ%,%iCLSVersion%
HKR, "iCLS Client\HeciServer", "SocketServiceName", %REG_SZ%, %SocketHECIServiceName%

[IclsClientSoftwareReg86]
HKR, "iCLS Client", "InstallDir32",%REG_SZ%,%11%\%iCLSLocation%\lib
HKR, "iCLS Client", "API_Version",%REG_DWORD%,1
HKR, "iCLS Client", "buildNumber",%REG_SZ%,%iCLSVersion%
HKR, "iCLS Client\HeciServer", "SocketServiceName", %REG_SZ%, %SocketHECIServiceName%

;--------- Services Section --------------------------------------------------

[IclsClientInstallSection_NTx86.Services]
AddService = %SocketHECIServiceName%, , SocketHeciServer_Install
AddService = %TPMProvisioningServiceName%, , TPMProvisioningService_Install

[IclsClientInstallSection_NTamd64.Services]
AddService = %SocketHECIServiceName%, , SocketHeciServer_Install
AddService = %TPMProvisioningServiceName%, , TPMProvisioningService_Install

;--------- Socket Heci Server Service ----------------------------------------

[SocketHeciServer_Install]
DisplayName    = %SocketHECIServiceName%
Description    = "Version: "%iCLSVersion%
ServiceType    = 0x00000010      ; SERVICE_WIN32_OWN_PROCESS
StartType      = 2               ; SERVICE_AUTO_START
ErrorControl   = 0               ; SERVICE_ERROR_IGNORE
ServiceBinary  = """%11%\%iCLSLocation%\lib\SocketHeciServer.exe"""
Security       = "D:(A;;CCLCSWRPLO;;;WD)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"

;--------- TPM Provisioning Service ------------------------------------------

[TPMProvisioningService_Install]
DisplayName    = %TPMProvisioningServiceName%
Description    = "Version: "%iCLSVersion%
ServiceType    = 0x00000010      ; SERVICE_WIN32_OWN_PROCESS
StartType      = 2               ; SERVICE_AUTO_START
ErrorControl   = 0               ; SERVICE_ERROR_IGNORE
ServiceBinary  = """%11%\%iCLSLocation%\lib\TPMProvisioningService.exe"""
Security       = "D:(A;;CCLCSWRPLO;;;WD)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"

;--------- Files Section -----------------------------------------------------

[iclsDir]
IntelPTTEKRecertification.exe,x86_IntelPTTEKRecertification.exe
SocketHeciServer.exe,x86_SocketHeciServer.exe
TPMProvisioningService.exe,x86_TPMProvisioningService.exe
iclsClient.dll,x86_iclsClient.dll
iclsClientInternal.dll,x86_iclsClientInternal.dll
iclsProxy.dll,x86_iclsProxy.dll
iclsProxyInternal.dll,x86_iclsProxyInternal.dll
libeay32.dll,x86_libeay32.dll
ssleay32.dll,x86_ssleay32.dll

[icls86Dir]
iclsClient.dll,x86_iclsClient.dll
iclsClientInternal.dll,x86_iclsClientInternal.dll
iclsProxy.dll,x86_iclsProxy.dll
iclsProxyInternal.dll,x86_iclsProxyInternal.dll
libeay32.dll,x86_libeay32.dll
ssleay32.dll,x86_ssleay32.dll

[icls64Dir]
iclsClient.dll
iclsClientInternal.dll
iclsProxy.dll
iclsProxyInternal.dll
IntelPTTEKRecertification.exe
libeay32.dll
SocketHeciServer.exe
ssleay32.dll
TPMProvisioningService.exe

[confDir]
cacert.pem
epid2_paramcert.dat
EPIDGroupCertLegacy.cer
EPIDGroupCertX509.cer
epid_paramcert.dat
iclsProxy.conf

[docsDir]
development_tools.txt
License.txt
Readme.txt
redist.txt
Third Party Licenses.txt

[vs2015RedistDir]
msvcp140.dll,x86_msvcp140.dll
vcruntime140.dll,x86_vcruntime140.dll

[vs2015Redistx86Dir]
msvcp140.dll,x86_msvcp140.dll
vcruntime140.dll,x86_vcruntime140.dll

[vs2015Redistx64Dir]
msvcp140.dll
vcruntime140.dll

;--------- Strings Section ---------------------------------------------------

[Strings]
ManufacturerName               = "Intel"
Location                       = "Intel(R) iCLS Client"
iCLSLocation                   = "Intel\iCLS Client"
iCLSVersion = "1.49.213.1"
SocketHECIServiceName          = "Intel(R) Capability Licensing Service TCP IP Interface"
TPMProvisioningServiceName     = "Intel(R) TPM Provisioning Service"
                               
REG_SZ                         = 0x00000000
REG_DWORD                      = 0x00010001
