Browse Source

Finally got the Windows x64 driver signed correctly. Turns out signtool.exe with the older (NDIS5) version of the Windows DDK does not understand cross-certificates, yet it blithely continues on and signs incorrectly anyway. Got it working by using DigiCert's own certificate tool which includes a sign files operation. Must be done manually but this doesn't have to be done often. F@!K.

Adam Ierymenko 11 years ago
parent
commit
a0916b926f

BIN
ext/bin/tap-windows/x64/WdfCoinstaller01011.dll


BIN
ext/bin/tap-windows/x64/zttap200.cat


+ 79 - 0
ext/bin/tap-windows/x64/zttap200.inf

@@ -0,0 +1,79 @@
+[Version]
+Signature="$WINDOWS NT$"
+Class=Net
+ClassGuid={4d36e972-e325-11ce-bfc1-08002be10318}
+Provider=%Provider%
+CatalogFile=zttap200.cat
+DriverVer=01/22/2014,22.4.22.918
+
+[Strings]
+DeviceDescription = "ZeroTier One Virtual Network Port"
+Provider = "ZeroTier Networks LLC"
+
+; To build for x86, take NTamd64 off this and off the named section manually, build, then put it back!
+[Manufacturer]
+%Provider%=zttap200,NTamd64
+
+[zttap200]
+%DeviceDescription%=zttap200.ndi,zttap200
+
+[ztTap200.NTamd64]
+%DeviceDescription%=zttap200.ndi,zttap200
+
+[zttap200.ndi]
+CopyFiles       = zttap200.driver,zttap200.files
+AddReg          = zttap200.reg
+AddReg          = zttap200.params.reg
+Characteristics = 0x81
+
+[zttap200.ndi.Services]
+AddService = zttap200,        2, zttap200.service
+
+[zttap200.reg]
+HKR, Ndi,            Service,      0, "zttap200"
+HKR, Ndi\Interfaces, UpperRange,   0, "ndis5"
+HKR, Ndi\Interfaces, LowerRange,   0, "ethernet"
+HKR, ,               Manufacturer, 0, "%Provider%"
+HKR, ,               ProductName,  0, "%DeviceDescription%"
+
+[zttap200.params.reg]
+HKR, Ndi\params\MTU,                  ParamDesc, 0, "MTU"
+HKR, Ndi\params\MTU,                  Type,      0, "int"
+HKR, Ndi\params\MTU,                  Default,   0, "2800"
+HKR, Ndi\params\MTU,                  Optional,  0, "0"
+HKR, Ndi\params\MTU,                  Min,       0, "100"
+HKR, Ndi\params\MTU,                  Max,       0, "2800"
+HKR, Ndi\params\MTU,                  Step,      0, "1"
+HKR, Ndi\params\MediaStatus,          ParamDesc, 0, "Media Status"
+HKR, Ndi\params\MediaStatus,          Type,      0, "enum"
+HKR, Ndi\params\MediaStatus,          Default,   0, "0"
+HKR, Ndi\params\MediaStatus,          Optional,  0, "0"
+HKR, Ndi\params\MediaStatus\enum,     "0",       0, "Application Controlled"
+HKR, Ndi\params\MediaStatus\enum,     "1",       0, "Always Connected"
+HKR, Ndi\params\MAC,                  ParamDesc, 0, "MAC Address"
+HKR, Ndi\params\MAC,                  Type,      0, "edit"
+HKR, Ndi\params\MAC,                  Optional,  0, "1"
+
+[zttap200.service]
+DisplayName = %DeviceDescription%
+ServiceType = 1
+StartType = 3
+ErrorControl = 1
+LoadOrderGroup = NDIS
+ServiceBinary = %12%\zttap200.sys
+
+[SourceDisksNames]
+1 = %DeviceDescription%, zttap200.sys
+
+[SourceDisksFiles]
+zttap200.sys = 1
+
+[DestinationDirs]
+zttap200.files  = 11
+zttap200.driver = 12
+
+[zttap200.files]
+;
+
+[zttap200.driver]
+zttap200.sys,,,6     ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK

BIN
ext/bin/tap-windows/x64/zttap200.sys


+ 83 - 1
windows/TapDriver Package/TapDriver Package.vcxproj

