Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/SoftEtherVPN/SoftEtherVPN_Stable.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/BuildUtil')
-rw-r--r--src/BuildUtil/BuildUtilCommands.cs40
-rw-r--r--src/BuildUtil/CodeSign.cs34
-rw-r--r--src/BuildUtil/VpnBuilderConfig.cs28
-rw-r--r--src/BuildUtil/Win32BuildSoftware.cs2
-rw-r--r--src/BuildUtil/Win32BuildUtil.cs12
5 files changed, 90 insertions, 26 deletions
diff --git a/src/BuildUtil/BuildUtilCommands.cs b/src/BuildUtil/BuildUtilCommands.cs
index db4da98c..4a270815 100644
--- a/src/BuildUtil/BuildUtilCommands.cs
+++ b/src/BuildUtil/BuildUtilCommands.cs
@@ -1330,7 +1330,45 @@ namespace BuildUtil
int certid = vl["CERTID"].IntValue;
int shamode = vl["SHAMODE"].IntValue;
- CodeSign.SignFile(destFileName, srcFileName, comment, kernel, false);
+ CodeSign.SignFile(destFileName, srcFileName, comment, kernel, false, false);
+
+ return 0;
+ }
+
+ // Sign the file
+ [ConsoleCommandMethod(
+ "Sign files using Authenticode certificates.",
+ "SignCode2 [filename] [/DEST:destfilename] [/COMMENT:comment] [/KERNEL:yes|no] [/CERT:certname]",
+ "Sign files using Authenticode certificates.",
+ "[filename]:Specify the target filename.",
+ "DEST:Specify the destination filename. If this parameter is not specified, the target file will be overwritten.",
+ "COMMENT:Provide a description of the signed content.",
+ "KERNEL:Specify \"yes\" if Windows Vista / 7 Kernel Mode Driver Signing is needed."
+ )]
+ static int SignCode2(ConsoleService c, string cmdName, string str)
+ {
+ ConsoleParam[] args =
+ {
+ new ConsoleParam("[filename]", ConsoleService.Prompt, "Filename: ", ConsoleService.EvalNotEmpty, null),
+ new ConsoleParam("DEST"),
+ new ConsoleParam("COMMENT", ConsoleService.Prompt, "Comment: ", ConsoleService.EvalNotEmpty, null),
+ new ConsoleParam("KERNEL"),
+ new ConsoleParam("CERT"),
+ };
+ ConsoleParamValueList vl = c.ParseCommandList(cmdName, str, args);
+
+ string destFileName = vl["DEST"].StrValue;
+ string srcFileName = vl.DefaultParam.StrValue;
+ if (Str.IsEmptyStr(destFileName))
+ {
+ destFileName = srcFileName;
+ }
+ string comment = vl["COMMENT"].StrValue;
+ bool kernel = vl["KERNEL"].BoolValue;
+
+ string cert = vl["CERT"].StrValue;
+
+ CodeSign.SignFile2(destFileName, srcFileName, comment, kernel, cert);
return 0;
}
diff --git a/src/BuildUtil/CodeSign.cs b/src/BuildUtil/CodeSign.cs
index 436340dd..75b3aa31 100644
--- a/src/BuildUtil/CodeSign.cs
+++ b/src/BuildUtil/CodeSign.cs
@@ -192,11 +192,11 @@ namespace BuildUtil
static object lockObj = new object();
// Digital-sign the data on the memory
- public static byte[] SignMemory(byte[] srcData, string comment, bool kernelModeDriver, bool evCert)
+ public static byte[] SignMemory(byte[] srcData, string comment, bool kernelModeDriver, bool evCert, bool skipVerify)
{
#if !BU_OSS
// 2020/01/19 switch to the new system
- return SignClient.Sign(srcData, evCert ? "SoftEtherEv" : "SoftEtherFile", kernelModeDriver ? "Driver" : "", comment);
+ return SignClient.Sign(srcData, evCert ? "SoftEtherEv" : "SoftEtherFile", (kernelModeDriver ? "Driver" : "") + "," + (skipVerify ? "SkipVerify" : ""), comment);
/*
int i;
@@ -297,14 +297,40 @@ namespace BuildUtil
}
// Digital-sign the data on the file
- public static void SignFile(string destFileName, string srcFileName, string comment, bool kernelModeDriver, bool evCert)
+ public static void SignFile2(string destFileName, string srcFileName, string comment, bool kernelModeDriver, string certName)
{
#if !BU_OSS
Con.WriteLine("Signing for '{0}'...", Path.GetFileName(destFileName));
byte[] srcData = File.ReadAllBytes(srcFileName);
- byte[] destData = SignMemory(srcData, comment, kernelModeDriver, evCert);
+ byte[] destData = SignClient.Sign(srcData, certName, kernelModeDriver ? "Driver" : "", comment);
+
+ try
+ {
+ File.Delete(destFileName);
+ }
+ catch
+ {
+ }
+
+ File.WriteAllBytes(destFileName, destData);
+
+ Con.WriteLine("Done.");
+#else // BU_OSS
+ Con.WriteLine("Skipping the code signing for '{0}' in the build process. You can insert your own authenticode sign process here.", srcFileName);
+#endif // BU_OSS
+ }
+
+ // Digital-sign the data on the file
+ public static void SignFile(string destFileName, string srcFileName, string comment, bool kernelModeDriver, bool evCert, bool skipVerify)
+ {
+#if !BU_OSS
+
+ Con.WriteLine("Signing for '{0}'...", Path.GetFileName(destFileName));
+ byte[] srcData = File.ReadAllBytes(srcFileName);
+
+ byte[] destData = SignMemory(srcData, comment, kernelModeDriver, evCert, skipVerify);
try
{
diff --git a/src/BuildUtil/VpnBuilderConfig.cs b/src/BuildUtil/VpnBuilderConfig.cs
index 3f7d0622..9bf3fcf3 100644
--- a/src/BuildUtil/VpnBuilderConfig.cs
+++ b/src/BuildUtil/VpnBuilderConfig.cs
@@ -165,6 +165,10 @@ namespace BuildUtil
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.armeabi, OSList.Linux,
"linux-armeabi-32bit", false, "linux-armeabi-32bit-4.3.2", false,
null);
+ public static readonly BuildSoftware vpnserver_linux_arm64_ja =
+ new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.arm64, OSList.Linux,
+ "linux-arm64-64bit", false, "linux-arm64-64bit-4.8.4", false,
+ null);
public static readonly BuildSoftware vpnserver_linux_mipsel_ja =
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.mipsel, OSList.Linux,
"linux-mipsel-32bit", false, "linux-mipsel-32bit-3.4.6", false,
@@ -173,10 +177,6 @@ namespace BuildUtil
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.ppc32, OSList.Linux,
"linux-ppc-32bit", false, "linux-ppc-32bit-3.4.6", false,
null);
- public static readonly BuildSoftware vpnserver_linux_sh4_ja =
- new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.sh4, OSList.Linux,
- "linux-sh4-32bit", false, "linux-sh4-32bit-3.4.6", false,
- null);
// Client
public static readonly BuildSoftware vpnclient_linux_x86_ja =
@@ -195,6 +195,10 @@ namespace BuildUtil
new BuildSoftwareUnix(Software.vpnclient, 0, 0, "", CpuList.armeabi, OSList.Linux,
"linux-armeabi-32bit", false, "linux-armeabi-32bit-4.3.2", false,
null);
+ public static readonly BuildSoftware vpnclient_linux_arm64_ja =
+ new BuildSoftwareUnix(Software.vpnclient, 0, 0, "", CpuList.arm64, OSList.Linux,
+ "linux-arm64-64bit", false, "linux-arm64-64bit-4.8.4", false,
+ null);
public static readonly BuildSoftware vpnclient_linux_mipsel_ja =
new BuildSoftwareUnix(Software.vpnclient, 0, 0, "", CpuList.mipsel, OSList.Linux,
"linux-mipsel-32bit", false, "linux-mipsel-32bit-3.4.6", false,
@@ -203,10 +207,6 @@ namespace BuildUtil
new BuildSoftwareUnix(Software.vpnclient, 0, 0, "", CpuList.ppc32, OSList.Linux,
"linux-ppc-32bit", false, "linux-ppc-32bit-3.4.6", false,
null);
- public static readonly BuildSoftware vpnclient_linux_sh4_ja =
- new BuildSoftwareUnix(Software.vpnclient, 0, 0, "", CpuList.sh4, OSList.Linux,
- "linux-sh4-32bit", false, "linux-sh4-32bit-3.4.6", false,
- null);
// Bridge
public static readonly BuildSoftware vpnbridge_linux_x86_ja =
@@ -225,6 +225,10 @@ namespace BuildUtil
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.armeabi, OSList.Linux,
"linux-armeabi-32bit", false, "linux-armeabi-32bit-4.3.2", false,
null);
+ public static readonly BuildSoftware vpnbridge_linux_arm64_ja =
+ new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.arm64, OSList.Linux,
+ "linux-arm64-64bit", false, "linux-arm64-64bit-4.8.4", false,
+ null);
public static readonly BuildSoftware vpnbridge_linux_mipsel_ja =
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.mipsel, OSList.Linux,
"linux-mipsel-32bit", false, "linux-mipsel-32bit-3.4.6", false,
@@ -233,10 +237,6 @@ namespace BuildUtil
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.ppc32, OSList.Linux,
"linux-ppc-32bit", false, "linux-ppc-32bit-3.4.6", false,
null);
- public static readonly BuildSoftware vpnbridge_linux_sh4_ja =
- new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.sh4, OSList.Linux,
- "linux-sh4-32bit", false, "linux-sh4-32bit-3.4.6", false,
- null);
// ========== FreeBSD ==========
@@ -437,9 +437,9 @@ namespace BuildUtil
CpuList.mipsel,
CpuList.ppc32,
CpuList.ppc64,
- CpuList.sh4,
CpuList.arm,
CpuList.armeabi,
+ CpuList.arm64,
});
// FreeBSD
@@ -521,10 +521,10 @@ namespace BuildUtil
public static readonly Cpu intel = new Cpu("x86_x64", "Intel", CPUBits.Both);
public static readonly Cpu arm = new Cpu("arm", "ARM legacy ABI", CPUBits.Bits32);
public static readonly Cpu armeabi = new Cpu("arm_eabi", "ARM EABI", CPUBits.Bits32);
+ public static readonly Cpu arm64 = new Cpu("arm64", "ARM 64bit", CPUBits.Bits64);
public static readonly Cpu mipsel = new Cpu("mips_el", "MIPS Little-Endian", CPUBits.Bits32);
public static readonly Cpu ppc32 = new Cpu("powerpc", "PowerPC", CPUBits.Bits32);
public static readonly Cpu ppc64 = new Cpu("powerpc64", "PowerPC G5", CPUBits.Bits64);
- public static readonly Cpu sh4 = new Cpu("sh4", "SH-4", CPUBits.Bits32);
public static readonly Cpu sparc32 = new Cpu("sparc", "SPARC", CPUBits.Bits32);
public static readonly Cpu sparc64 = new Cpu("sparc64", "SPARC", CPUBits.Bits64);
diff --git a/src/BuildUtil/Win32BuildSoftware.cs b/src/BuildUtil/Win32BuildSoftware.cs
index 433a9e36..5166c529 100644
--- a/src/BuildUtil/Win32BuildSoftware.cs
+++ b/src/BuildUtil/Win32BuildSoftware.cs
@@ -170,7 +170,7 @@ namespace BuildUtil
Win32BuildUtil.ExecCommand(vpnsetup_exe, string.Format("/SFXMODE:{1} /SFXOUT:\"{0}\"",
outFileName, Software.ToString()));
- CodeSign.SignFile(outFileName, outFileName, "VPN Software Installer", false, true);
+ CodeSign.SignFile(outFileName, outFileName, "VPN Software Installer", false, true, false);
}
}
}
diff --git a/src/BuildUtil/Win32BuildUtil.cs b/src/BuildUtil/Win32BuildUtil.cs
index 970c6a76..eebd7589 100644
--- a/src/BuildUtil/Win32BuildUtil.cs
+++ b/src/BuildUtil/Win32BuildUtil.cs
@@ -166,7 +166,7 @@ namespace BuildUtil
m.ReleaseMutex();
}
- CodeSign.SignFile(cabFileName, cabFileName, "VPN Software", false, false);
+ CodeSign.SignFile(cabFileName, cabFileName, "VPN Software", false, false, false);
File.Copy(cabFileName, dstFileName, true);
}
@@ -1040,8 +1040,8 @@ namespace BuildUtil
ExecCommand(makecat1, string.Format("\"{0}\"", cdfFileName2));
// sign catalog file
- CodeSign.SignFile(catFileName, catFileName, "Catalog File", false, false);
- CodeSign.SignFile(catFileName2, catFileName2, "Catalog File", false, false);
+ CodeSign.SignFile(catFileName, catFileName, "Catalog File", false, false, false);
+ CodeSign.SignFile(catFileName2, catFileName2, "Catalog File", false, false, false);
// delete cdf file
File.Delete(cdfFileName);
@@ -1138,7 +1138,7 @@ namespace BuildUtil
if (no_sign == false)
{
- CodeSign.SignFile(catname, catname, "Catalog File", false, false);
+ CodeSign.SignFile(catname, catname, "Catalog File", false, false, true);
}
File.Delete(cdf_file_name);
@@ -1397,7 +1397,7 @@ namespace BuildUtil
{
Con.WriteLine("Signing...");
- CodeSign.SignFile(file, file, "VPN Software", isDriver, false);
+ CodeSign.SignFile(file, file, "VPN Software", isDriver, false, false);
}
}
}
@@ -1445,7 +1445,7 @@ namespace BuildUtil
Con.WriteLine("Signing...");
- CodeSign.SignFile(filename, filename, "VPN Software", isDriver, false);
+ CodeSign.SignFile(filename, filename, "VPN Software", isDriver, false, false);
}
}
}