From a0916b926f3db36dccb3b2ce07eb6dd2e6b04909 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Wed, 22 Jan 2014 22:11:22 -0800 Subject: 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. --- ext/bin/tap-windows/x64/WdfCoinstaller01011.dll | Bin 0 -> 1795952 bytes ext/bin/tap-windows/x64/zttap200.cat | Bin 0 -> 10549 bytes ext/bin/tap-windows/x64/zttap200.inf | 79 +++++++++++++++++++ ext/bin/tap-windows/x64/zttap200.sys | Bin 0 -> 31384 bytes .../TapDriver Package/TapDriver Package.vcxproj | 84 ++++++++++++++++++++- windows/TapDriver/TapDriver.vcxproj | 57 +++++++++++--- windows/TapDriver/testcert.pfx | Bin 2651 -> 0 bytes 7 files changed, 208 insertions(+), 12 deletions(-) create mode 100644 ext/bin/tap-windows/x64/WdfCoinstaller01011.dll create mode 100644 ext/bin/tap-windows/x64/zttap200.cat create mode 100644 ext/bin/tap-windows/x64/zttap200.inf create mode 100644 ext/bin/tap-windows/x64/zttap200.sys delete mode 100644 windows/TapDriver/testcert.pfx diff --git a/ext/bin/tap-windows/x64/WdfCoinstaller01011.dll b/ext/bin/tap-windows/x64/WdfCoinstaller01011.dll new file mode 100644 index 00000000..d49d2913 Binary files /dev/null and b/ext/bin/tap-windows/x64/WdfCoinstaller01011.dll differ diff --git a/ext/bin/tap-windows/x64/zttap200.cat b/ext/bin/tap-windows/x64/zttap200.cat new file mode 100644 index 00000000..211ffff3 Binary files /dev/null and b/ext/bin/tap-windows/x64/zttap200.cat differ diff --git a/ext/bin/tap-windows/x64/zttap200.inf b/ext/bin/tap-windows/x64/zttap200.inf new file mode 100644 index 00000000..9dd9c406 --- /dev/null +++ b/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 diff --git a/ext/bin/tap-windows/x64/zttap200.sys b/ext/bin/tap-windows/x64/zttap200.sys new file mode 100644 index 00000000..b17cbce7 Binary files /dev/null and b/ext/bin/tap-windows/x64/zttap200.sys differ diff --git a/windows/TapDriver Package/TapDriver Package.vcxproj b/windows/TapDriver Package/TapDriver Package.vcxproj index 3f0d1df0..86d2505a 100644 --- a/windows/TapDriver Package/TapDriver Package.vcxproj +++ b/windows/TapDriver Package/TapDriver Package.vcxproj @@ -127,6 +127,8 @@ http://timestamp.digicert.com/ $(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\ + true + true DbgengKernelDebugger @@ -145,42 +147,122 @@ http://timestamp.digicert.com/ $(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\ + true + true http://timestamp.digicert.com/ $(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\ + true + true http://timestamp.digicert.com/ $(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\ + true + true http://timestamp.digicert.com/ $(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\ + true + true http://timestamp.digicert.com/ $(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\ + true + true $(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\ + true $(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\ + true $(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\ + true $(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\ + true $(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\ + true $(SolutionDir)\Build\TapDriverPackage\$(Platform)\$(Configuration)\ + true - + + + SHA1 + + + 8_X64;Server8_X64;Server2008R2_X64;7_X64;Server2008_X64;Vista_X64;Server2003_X64;XP_X64 + + + true + + + + + SHA1 + + + 8_X64;Server8_X64;Server2008R2_X64;7_X64;Server2008_X64;Vista_X64;Server2003_X64;XP_X64 + + + true + + + + + SHA1 + + + 8_X64;Server8_X64;Server2008R2_X64;7_X64;Server2008_X64;Vista_X64;Server2003_X64;XP_X64 + + + true + + + + + SHA1 + + + 8_X64;Server8_X64;Server2008R2_X64;7_X64;Server2008_X64;Vista_X64;Server2003_X64;XP_X64 + + + true + + + + + SHA1 + + + 8_X64;Server8_X64;Server2008R2_X64;7_X64;Server2008_X64;Vista_X64;Server2003_X64;XP_X64 + + + true + + + + + SHA1 + + + 8_X64;Server8_X64;Server2008R2_X64;7_X64;Server2008_X64;Vista_X64;Server2003_X64;XP_X64 + + + true + diff --git a/windows/TapDriver/TapDriver.vcxproj b/windows/TapDriver/TapDriver.vcxproj index ec1d9c45..79d9c773 100644 --- a/windows/TapDriver/TapDriver.vcxproj +++ b/windows/TapDriver/TapDriver.vcxproj @@ -163,35 +163,46 @@ http://timestamp.digicert.com/ - ztTap100 + zttap200 $(SolutionDir)\Build\$(Platform)\$(ConfigurationName)\ - http://timestamp.digicert.com/ + + + true - ztTap100 + zttap200 $(SolutionDir)\Build\$(Platform)\$(ConfigurationName)\ - http://timestamp.digicert.com/ + + + true zttap200 $(SolutionDir)\Build\$(Platform)\$(ConfigurationName)\ - http://timestamp.digicert.com/ + + true - ztTap100 + zttap200 $(SolutionDir)\Build\$(Platform)\$(ConfigurationName)\ - http://timestamp.digicert.com/ + + + true - ztTap100 + zttap200 $(SolutionDir)\Build\$(Platform)\$(ConfigurationName)\ - http://timestamp.digicert.com/ + + + true - ztTap100 + zttap200 $(SolutionDir)\Build\$(Platform)\$(ConfigurationName)\ - http://timestamp.digicert.com/ + + + true @@ -265,6 +276,30 @@ C:\WinDDK\7600.16385.1\lib\wnet\amd64\ndis.lib;C:\WinDDK\7600.16385.1\lib\wnet\amd64\ntstrsafe.lib;%(AdditionalDependencies) + + SHA1 + /t "http://timestamp.digicert.com/" /d "ZeroTier One Virtual Network Port" /sha1 5809bb3255b4f32dd93619c1cf26a7df6c282a89 + + + SHA1 + /t "http://timestamp.digicert.com/" /d "ZeroTier One Virtual Network Port" /sha1 5809bb3255b4f32dd93619c1cf26a7df6c282a89 + + + SHA1 + /t "http://timestamp.digicert.com/" /d "ZeroTier One Virtual Network Port" /sha1 5809bb3255b4f32dd93619c1cf26a7df6c282a89 + + + SHA1 + /t "http://timestamp.digicert.com/" /d "ZeroTier One Virtual Network Port" /sha1 5809bb3255b4f32dd93619c1cf26a7df6c282a89 + + + SHA1 + /t "http://timestamp.digicert.com/" /d "ZeroTier One Virtual Network Port" /sha1 5809bb3255b4f32dd93619c1cf26a7df6c282a89 + + + SHA1 + /t "http://timestamp.digicert.com/" /d "ZeroTier One Virtual Network Port" /sha1 5809bb3255b4f32dd93619c1cf26a7df6c282a89 + diff --git a/windows/TapDriver/testcert.pfx b/windows/TapDriver/testcert.pfx deleted file mode 100644 index 74f6b471..00000000 Binary files a/windows/TapDriver/testcert.pfx and /dev/null differ -- cgit v1.2.3