@@ -127,6 +127,8 @@
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Vista Debug|x64'">
     <TimeStampServer>http://timestamp.digicert.com/</TimeStampServer>
     <OutDir>$(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\</OutDir>
+    <DiagnosticMode>true</DiagnosticMode>
+    <EnableInf2cat>true</EnableInf2cat>
   </PropertyGroup>
   <PropertyGroup>
     <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
@@ -145,42 +147,122 @@
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">
     <TimeStampServer>http://timestamp.digicert.com/</TimeStampServer>
     <OutDir>$(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\</OutDir>
+    <DiagnosticMode>true</DiagnosticMode>
+    <EnableInf2cat>true</EnableInf2cat>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Vista Release|x64'">
     <TimeStampServer>http://timestamp.digicert.com/</TimeStampServer>
     <OutDir>$(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\</OutDir>
+    <DiagnosticMode>true</DiagnosticMode>
+    <EnableInf2cat>true</EnableInf2cat>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'">
     <TimeStampServer>http://timestamp.digicert.com/</TimeStampServer>
     <OutDir>$(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\</OutDir>
+    <DiagnosticMode>true</DiagnosticMode>
+    <EnableInf2cat>true</EnableInf2cat>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'">
     <TimeStampServer>http://timestamp.digicert.com/</TimeStampServer>
     <OutDir>$(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\</OutDir>
+    <DiagnosticMode>true</DiagnosticMode>
+    <EnableInf2cat>true</EnableInf2cat>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">
     <TimeStampServer>http://timestamp.digicert.com/</TimeStampServer>
     <OutDir>$(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\</OutDir>
+    <DiagnosticMode>true</DiagnosticMode>
+    <EnableInf2cat>true</EnableInf2cat>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Vista Debug|Win32'">
     <OutDir>$(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\</OutDir>
+    <EnableInf2cat>true</EnableInf2cat>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'">
     <OutDir>$(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\</OutDir>
+    <EnableInf2cat>true</EnableInf2cat>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Vista Release|Win32'">
     <OutDir>$(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\</OutDir>
+    <EnableInf2cat>true</EnableInf2cat>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'">
     <OutDir>$(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\</OutDir>
+    <EnableInf2cat>true</EnableInf2cat>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'">
     <OutDir>$(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\</OutDir>
+    <EnableInf2cat>true</EnableInf2cat>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'">
     <OutDir>$(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\</OutDir>
+    <EnableInf2cat>true</EnableInf2cat>
   </PropertyGroup>
-  <ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Vista Debug|x64'">
+    <DriverSign>
+      <FileDigestAlgorithm>SHA1</FileDigestAlgorithm>
+    </DriverSign>
+    <Inf2Cat>
+      <WindowsVersionList>8_X64;Server8_X64;Server2008R2_X64;7_X64;Server2008_X64;Vista_X64;Server2003_X64;XP_X64</WindowsVersionList>
+    </Inf2Cat>
+    <Inf2Cat>
+      <Verbose>true</Verbose>
+    </Inf2Cat>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">
+    <DriverSign>
+      <FileDigestAlgorithm>SHA1</FileDigestAlgorithm>
+    </DriverSign>
+    <Inf2Cat>
+      <WindowsVersionList>8_X64;Server8_X64;Server2008R2_X64;7_X64;Server2008_X64;Vista_X64;Server2003_X64;XP_X64</WindowsVersionList>
+    </Inf2Cat>
+    <Inf2Cat>
+      <Verbose>true</Verbose>
+    </Inf2Cat>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Vista Release|x64'">
+    <DriverSign>
+      <FileDigestAlgorithm>SHA1</FileDigestAlgorithm>
+    </DriverSign>
+    <Inf2Cat>
+      <WindowsVersionList>8_X64;Server8_X64;Server2008R2_X64;7_X64;Server2008_X64;Vista_X64;Server2003_X64;XP_X64</WindowsVersionList>
+    </Inf2Cat>
+    <Inf2Cat>
+      <Verbose>true</Verbose>
+    </Inf2Cat>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'">
+    <DriverSign>
+      <FileDigestAlgorithm>SHA1</FileDigestAlgorithm>
+    </DriverSign>
+    <Inf2Cat>
+      <WindowsVersionList>8_X64;Server8_X64;Server2008R2_X64;7_X64;Server2008_X64;Vista_X64;Server2003_X64;XP_X64</WindowsVersionList>
+    </Inf2Cat>
+    <Inf2Cat>
+      <Verbose>true</Verbose>
+    </Inf2Cat>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'">
+    <DriverSign>
+      <FileDigestAlgorithm>SHA1</FileDigestAlgorithm>
+    </DriverSign>
+    <Inf2Cat>
+      <WindowsVersionList>8_X64;Server8_X64;Server2008R2_X64;7_X64;Server2008_X64;Vista_X64;Server2003_X64;XP_X64</WindowsVersionList>
+    </Inf2Cat>
+    <Inf2Cat>
+      <Verbose>true</Verbose>
+    </Inf2Cat>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">
+    <DriverSign>
+      <FileDigestAlgorithm>SHA1</FileDigestAlgorithm>
+    </DriverSign>
+    <Inf2Cat>
+      <WindowsVersionList>8_X64;Server8_X64;Server2008R2_X64;7_X64;Server2008_X64;Vista_X64;Server2003_X64;XP_X64</WindowsVersionList>
+    </Inf2Cat>
+    <Inf2Cat>
+      <Verbose>true</Verbose>
+    </Inf2Cat>
   </ItemDefinitionGroup>
   <ItemGroup>
     <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />

+ 46 - 11
windows/TapDriver/TapDriver.vcxproj

@@ -163,35 +163,46 @@
     <TimeStampServer>http://timestamp.digicert.com/</TimeStampServer>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Vista Debug|x64'">
-    <TargetName>ztTap100</TargetName>
+    <TargetName>zttap200</TargetName>
     <OutDir>$(SolutionDir)\Build\$(Platform)\$(ConfigurationName)\</OutDir>
-    <TimeStampServer>http://timestamp.digicert.com/</TimeStampServer>
+    <TimeStampServer>
+    </TimeStampServer>
+    <DiagnosticMode>true</DiagnosticMode>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">
-    <TargetName>ztTap100</TargetName>
+    <TargetName>zttap200</TargetName>
     <OutDir>$(SolutionDir)\Build\$(Platform)\$(ConfigurationName)\</OutDir>
-    <TimeStampServer>http://timestamp.digicert.com/</TimeStampServer>
+    <TimeStampServer>
+    </TimeStampServer>
+    <DiagnosticMode>true</DiagnosticMode>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Vista Release|x64'">
     <TargetName>zttap200</TargetName>
     <OutDir>$(SolutionDir)\Build\$(Platform)\$(ConfigurationName)\</OutDir>
-    <TimeStampServer>http://timestamp.digicert.com/</TimeStampServer>
+    <TimeStampServer>
+    </TimeStampServer>
     <DiagnosticMode>true</DiagnosticMode>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'">
-    <TargetName>ztTap100</TargetName>
+    <TargetName>zttap200</TargetName>
     <OutDir>$(SolutionDir)\Build\$(Platform)\$(ConfigurationName)\</OutDir>
-    <TimeStampServer>http://timestamp.digicert.com/</TimeStampServer>
+    <TimeStampServer>
+    </TimeStampServer>
+    <DiagnosticMode>true</DiagnosticMode>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'">
-    <TargetName>ztTap100</TargetName>
+    <TargetName>zttap200</TargetName>
     <OutDir>$(SolutionDir)\Build\$(Platform)\$(ConfigurationName)\</OutDir>
-    <TimeStampServer>http://timestamp.digicert.com/</TimeStampServer>
+    <TimeStampServer>
+    </TimeStampServer>
+    <DiagnosticMode>true</DiagnosticMode>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">
-    <TargetName>ztTap100</TargetName>
+    <TargetName>zttap200</TargetName>
     <OutDir>$(SolutionDir)\Build\$(Platform)\$(ConfigurationName)\</OutDir>
-    <TimeStampServer>http://timestamp.digicert.com/</TimeStampServer>
+    <TimeStampServer>
+    </TimeStampServer>
+    <DiagnosticMode>true</DiagnosticMode>
   </PropertyGroup>
   <ItemDefinitionGroup>
     <ClCompile>
@@ -265,6 +276,30 @@
     <Link>
       <AdditionalDependencies Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">C:\WinDDK\7600.16385.1\lib\wnet\amd64\ndis.lib;C:\WinDDK\7600.16385.1\lib\wnet\amd64\ntstrsafe.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
+    <DriverSign>
+      <FileDigestAlgorithm Condition="'$(Configuration)|$(Platform)'=='Vista Debug|x64'">SHA1</FileDigestAlgorithm>
+      <AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Vista Debug|x64'">/t "http://timestamp.digicert.com/" /d "ZeroTier One Virtual Network Port" /sha1 5809bb3255b4f32dd93619c1cf26a7df6c282a89</AdditionalOptions>
+    </DriverSign>
+    <DriverSign>
+      <FileDigestAlgorithm Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">SHA1</FileDigestAlgorithm>
+      <AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'">/t "http://timestamp.digicert.com/" /d "ZeroTier One Virtual Network Port" /sha1 5809bb3255b4f32dd93619c1cf26a7df6c282a89</AdditionalOptions>
+    </DriverSign>
+    <DriverSign>
+      <FileDigestAlgorithm Condition="'$(Configuration)|$(Platform)'=='Vista Release|x64'">SHA1</FileDigestAlgorithm>
+      <AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Vista Release|x64'">/t "http://timestamp.digicert.com/" /d "ZeroTier One Virtual Network Port" /sha1 5809bb3255b4f32dd93619c1cf26a7df6c282a89</AdditionalOptions>
+    </DriverSign>
+    <DriverSign>
+      <FileDigestAlgorithm Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'">SHA1</FileDigestAlgorithm>
+      <AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'">/t "http://timestamp.digicert.com/" /d "ZeroTier One Virtual Network Port" /sha1 5809bb3255b4f32dd93619c1cf26a7df6c282a89</AdditionalOptions>
+    </DriverSign>
+    <DriverSign>
+      <FileDigestAlgorithm Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'">SHA1</FileDigestAlgorithm>
+      <AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'">/t "http://timestamp.digicert.com/" /d "ZeroTier One Virtual Network Port" /sha1 5809bb3255b4f32dd93619c1cf26a7df6c282a89</AdditionalOptions>
+    </DriverSign>
+    <DriverSign>
+      <FileDigestAlgorithm Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">SHA1</FileDigestAlgorithm>
+      <AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'">/t "http://timestamp.digicert.com/" /d "ZeroTier One Virtual Network Port" /sha1 5809bb3255b4f32dd93619c1cf26a7df6c282a89</AdditionalOptions>
+    </DriverSign>
   </ItemDefinitionGroup>
   <ItemGroup>
     <Inf Include="zttap200.inf" />

BIN
windows/TapDriver/testcert.pfx