mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2025-09-20 02:09:25 +03:00
v4.03-9408-rtm
This commit is contained in:
181
src/BuildUtil/BuildUtil.csproj
Normal file
181
src/BuildUtil/BuildUtil.csproj
Normal file
@ -0,0 +1,181 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{384815C3-333C-4CEC-9DCD-B6AB2602EBB9}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>BuildUtil</RootNamespace>
|
||||
<AssemblyName>BuildUtilTmp</AssemblyName>
|
||||
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ApplicationIcon>BuildUtilIcon.ico</ApplicationIcon>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<StartupObject>BuildUtil.BuildUtilMain</StartupObject>
|
||||
<NoWin32Manifest>true</NoWin32Manifest>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\bin\</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG;BU_SOFTETHER;BU_OSS</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="CoreUtil, Version=1.1.4781.28908, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>.\CoreUtil.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.EnterpriseServices" />
|
||||
<Reference Include="System.Runtime.Serialization.Formatters.Soap" />
|
||||
<Reference Include="System.Transactions" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.Services" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="BuildUtilCommands.cs" />
|
||||
<Compile Include="BuildUtilMain.cs" />
|
||||
<Compile Include="CodeSign.cs" />
|
||||
|
||||
<Compile Include="PEUtil.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Test.cs" />
|
||||
<Compile Include="UnixBuildSoftwares.cs" />
|
||||
<Compile Include="VpnBuilder.cs" />
|
||||
<Compile Include="VpnBuilderConfig.cs" />
|
||||
<Compile Include="VpnBuilderConfigTypes.cs" />
|
||||
<Compile Include="Web References\HvSignService\Reference.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Reference.map</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Web References\SignService\Reference.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Reference.map</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Win32BuildSoftware.cs" />
|
||||
<Compile Include="Win32BuildUtil.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WebReferences Include="Web References\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WebReferenceUrl Include="http://dv/Sign/Sign.asmx">
|
||||
<UrlBehavior>Dynamic</UrlBehavior>
|
||||
<RelPath>Web References\SignService\</RelPath>
|
||||
<UpdateFromURL>http://dv/Sign/Sign.asmx</UpdateFromURL>
|
||||
<ServiceLocationURL>
|
||||
</ServiceLocationURL>
|
||||
<CachedDynamicPropName>
|
||||
</CachedDynamicPropName>
|
||||
<CachedAppSettingsObjectName>Settings</CachedAppSettingsObjectName>
|
||||
<CachedSettingsPropName>BuildUtil_SignService_Sign</CachedSettingsPropName>
|
||||
</WebReferenceUrl>
|
||||
<WebReferenceUrl Include="http://hvsigncode/Sign.asmx">
|
||||
<UrlBehavior>Dynamic</UrlBehavior>
|
||||
<RelPath>Web References\HvSignService\</RelPath>
|
||||
<UpdateFromURL>http://hvsigncode/Sign.asmx</UpdateFromURL>
|
||||
<ServiceLocationURL>
|
||||
</ServiceLocationURL>
|
||||
<CachedDynamicPropName>
|
||||
</CachedDynamicPropName>
|
||||
<CachedAppSettingsObjectName>Settings</CachedAppSettingsObjectName>
|
||||
<CachedSettingsPropName>BuildUtilTmp_HvSignService_Sign</CachedSettingsPropName>
|
||||
</WebReferenceUrl>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Web References\HvSignService\Sign.wsdl" />
|
||||
<None Include="Web References\SignService\Reference.map">
|
||||
<Generator>MSDiscoCodeGenerator</Generator>
|
||||
<LastGenOutput>Reference.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Web References\SignService\Sign.disco" />
|
||||
<None Include="Web References\SignService\Sign.wsdl" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="BuildUtilIcon.ico" />
|
||||
<None Include="Web References\HvSignService\Reference.map">
|
||||
<Generator>MSDiscoCodeGenerator</Generator>
|
||||
<LastGenOutput>Reference.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Web References\HvSignService\Sign.disco" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework Client Profile</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>$(ProjectDir)CopyBuildUtil.cmd</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
1245
src/BuildUtil/BuildUtilCommands.cs
Normal file
1245
src/BuildUtil/BuildUtilCommands.cs
Normal file
File diff suppressed because it is too large
Load Diff
BIN
src/BuildUtil/BuildUtilIcon.ico
Normal file
BIN
src/BuildUtil/BuildUtilIcon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
193
src/BuildUtil/BuildUtilMain.cs
Normal file
193
src/BuildUtil/BuildUtilMain.cs
Normal file
@ -0,0 +1,193 @@
|
||||
// SoftEther VPN Source Code
|
||||
// Build Utility
|
||||
//
|
||||
// SoftEther VPN Server, Client and Bridge are free software under GPLv2.
|
||||
//
|
||||
// Copyright (c) 2012-2014 Daiyuu Nobori.
|
||||
// Copyright (c) 2012-2014 SoftEther VPN Project, University of Tsukuba, Japan.
|
||||
// Copyright (c) 2012-2014 SoftEther Corporation.
|
||||
//
|
||||
// All Rights Reserved.
|
||||
//
|
||||
// http://www.softether.org/
|
||||
//
|
||||
// Author: Daiyuu Nobori
|
||||
// Comments: Tetsuo Sugiyama, Ph.D.
|
||||
//
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// version 2 as published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License version 2
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// THE LICENSE AGREEMENT IS ATTACHED ON THE SOURCE-CODE PACKAGE
|
||||
// AS "LICENSE.TXT" FILE. READ THE TEXT FILE IN ADVANCE TO USE THE SOFTWARE.
|
||||
//
|
||||
//
|
||||
// THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN,
|
||||
// UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY,
|
||||
// MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS
|
||||
// SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS
|
||||
// SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER
|
||||
// CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL
|
||||
// DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING,
|
||||
// MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR
|
||||
// SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND
|
||||
// CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO
|
||||
// EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO,
|
||||
// JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION
|
||||
// AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN
|
||||
// THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.
|
||||
//
|
||||
// USE ONLY IN JAPAN. DO NOT USE IT IN OTHER COUNTRIES. IMPORTING THIS
|
||||
// SOFTWARE INTO OTHER COUNTRIES IS AT YOUR OWN RISK. SOME COUNTRIES
|
||||
// PROHIBIT ENCRYPTED COMMUNICATIONS. USING THIS SOFTWARE IN OTHER
|
||||
// COUNTRIES MIGHT BE RESTRICTED.
|
||||
//
|
||||
//
|
||||
// DEAR SECURITY EXPERTS
|
||||
// ---------------------
|
||||
//
|
||||
// If you find a bug or a security vulnerability please kindly inform us
|
||||
// about the problem immediately so that we can fix the security problem
|
||||
// to protect a lot of users around the world as soon as possible.
|
||||
//
|
||||
// Our e-mail address for security reports is:
|
||||
// softether-vpn-security [at] softether.org
|
||||
//
|
||||
// Please note that the above e-mail address is not a technical support
|
||||
// inquiry address. If you need technical assistance, please visit
|
||||
// http://www.softether.org/ and ask your question on the users forum.
|
||||
//
|
||||
// Thank you for your cooperation.
|
||||
|
||||
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Text;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Security.Cryptography;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.IO;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Net.Security;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using CoreUtil;
|
||||
|
||||
namespace BuildUtil
|
||||
{
|
||||
public class BuildUtilMain
|
||||
{
|
||||
public static bool pause = false;
|
||||
|
||||
// Main function
|
||||
public static int Main(string[] args)
|
||||
{
|
||||
string errMsg = "";
|
||||
|
||||
int ret = 0;
|
||||
|
||||
ret = ConsoleService.EntryPoint("BuildUtil " + Env.CommandLine, "BuildUtil", typeof(BuildUtilMain), out errMsg);
|
||||
|
||||
if (ret != 0)
|
||||
{
|
||||
Con.WriteLine("{0}: fatal error C0001: {1}", Path.GetFileNameWithoutExtension(Env.ExeFileName), errMsg);
|
||||
|
||||
if (pause)
|
||||
{
|
||||
Console.Write("Press any key to exit...");
|
||||
Console.ReadKey();
|
||||
}
|
||||
|
||||
Environment.Exit(1);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
// Command execution
|
||||
[ConsoleCommandMethod(
|
||||
"VPN Build Utility",
|
||||
"[/IN:infile] [/OUT:outfile] [/CSV] [/PAUSEIFERROR:yes|no] [/CMD command_line...]",
|
||||
"VPN Build Utility",
|
||||
"IN:This will specify the text file 'infile' that contains the list of commands that are automatically executed after the connection is completed. If the /IN parameter is specified, the vpncmd program will terminate automatically after the execution of all commands in the file are finished. If the file contains multiple-byte characters, the encoding must be Unicode (UTF-8). This cannot be specified together with /CMD (if /CMD is specified, /IN will be ignored).",
|
||||
"OUT:You can specify the text file 'outfile' to write all strings such as onscreen prompts, message, error and execution results. Note that if the specified file already exists, the contents of the existing file will be overwritten. Output strings will be recorded using Unicode (UTF-8) encoding.",
|
||||
"CMD:If the optional command 'command_line...' is included after /CMD, that command will be executed after the connection is complete and the vpncmd program will terminate after that. This cannot be specified together with /IN (if specified together with /IN, /IN will be ignored). Specify the /CMD parameter after all other vpncmd parameters.",
|
||||
"CSV:Enable CSV Mode.",
|
||||
"PAUSEIFERROR:Specify yes if you'd like to pause before exiting the process if there are any errors."
|
||||
)]
|
||||
public static int BuildUtil(ConsoleService c, string cmdName, string str)
|
||||
{
|
||||
Con.WriteLine("");
|
||||
Con.WriteLine("Copyright (c) SoftEther Corporation. All Rights Reserved.");
|
||||
Con.WriteLine("");
|
||||
|
||||
ConsoleParam[] args =
|
||||
{
|
||||
new ConsoleParam("IN", null, null, null, null),
|
||||
new ConsoleParam("OUT", null, null, null, null),
|
||||
new ConsoleParam("CMD", null, null, null, null),
|
||||
new ConsoleParam("CSV", null, null, null, null),
|
||||
new ConsoleParam("PAUSEIFERROR", null, null, null, null),
|
||||
new ConsoleParam("DT", null, null, null, null),
|
||||
};
|
||||
|
||||
ConsoleParamValueList vl = c.ParseCommandList(cmdName, str, args);
|
||||
|
||||
pause = vl["PAUSEIFERROR"].BoolValue;
|
||||
|
||||
string cmdline = vl["CMD"].StrValue;
|
||||
|
||||
if (vl["DT"].IsEmpty == false)
|
||||
{
|
||||
BuildSoftwareList.ListCreatedDateTime = Str.StrToDateTime(vl["DT"].StrValue);
|
||||
}
|
||||
|
||||
ConsoleService cs = c;
|
||||
|
||||
while (cs.DispatchCommand(cmdline, "BuildUtil>", typeof(BuildUtilCommands), null))
|
||||
{
|
||||
if (Str.IsEmptyStr(cmdline) == false)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return cs.RetCode;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Developed by SoftEther VPN Project at University of Tsukuba in Japan.
|
||||
// Department of Computer Science has dozens of overly-enthusiastic geeks.
|
||||
// Join us: http://www.tsukuba.ac.jp/english/admission/
|
263
src/BuildUtil/CodeSign.cs
Normal file
263
src/BuildUtil/CodeSign.cs
Normal file
@ -0,0 +1,263 @@
|
||||
// SoftEther VPN Source Code
|
||||
// Build Utility
|
||||
//
|
||||
// SoftEther VPN Server, Client and Bridge are free software under GPLv2.
|
||||
//
|
||||
// Copyright (c) 2012-2014 Daiyuu Nobori.
|
||||
// Copyright (c) 2012-2014 SoftEther VPN Project, University of Tsukuba, Japan.
|
||||
// Copyright (c) 2012-2014 SoftEther Corporation.
|
||||
//
|
||||
// All Rights Reserved.
|
||||
//
|
||||
// http://www.softether.org/
|
||||
//
|
||||
// Author: Daiyuu Nobori
|
||||
// Comments: Tetsuo Sugiyama, Ph.D.
|
||||
//
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// version 2 as published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License version 2
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// THE LICENSE AGREEMENT IS ATTACHED ON THE SOURCE-CODE PACKAGE
|
||||
// AS "LICENSE.TXT" FILE. READ THE TEXT FILE IN ADVANCE TO USE THE SOFTWARE.
|
||||
//
|
||||
//
|
||||
// THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN,
|
||||
// UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY,
|
||||
// MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS
|
||||
// SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS
|
||||
// SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER
|
||||
// CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL
|
||||
// DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING,
|
||||
// MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR
|
||||
// SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND
|
||||
// CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO
|
||||
// EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO,
|
||||
// JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION
|
||||
// AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN
|
||||
// THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.
|
||||
//
|
||||
// USE ONLY IN JAPAN. DO NOT USE IT IN OTHER COUNTRIES. IMPORTING THIS
|
||||
// SOFTWARE INTO OTHER COUNTRIES IS AT YOUR OWN RISK. SOME COUNTRIES
|
||||
// PROHIBIT ENCRYPTED COMMUNICATIONS. USING THIS SOFTWARE IN OTHER
|
||||
// COUNTRIES MIGHT BE RESTRICTED.
|
||||
//
|
||||
//
|
||||
// DEAR SECURITY EXPERTS
|
||||
// ---------------------
|
||||
//
|
||||
// If you find a bug or a security vulnerability please kindly inform us
|
||||
// about the problem immediately so that we can fix the security problem
|
||||
// to protect a lot of users around the world as soon as possible.
|
||||
//
|
||||
// Our e-mail address for security reports is:
|
||||
// softether-vpn-security [at] softether.org
|
||||
//
|
||||
// Please note that the above e-mail address is not a technical support
|
||||
// inquiry address. If you need technical assistance, please visit
|
||||
// http://www.softether.org/ and ask your question on the users forum.
|
||||
//
|
||||
// Thank you for your cooperation.
|
||||
|
||||
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Text;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Security.Cryptography;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.IO;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Net.Security;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using CoreUtil;
|
||||
using BuildUtil.HvSignService;
|
||||
|
||||
namespace BuildUtil
|
||||
{
|
||||
public static class CodeSign
|
||||
{
|
||||
public const int NumRetries = 1;
|
||||
public const int RetryIntervals = 200;
|
||||
|
||||
public const int NumRetriesForCopy = 50;
|
||||
public const int RetryIntervalsForCopy = 10;
|
||||
|
||||
const string in_dir = @"\\hvsigncode\SIGN\IN";
|
||||
const string out_dir = @"\\hvsigncode\SIGN\OUT";
|
||||
|
||||
#if !BU_SOFTETHER
|
||||
public static int UsingCertId = 1;
|
||||
#else
|
||||
public static int UsingCertId = 2;
|
||||
#endif
|
||||
|
||||
static object lockObj = new object();
|
||||
|
||||
// Digital-sign the data on the memory
|
||||
public static byte[] SignMemory(byte[] srcData, string comment, bool kernelModeDriver, int cert_id)
|
||||
{
|
||||
#if !BU_OSS
|
||||
int i;
|
||||
string out_filename = null;
|
||||
byte[] ret = null;
|
||||
|
||||
string in_tmp_filename = Path.Combine(in_dir,
|
||||
Str.DateTimeToStrShortWithMilliSecs(DateTime.Now) + "_" +
|
||||
Env.MachineName + "_" +
|
||||
Secure.Rand63i().ToString() + ".dat");
|
||||
|
||||
IO.SaveFile(in_tmp_filename, srcData);
|
||||
|
||||
for (i = 0; i < NumRetries; i++)
|
||||
{
|
||||
Sign sign = new Sign();
|
||||
sign.Proxy = new WebProxy();
|
||||
|
||||
try
|
||||
{
|
||||
out_filename = sign.ExecSign(Path.GetFileName(in_tmp_filename),
|
||||
kernelModeDriver,
|
||||
comment,
|
||||
cert_id);
|
||||
break;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (i != (NumRetries - 1))
|
||||
{
|
||||
Kernel.SleepThread(RetryIntervals);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < NumRetriesForCopy; i++)
|
||||
{
|
||||
try
|
||||
{
|
||||
ret = IO.ReadFile(Path.Combine(out_dir, out_filename));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (i != (NumRetriesForCopy - 1))
|
||||
{
|
||||
Kernel.SleepThread(RetryIntervalsForCopy);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
string tmpFileName = IO.CreateTempFileNameByExt(".exe");
|
||||
try
|
||||
{
|
||||
File.Delete(tmpFileName);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
File.WriteAllBytes(tmpFileName, ret);
|
||||
|
||||
lock (lockObj)
|
||||
{
|
||||
if (ExeSignChecker.CheckFileDigitalSignature(tmpFileName) == false)
|
||||
{
|
||||
throw new ApplicationException("CheckFileDigitalSignature failed.");
|
||||
}
|
||||
|
||||
if (kernelModeDriver)
|
||||
{
|
||||
if (ExeSignChecker.IsKernelModeSignedFile(tmpFileName) == false)
|
||||
{
|
||||
throw new ApplicationException("IsKernelModeSignedFile failed.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
}
|
||||
catch
|
||||
{
|
||||
File.Delete(tmpFileName);
|
||||
}
|
||||
|
||||
return ret;
|
||||
#else // BU_OSS
|
||||
return srcData;
|
||||
#endif // BU_OSS
|
||||
}
|
||||
|
||||
// Digital-sign the data on the file
|
||||
public static void SignFile(string destFileName, string srcFileName, string comment, bool kernelModeDriver)
|
||||
{
|
||||
int cert_id = UsingCertId;
|
||||
|
||||
SignFile(destFileName, srcFileName, comment, kernelModeDriver, cert_id);
|
||||
}
|
||||
public static void SignFile(string destFileName, string srcFileName, string comment, bool kernelModeDriver, int cert_id)
|
||||
{
|
||||
#if !BU_OSS
|
||||
Con.WriteLine("Signing for '{0}'...", Path.GetFileName(destFileName));
|
||||
byte[] srcData = File.ReadAllBytes(srcFileName);
|
||||
|
||||
byte[] destData = SignMemory(srcData, comment, kernelModeDriver, cert_id);
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Developed by SoftEther VPN Project at University of Tsukuba in Japan.
|
||||
// Department of Computer Science has dozens of overly-enthusiastic geeks.
|
||||
// Join us: http://www.tsukuba.ac.jp/english/admission/
|
2
src/BuildUtil/CopyBuildUtil.cmd
Normal file
2
src/BuildUtil/CopyBuildUtil.cmd
Normal file
@ -0,0 +1,2 @@
|
||||
copy %0\..\..\bin\BuildUtilTmp.exe %0\..\..\bin\BuildUtil.exe
|
||||
exit /b 0
|
BIN
src/BuildUtil/CoreUtil.dll
Normal file
BIN
src/BuildUtil/CoreUtil.dll
Normal file
Binary file not shown.
231
src/BuildUtil/PEUtil.cs
Normal file
231
src/BuildUtil/PEUtil.cs
Normal file
@ -0,0 +1,231 @@
|
||||
// SoftEther VPN Source Code
|
||||
// Build Utility
|
||||
//
|
||||
// SoftEther VPN Server, Client and Bridge are free software under GPLv2.
|
||||
//
|
||||
// Copyright (c) 2012-2014 Daiyuu Nobori.
|
||||
// Copyright (c) 2012-2014 SoftEther VPN Project, University of Tsukuba, Japan.
|
||||
// Copyright (c) 2012-2014 SoftEther Corporation.
|
||||
//
|
||||
// All Rights Reserved.
|
||||
//
|
||||
// http://www.softether.org/
|
||||
//
|
||||
// Author: Daiyuu Nobori
|
||||
// Comments: Tetsuo Sugiyama, Ph.D.
|
||||
//
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// version 2 as published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License version 2
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// THE LICENSE AGREEMENT IS ATTACHED ON THE SOURCE-CODE PACKAGE
|
||||
// AS "LICENSE.TXT" FILE. READ THE TEXT FILE IN ADVANCE TO USE THE SOFTWARE.
|
||||
//
|
||||
//
|
||||
// THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN,
|
||||
// UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY,
|
||||
// MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS
|
||||
// SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS
|
||||
// SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER
|
||||
// CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL
|
||||
// DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING,
|
||||
// MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR
|
||||
// SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND
|
||||
// CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO
|
||||
// EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO,
|
||||
// JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION
|
||||
// AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN
|
||||
// THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.
|
||||
//
|
||||
// USE ONLY IN JAPAN. DO NOT USE IT IN OTHER COUNTRIES. IMPORTING THIS
|
||||
// SOFTWARE INTO OTHER COUNTRIES IS AT YOUR OWN RISK. SOME COUNTRIES
|
||||
// PROHIBIT ENCRYPTED COMMUNICATIONS. USING THIS SOFTWARE IN OTHER
|
||||
// COUNTRIES MIGHT BE RESTRICTED.
|
||||
//
|
||||
//
|
||||
// DEAR SECURITY EXPERTS
|
||||
// ---------------------
|
||||
//
|
||||
// If you find a bug or a security vulnerability please kindly inform us
|
||||
// about the problem immediately so that we can fix the security problem
|
||||
// to protect a lot of users around the world as soon as possible.
|
||||
//
|
||||
// Our e-mail address for security reports is:
|
||||
// softether-vpn-security [at] softether.org
|
||||
//
|
||||
// Please note that the above e-mail address is not a technical support
|
||||
// inquiry address. If you need technical assistance, please visit
|
||||
// http://www.softether.org/ and ask your question on the users forum.
|
||||
//
|
||||
// Thank you for your cooperation.
|
||||
|
||||
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Text;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Security.Cryptography;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.IO;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Net.Security;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using CoreUtil;
|
||||
|
||||
namespace BuildUtil
|
||||
{
|
||||
public static class PEUtil
|
||||
{
|
||||
public const int NumRetries = 5;
|
||||
public const int RetryIntervals = 200;
|
||||
public const string MutexName = "peutil_setmanifest_mutex";
|
||||
|
||||
// Set the version of the PE header to 4 (to work in Windows 98, etc.)
|
||||
public static void SetPEVersionTo4(byte[] srcData)
|
||||
{
|
||||
int offset = 0x140 + (int)((uint)srcData[0x3c] + ((uint)srcData[0x3d] * 256)) - 0xf8;
|
||||
|
||||
if (!((srcData[offset] == 0x04 || srcData[offset] == 0x05) && srcData[offset + 1] == 0x00))
|
||||
{
|
||||
throw new ApplicationException("The specified file is not PE file.");
|
||||
}
|
||||
|
||||
srcData[offset] = 0x04;
|
||||
}
|
||||
public static void SetPEVersionTo4(string fileName)
|
||||
{
|
||||
FileInfo fi = new FileInfo(fileName);
|
||||
|
||||
byte[] data = File.ReadAllBytes(fileName);
|
||||
SetPEVersionTo4(data);
|
||||
|
||||
int i;
|
||||
for (i = 0;; i++)
|
||||
{
|
||||
try
|
||||
{
|
||||
File.WriteAllBytes(fileName, data);
|
||||
break;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (i >= (NumRetries - 1))
|
||||
{
|
||||
throw ex;
|
||||
}
|
||||
|
||||
Kernel.SleepThread(RetryIntervals);
|
||||
}
|
||||
}
|
||||
|
||||
File.SetCreationTime(fileName, fi.CreationTime);
|
||||
File.SetLastAccessTime(fileName, fi.LastAccessTime);
|
||||
File.SetLastWriteTime(fileName, fi.LastWriteTime);
|
||||
}
|
||||
|
||||
public static void SetManifest(string exe, string manifestName)
|
||||
{
|
||||
Mutex x = new Mutex(false, MutexName);
|
||||
|
||||
x.WaitOne();
|
||||
|
||||
try
|
||||
{
|
||||
// Manifest file name
|
||||
string filename = Path.Combine(Paths.ManifestsDir, manifestName);
|
||||
if (File.Exists(filename) == false)
|
||||
{
|
||||
throw new FileNotFoundException(filename);
|
||||
}
|
||||
|
||||
FileInfo fi = new FileInfo(exe);
|
||||
|
||||
// Copy exe file to a temporary directory
|
||||
string exeTmp = IO.CreateTempFileNameByExt(".exe");
|
||||
IO.FileCopy(exe, exeTmp);
|
||||
|
||||
// Create a batch file
|
||||
string batFileName = Path.Combine(Paths.TmpDirName, "exec_mt.cmd");
|
||||
StreamWriter bat = new StreamWriter(batFileName, false, Str.ShiftJisEncoding);
|
||||
bat.WriteLine("call \"{0}\"", Paths.VisualStudioVCBatchFileName);
|
||||
bat.WriteLine("echo on");
|
||||
bat.WriteLine("mt.exe -manifest \"{0}\" -outputresource:\"{1}\";1", filename, exeTmp);
|
||||
bat.WriteLine("EXIT /B %ERRORLEVEL%");
|
||||
bat.Close();
|
||||
|
||||
Exception ex = null;
|
||||
|
||||
int i;
|
||||
// Repeated 20 times in order to avoid locking the file by the anti-virus software
|
||||
for (i = 0; i < 20; i++)
|
||||
{
|
||||
try
|
||||
{
|
||||
// Execute
|
||||
Win32BuildUtil.ExecCommand(Paths.CmdFileName, string.Format("/C \"{0}\"", batFileName), true);
|
||||
ex = null;
|
||||
|
||||
break;
|
||||
}
|
||||
catch (Exception ex2)
|
||||
{
|
||||
ex = ex2;
|
||||
}
|
||||
|
||||
ThreadObj.Sleep(Secure.Rand31i() % 50);
|
||||
}
|
||||
|
||||
if (ex != null)
|
||||
{
|
||||
throw new ApplicationException("mt.exe Manifest Processing for '" + exe + "' Failed.");
|
||||
}
|
||||
|
||||
// Revert to the original file
|
||||
IO.FileCopy(exeTmp, exe);
|
||||
|
||||
// Restore the date and time
|
||||
File.SetCreationTime(exe, fi.CreationTime);
|
||||
File.SetLastAccessTime(exe, fi.LastAccessTime);
|
||||
File.SetLastWriteTime(exe, fi.LastWriteTime);
|
||||
}
|
||||
finally
|
||||
{
|
||||
x.ReleaseMutex();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Developed by SoftEther VPN Project at University of Tsukuba in Japan.
|
||||
// Department of Computer Science has dozens of overly-enthusiastic geeks.
|
||||
// Join us: http://www.tsukuba.ac.jp/english/admission/
|
18
src/BuildUtil/Properties/AssemblyInfo.cs
Normal file
18
src/BuildUtil/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,18 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
[assembly: AssemblyTitle("PacketiX VPN / SoftEther VPN Build Utility")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("SoftEther Corporation")]
|
||||
[assembly: AssemblyProduct("PacketiX VPN / SoftEther VPN Build Utility")]
|
||||
[assembly: AssemblyCopyright("Copyright (c) SoftEther Corporation. All Rights Reserved.")]
|
||||
[assembly: AssemblyTrademark("PacketiX(R) and SoftEther(R) is a registered trademark of SoftEther Corporation.")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
[assembly: Guid("5bf63a11-27da-4ca4-ba9d-a60a0f8e1fd7")]
|
||||
|
||||
[assembly: AssemblyVersion("1.0.*")]
|
115
src/BuildUtil/Properties/Settings.Designer.cs
generated
Normal file
115
src/BuildUtil/Properties/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,115 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// このコードはツールによって生成されました。
|
||||
// ランタイム バージョン:2.0.50727.5466
|
||||
//
|
||||
// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
|
||||
// コードが再生成されるときに損失したりします。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
// Comments: Tetsuo Sugiyama, Ph.D.
|
||||
//
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// version 2 as published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License version 2
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// THE LICENSE AGREEMENT IS ATTACHED ON THE SOURCE-CODE PACKAGE
|
||||
// AS "LICENSE.TXT" FILE. READ THE TEXT FILE IN ADVANCE TO USE THE SOFTWARE.
|
||||
//
|
||||
//
|
||||
// THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN,
|
||||
// UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY,
|
||||
// MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS
|
||||
// SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS
|
||||
// SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER
|
||||
// CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL
|
||||
// DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING,
|
||||
// MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR
|
||||
// SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND
|
||||
// CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO
|
||||
// EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO,
|
||||
// JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION
|
||||
// AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN
|
||||
// THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.
|
||||
//
|
||||
// USE ONLY IN JAPAN. DO NOT USE IT IN OTHER COUNTRIES. IMPORTING THIS
|
||||
// SOFTWARE INTO OTHER COUNTRIES IS AT YOUR OWN RISK. SOME COUNTRIES
|
||||
// PROHIBIT ENCRYPTED COMMUNICATIONS. USING THIS SOFTWARE IN OTHER
|
||||
// COUNTRIES MIGHT BE RESTRICTED.
|
||||
//
|
||||
//
|
||||
// DEAR SECURITY EXPERTS
|
||||
// ---------------------
|
||||
//
|
||||
// If you find a bug or a security vulnerability please kindly inform us
|
||||
// about the problem immediately so that we can fix the security problem
|
||||
// to protect a lot of users around the world as soon as possible.
|
||||
//
|
||||
// Our e-mail address for security reports is:
|
||||
// softether-vpn-security [at] softether.org
|
||||
//
|
||||
// Please note that the above e-mail address is not a technical support
|
||||
// inquiry address. If you need technical assistance, please visit
|
||||
// http://www.softether.org/ and ask your question on the users forum.
|
||||
//
|
||||
// Thank you for your cooperation.
|
||||
|
||||
|
||||
namespace BuildUtil.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("http://dv/Sign/Sign.asmx")]
|
||||
public string BuildUtil_SignService_Sign {
|
||||
get {
|
||||
return ((string)(this["BuildUtil_SignService_Sign"]));
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("http://hvsigncode/Sign.asmx")]
|
||||
public string BuildUtilTmp_HvSignService_Sign {
|
||||
get {
|
||||
return ((string)(this["BuildUtilTmp_HvSignService_Sign"]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Developed by SoftEther VPN Project at University of Tsukuba in Japan.
|
||||
// Department of Computer Science has dozens of overly-enthusiastic geeks.
|
||||
// Join us: http://www.tsukuba.ac.jp/english/admission/
|
12
src/BuildUtil/Properties/Settings.settings
Normal file
12
src/BuildUtil/Properties/Settings.settings
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="BuildUtil.Properties" GeneratedClassName="Settings">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="BuildUtil_SignService_Sign" Type="(Web Service URL)" Scope="Application">
|
||||
<Value Profile="(Default)">http://dv/Sign/Sign.asmx</Value>
|
||||
</Setting>
|
||||
<Setting Name="BuildUtilTmp_HvSignService_Sign" Type="(Web Service URL)" Scope="Application">
|
||||
<Value Profile="(Default)">http://hvsigncode/Sign.asmx</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
125
src/BuildUtil/Test.cs
Normal file
125
src/BuildUtil/Test.cs
Normal file
@ -0,0 +1,125 @@
|
||||
// SoftEther VPN Source Code
|
||||
// Build Utility
|
||||
//
|
||||
// SoftEther VPN Server, Client and Bridge are free software under GPLv2.
|
||||
//
|
||||
// Copyright (c) 2012-2014 Daiyuu Nobori.
|
||||
// Copyright (c) 2012-2014 SoftEther VPN Project, University of Tsukuba, Japan.
|
||||
// Copyright (c) 2012-2014 SoftEther Corporation.
|
||||
//
|
||||
// All Rights Reserved.
|
||||
//
|
||||
// http://www.softether.org/
|
||||
//
|
||||
// Author: Daiyuu Nobori
|
||||
// Comments: Tetsuo Sugiyama, Ph.D.
|
||||
//
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// version 2 as published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License version 2
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// THE LICENSE AGREEMENT IS ATTACHED ON THE SOURCE-CODE PACKAGE
|
||||
// AS "LICENSE.TXT" FILE. READ THE TEXT FILE IN ADVANCE TO USE THE SOFTWARE.
|
||||
//
|
||||
//
|
||||
// THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN,
|
||||
// UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY,
|
||||
// MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS
|
||||
// SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS
|
||||
// SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER
|
||||
// CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL
|
||||
// DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING,
|
||||
// MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR
|
||||
// SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND
|
||||
// CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO
|
||||
// EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO,
|
||||
// JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION
|
||||
// AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN
|
||||
// THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.
|
||||
//
|
||||
// USE ONLY IN JAPAN. DO NOT USE IT IN OTHER COUNTRIES. IMPORTING THIS
|
||||
// SOFTWARE INTO OTHER COUNTRIES IS AT YOUR OWN RISK. SOME COUNTRIES
|
||||
// PROHIBIT ENCRYPTED COMMUNICATIONS. USING THIS SOFTWARE IN OTHER
|
||||
// COUNTRIES MIGHT BE RESTRICTED.
|
||||
//
|
||||
//
|
||||
// DEAR SECURITY EXPERTS
|
||||
// ---------------------
|
||||
//
|
||||
// If you find a bug or a security vulnerability please kindly inform us
|
||||
// about the problem immediately so that we can fix the security problem
|
||||
// to protect a lot of users around the world as soon as possible.
|
||||
//
|
||||
// Our e-mail address for security reports is:
|
||||
// softether-vpn-security [at] softether.org
|
||||
//
|
||||
// Please note that the above e-mail address is not a technical support
|
||||
// inquiry address. If you need technical assistance, please visit
|
||||
// http://www.softether.org/ and ask your question on the users forum.
|
||||
//
|
||||
// Thank you for your cooperation.
|
||||
|
||||
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Text;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Security.Cryptography;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.IO;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Net.Security;
|
||||
using System.Reflection;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using CoreUtil;
|
||||
|
||||
namespace BuildUtil
|
||||
{
|
||||
public static class TestClass
|
||||
{
|
||||
public static void Test()
|
||||
{
|
||||
Language[] langs = BuildHelper.GetLanguageList();
|
||||
|
||||
foreach (Language e in langs)
|
||||
{
|
||||
Con.WriteLine("{0} {1} {2} {3} {5} {4}",
|
||||
e.Number, e.Id, e.Title, e.TitleUnicode, e.UnixLocaleIds, e.WindowsLocaleIds);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Developed by SoftEther VPN Project at University of Tsukuba in Japan.
|
||||
// Department of Computer Science has dozens of overly-enthusiastic geeks.
|
||||
// Join us: http://www.tsukuba.ac.jp/english/admission/
|
1015
src/BuildUtil/UnixBuildSoftwares.cs
Normal file
1015
src/BuildUtil/UnixBuildSoftwares.cs
Normal file
File diff suppressed because it is too large
Load Diff
650
src/BuildUtil/VpnBuilder.cs
Normal file
650
src/BuildUtil/VpnBuilder.cs
Normal file
@ -0,0 +1,650 @@
|
||||
// SoftEther VPN Source Code
|
||||
// Build Utility
|
||||
//
|
||||
// SoftEther VPN Server, Client and Bridge are free software under GPLv2.
|
||||
//
|
||||
// Copyright (c) 2012-2014 Daiyuu Nobori.
|
||||
// Copyright (c) 2012-2014 SoftEther VPN Project, University of Tsukuba, Japan.
|
||||
// Copyright (c) 2012-2014 SoftEther Corporation.
|
||||
//
|
||||
// All Rights Reserved.
|
||||
//
|
||||
// http://www.softether.org/
|
||||
//
|
||||
// Author: Daiyuu Nobori
|
||||
// Comments: Tetsuo Sugiyama, Ph.D.
|
||||
//
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// version 2 as published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License version 2
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// THE LICENSE AGREEMENT IS ATTACHED ON THE SOURCE-CODE PACKAGE
|
||||
// AS "LICENSE.TXT" FILE. READ THE TEXT FILE IN ADVANCE TO USE THE SOFTWARE.
|
||||
//
|
||||
//
|
||||
// THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN,
|
||||
// UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY,
|
||||
// MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS
|
||||
// SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS
|
||||
// SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER
|
||||
// CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL
|
||||
// DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING,
|
||||
// MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR
|
||||
// SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND
|
||||
// CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO
|
||||
// EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO,
|
||||
// JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION
|
||||
// AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN
|
||||
// THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.
|
||||
//
|
||||
// USE ONLY IN JAPAN. DO NOT USE IT IN OTHER COUNTRIES. IMPORTING THIS
|
||||
// SOFTWARE INTO OTHER COUNTRIES IS AT YOUR OWN RISK. SOME COUNTRIES
|
||||
// PROHIBIT ENCRYPTED COMMUNICATIONS. USING THIS SOFTWARE IN OTHER
|
||||
// COUNTRIES MIGHT BE RESTRICTED.
|
||||
//
|
||||
//
|
||||
// DEAR SECURITY EXPERTS
|
||||
// ---------------------
|
||||
//
|
||||
// If you find a bug or a security vulnerability please kindly inform us
|
||||
// about the problem immediately so that we can fix the security problem
|
||||
// to protect a lot of users around the world as soon as possible.
|
||||
//
|
||||
// Our e-mail address for security reports is:
|
||||
// softether-vpn-security [at] softether.org
|
||||
//
|
||||
// Please note that the above e-mail address is not a technical support
|
||||
// inquiry address. If you need technical assistance, please visit
|
||||
// http://www.softether.org/ and ask your question on the users forum.
|
||||
//
|
||||
// Thank you for your cooperation.
|
||||
|
||||
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Text;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Security.Cryptography;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.IO;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Net.Security;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using CoreUtil;
|
||||
|
||||
namespace BuildUtil
|
||||
{
|
||||
// Languages
|
||||
public class Language
|
||||
{
|
||||
public int Number;
|
||||
public string Id;
|
||||
public string Title;
|
||||
public string TitleUnicode;
|
||||
public string WindowsLocaleIds;
|
||||
public string UnixLocaleIds;
|
||||
}
|
||||
|
||||
// Build helper class
|
||||
public static class BuildHelper
|
||||
{
|
||||
// loads the language list text file
|
||||
public static Language[] GetLanguageList()
|
||||
{
|
||||
return GetLanguageList(Path.Combine(Paths.BinDirName, @"hamcore\languages.txt"));
|
||||
}
|
||||
public static Language[] GetLanguageList(string filename)
|
||||
{
|
||||
List<Language> ret = new List<Language>();
|
||||
string[] lines = File.ReadAllLines(filename, Str.Utf8Encoding);
|
||||
|
||||
foreach (string line in lines)
|
||||
{
|
||||
string s = line.Trim();
|
||||
|
||||
if (Str.IsEmptyStr(s) == false)
|
||||
{
|
||||
if (s.StartsWith("#", StringComparison.InvariantCultureIgnoreCase) == false)
|
||||
{
|
||||
string[] sps = { " ", "\t", };
|
||||
string[] tokens = s.Split(sps, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
||||
if (tokens.Length == 6)
|
||||
{
|
||||
Language e = new Language();
|
||||
|
||||
e.Number = Str.StrToInt(tokens[0]);
|
||||
e.Id = tokens[1];
|
||||
e.Title = Str.ReplaceStr(tokens[2], "_", " ");
|
||||
e.TitleUnicode = tokens[3];
|
||||
e.WindowsLocaleIds = tokens[4];
|
||||
e.UnixLocaleIds = tokens[5];
|
||||
|
||||
ret.Add(e);
|
||||
|
||||
Con.WriteLine(tokens.Length);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ret.ToArray();
|
||||
}
|
||||
|
||||
// Build
|
||||
public static void BuildMain(BuildSoftware soft, bool debugModeIfUnix)
|
||||
{
|
||||
int version, build;
|
||||
string name;
|
||||
DateTime date;
|
||||
|
||||
string title = Console.Title;
|
||||
Console.Title = string.Format("Building {0}", soft.IDString);
|
||||
|
||||
try
|
||||
{
|
||||
Win32BuildUtil.ReadBuildInfoFromTextFile(out build, out version, out name, out date);
|
||||
|
||||
soft.SetBuildNumberVersionName(build, version, name, date);
|
||||
|
||||
Con.WriteLine("Building '{0}' - {1}...", soft.IDString, soft.TitleString);
|
||||
|
||||
BuildSoftwareUnix softUnix = soft as BuildSoftwareUnix;
|
||||
|
||||
if (softUnix == null)
|
||||
{
|
||||
soft.Build();
|
||||
}
|
||||
else
|
||||
{
|
||||
softUnix.Build(debugModeIfUnix);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
Console.Title = title;
|
||||
}
|
||||
}
|
||||
|
||||
// Convert the number to a version number
|
||||
public static string VersionIntToString(int version)
|
||||
{
|
||||
return string.Format("{0}.{1:D2}", version / 100, version % 100);
|
||||
}
|
||||
|
||||
// Get a product list that is included in the software
|
||||
public static string GetSoftwareProductList(Software soft)
|
||||
{
|
||||
string ret = "";
|
||||
|
||||
switch (soft)
|
||||
{
|
||||
case Software.vpnbridge:
|
||||
ret = "PacketiX VPN Bridge";
|
||||
break;
|
||||
|
||||
case Software.vpnclient:
|
||||
ret = "PacketiX VPN Client, PacketiX VPN Command-Line Admin Utility (vpncmd)";
|
||||
break;
|
||||
|
||||
case Software.vpnserver:
|
||||
ret = "PacketiX VPN Server, PacketiX VPN Command-Line Admin Utility (vpncmd)";
|
||||
break;
|
||||
|
||||
case Software.vpnserver_vpnbridge:
|
||||
ret = "PacketiX VPN Server, PacketiX VPN Bridge, PacketiX VPN Server Manager for Windows, PacketiX VPN Command-Line Admin Utility (vpncmd)";
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new ApplicationException("invalid soft.");
|
||||
}
|
||||
|
||||
#if BU_SOFTETHER
|
||||
ret = Str.ReplaceStr(ret, "PacketiX", "SoftEther", false);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
// Get the title of the software
|
||||
public static string GetSoftwareTitle(Software soft)
|
||||
{
|
||||
string ret = "";
|
||||
|
||||
switch (soft)
|
||||
{
|
||||
case Software.vpnbridge:
|
||||
ret = "PacketiX VPN Bridge";
|
||||
break;
|
||||
|
||||
case Software.vpnclient:
|
||||
ret = "PacketiX VPN Client";
|
||||
break;
|
||||
|
||||
case Software.vpnserver:
|
||||
ret = "PacketiX VPN Server";
|
||||
break;
|
||||
|
||||
case Software.vpnserver_vpnbridge:
|
||||
ret = "PacketiX VPN Server and VPN Bridge";
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new ApplicationException("invalid soft.");
|
||||
}
|
||||
|
||||
#if BU_SOFTETHER
|
||||
ret = Str.ReplaceStr(ret, "PacketiX", "SoftEther", false);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
// Basic path information
|
||||
public static class Paths
|
||||
{
|
||||
public static readonly string ExeFileName = Env.ExeFileName;
|
||||
public static readonly string ExeDirName = Env.ExeFileDir;
|
||||
public static readonly string BinDirName = ExeDirName;
|
||||
public static readonly string BaseDirName = IO.NormalizePath(Path.Combine(BinDirName, @"..\"));
|
||||
public static readonly string UtilityDirName = IO.NormalizePath(Path.Combine(BinDirName, @"..\BuildFiles\Utility"));
|
||||
|
||||
#if !BU_SOFTETHER
|
||||
// PacketiX VPN (build by SoftEther)
|
||||
public static readonly string VPN4SolutionFileName = Path.Combine(BaseDirName, "VPN4.sln");
|
||||
public static readonly string DebugSnapshotBaseDir = @"S:\SE4\DebugFilesSnapshot";
|
||||
public static readonly string ReleaseDestDir = @"s:\SE4\Releases";
|
||||
public const string Prefix = "";
|
||||
#else
|
||||
#if !BU_OSS
|
||||
// SoftEther VPN (build by SoftEther)
|
||||
public static readonly string VPN4SolutionFileName = Path.Combine(BaseDirName, "SEVPN.sln");
|
||||
public static readonly string DebugSnapshotBaseDir = @"S:\SE4\DebugFilesSnapshot_SEVPN";
|
||||
public static readonly string ReleaseDestDir = @"s:\SE4\Releases_SEVPN";
|
||||
public const string Prefix = "softether-";
|
||||
#else
|
||||
// SoftEther VPN (build by Open Source Developers)
|
||||
public static readonly string VPN4SolutionFileName = Path.Combine(BaseDirName, "SEVPN.sln");
|
||||
public static readonly string DebugSnapshotBaseDir = IO.NormalizePath(Path.Combine(BaseDirName, @"..\output\debug"));
|
||||
public static readonly string ReleaseDestDir = IO.NormalizePath(Path.Combine(BaseDirName, @"..\output\pkg"));
|
||||
public const string Prefix = "softether_open-";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
public static readonly string ReleaseDestDir_SEVPN = @"s:\SE4\Releases_SEVPN";
|
||||
|
||||
public static readonly string BuildHamcoreFilesDirName = Path.Combine(BinDirName, "BuiltHamcoreFiles");
|
||||
public static readonly string VisualStudioVCDir;
|
||||
public static readonly string VisualStudioVCBatchFileName;
|
||||
public static readonly string DotNetFramework35Dir;
|
||||
public static readonly string MSBuildFileName;
|
||||
public static readonly string TmpDirName;
|
||||
public static readonly DateTime StartDateTime = DateTime.Now;
|
||||
public static readonly string StartDateTimeStr;
|
||||
public static readonly string CmdFileName;
|
||||
public static readonly string ManifestsDir = Path.Combine(BaseDirName, @"BuildFiles\Manifests");
|
||||
public static readonly string XCopyExeFileName = Path.Combine(Env.SystemDir, "xcopy.exe");
|
||||
public static readonly string ReleaseDir = Path.Combine(BaseDirName, @"tmp\Release");
|
||||
public static readonly string ReleaseSrckitDir = Path.Combine(BaseDirName, @"tmp\ReleaseSrcKit");
|
||||
public static readonly string StringsDir = Path.Combine(BaseDirName, @"BuildFiles\Strings");
|
||||
public static readonly string CrossCompilerBaseDir = @"S:\CommomDev\xc";
|
||||
public static readonly string UnixInstallScript = Path.Combine(BaseDirName, @"BuildFiles\UnixFiles\InstallScript.txt");
|
||||
public static readonly string OssCommentsFile = Path.Combine(StringsDir, "OssComments.txt");
|
||||
public static readonly string AutorunSrcDir = IO.NormalizePath(Path.Combine(BaseDirName, @"..\Autorun"));
|
||||
public static readonly string MicrosoftSDKDir;
|
||||
public static readonly string MakeCatFilename;
|
||||
public static readonly string RcFilename;
|
||||
public static readonly string SoftEtherBuildDir = Env.SystemDir.Substring(0, 2) + @"\tmp\softether_build_dir";
|
||||
public static readonly string OpenSourceDestDir = Env.SystemDir.Substring(0, 2) + @"\tmp\softether_oss_dest_dir";
|
||||
|
||||
// Initialize
|
||||
static Paths()
|
||||
{
|
||||
// Starting date and time string
|
||||
Paths.StartDateTimeStr = Str.DateTimeToStrShort(Paths.StartDateTime);
|
||||
|
||||
// Check whether the execution path is the bin directory in the VPN directory
|
||||
if (Paths.BinDirName.EndsWith(@"\bin", StringComparison.InvariantCultureIgnoreCase) == false)
|
||||
{
|
||||
throw new ApplicationException(string.Format("'{0}' is not a VPN bin directory.", Paths.BinDirName));
|
||||
}
|
||||
if (File.Exists(Paths.VPN4SolutionFileName) == false)
|
||||
{
|
||||
throw new ApplicationException(string.Format("'{0}' is not a VPN base directory.", Paths.BaseDirName));
|
||||
}
|
||||
|
||||
// Get the VC++ directory
|
||||
// Visual Studio 2008
|
||||
Paths.VisualStudioVCDir = IO.RemoteLastEnMark(Reg.ReadStr(RegRoot.LocalMachine, @"SOFTWARE\Microsoft\VisualStudio\9.0\Setup\VC", "ProductDir"));
|
||||
if (Str.IsEmptyStr(Paths.VisualStudioVCDir))
|
||||
{
|
||||
throw new ApplicationException("Visual C++ directory not found.\n");
|
||||
}
|
||||
if (Directory.Exists(Paths.VisualStudioVCDir) == false)
|
||||
{
|
||||
throw new ApplicationException(string.Format("Directory '{0}' not found.", Paths.VisualStudioVCDir));
|
||||
}
|
||||
|
||||
// Get the VC++ batch file name
|
||||
Paths.VisualStudioVCBatchFileName = Path.Combine(Paths.VisualStudioVCDir, "vcvarsall.bat");
|
||||
if (File.Exists(Paths.VisualStudioVCBatchFileName) == false)
|
||||
{
|
||||
throw new ApplicationException(string.Format("File '{0}' not found.", Paths.VisualStudioVCBatchFileName));
|
||||
}
|
||||
|
||||
bool x86_dir = false;
|
||||
|
||||
// Get Microsoft SDK 6.0a directory
|
||||
Paths.MicrosoftSDKDir = IO.RemoteLastEnMark(Reg.ReadStr(RegRoot.LocalMachine, @"SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A", "InstallationFolder"));
|
||||
|
||||
// Get makecat.exe file name
|
||||
Paths.MakeCatFilename = Path.Combine(Paths.MicrosoftSDKDir, @"bin\" + (x86_dir ? @"x86\" : "") + "makecat.exe");
|
||||
|
||||
// Get the rc.exe file name
|
||||
Paths.RcFilename = Path.Combine(Paths.MicrosoftSDKDir, @"bin\" + (x86_dir ? @"x86\" : "") + "rc.exe");
|
||||
|
||||
// Get the cmd.exe file name
|
||||
Paths.CmdFileName = Path.Combine(Env.SystemDir, "cmd.exe");
|
||||
if (File.Exists(Paths.CmdFileName) == false)
|
||||
{
|
||||
throw new ApplicationException(string.Format("File '{0}' not found.", Paths.CmdFileName));
|
||||
}
|
||||
|
||||
// Get .NET Framework 3.5 directory
|
||||
Paths.DotNetFramework35Dir = Path.Combine(Env.WindowsDir, @"Microsoft.NET\Framework\v3.5");
|
||||
|
||||
// Get msbuild.exe directory
|
||||
Paths.MSBuildFileName = Path.Combine(Paths.DotNetFramework35Dir, "MSBuild.exe");
|
||||
if (File.Exists(Paths.MSBuildFileName) == false)
|
||||
{
|
||||
throw new ApplicationException(string.Format("File '{0}' not found.", Paths.MSBuildFileName));
|
||||
}
|
||||
|
||||
// Get the TMP directory
|
||||
Paths.TmpDirName = Path.Combine(Paths.BaseDirName, "tmp");
|
||||
if (Directory.Exists(Paths.TmpDirName) == false)
|
||||
{
|
||||
Directory.CreateDirectory(Paths.TmpDirName);
|
||||
}
|
||||
}
|
||||
|
||||
public static void DeleteAllReleaseTarGz()
|
||||
{
|
||||
if (Directory.Exists(Paths.ReleaseDir))
|
||||
{
|
||||
string[] files = Directory.GetFiles(Paths.ReleaseDir, "*.gz", SearchOption.AllDirectories);
|
||||
|
||||
foreach (string file in files)
|
||||
{
|
||||
File.Delete(file);
|
||||
}
|
||||
}
|
||||
|
||||
if (Directory.Exists(Paths.ReleaseSrckitDir))
|
||||
{
|
||||
string[] files = Directory.GetFiles(Paths.ReleaseSrckitDir, "*.gz", SearchOption.AllDirectories);
|
||||
|
||||
foreach (string file in files)
|
||||
{
|
||||
File.Delete(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void DeleteAllReleaseAdminKits()
|
||||
{
|
||||
if (Directory.Exists(Paths.ReleaseDir))
|
||||
{
|
||||
string[] files = Directory.GetFiles(Paths.ReleaseDir, "*.zip", SearchOption.AllDirectories);
|
||||
|
||||
foreach (string file in files)
|
||||
{
|
||||
if (Str.InStr(file, "vpnadminpak"))
|
||||
{
|
||||
File.Delete(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void DeleteAllReleaseManuals()
|
||||
{
|
||||
if (Directory.Exists(Paths.ReleaseDir))
|
||||
{
|
||||
string[] files = Directory.GetFiles(Paths.ReleaseDir, "*", SearchOption.AllDirectories);
|
||||
|
||||
foreach (string file in files)
|
||||
{
|
||||
if (Str.InStr(file, "vpnmanual"))
|
||||
{
|
||||
File.Delete(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void DeleteAllReleaseExe()
|
||||
{
|
||||
if (Directory.Exists(Paths.ReleaseDir))
|
||||
{
|
||||
string[] files = Directory.GetFiles(Paths.ReleaseDir, "*.exe", SearchOption.AllDirectories);
|
||||
|
||||
foreach (string file in files)
|
||||
{
|
||||
if (Str.InStr(file, "vpnmanual") == false)
|
||||
{
|
||||
File.Delete(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// HamCore build utility
|
||||
public static class HamCoreBuildUtil
|
||||
{
|
||||
// Identify whether a file is necessary only in the Win32
|
||||
public static bool IsFileForOnlyWin32(string filename)
|
||||
{
|
||||
string[] filesOnlyWin32 =
|
||||
{
|
||||
".exe",
|
||||
".dll",
|
||||
".sys",
|
||||
".inf",
|
||||
".wav",
|
||||
};
|
||||
|
||||
foreach (string ext in filesOnlyWin32)
|
||||
{
|
||||
if (filename.EndsWith(ext, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Delete svn file
|
||||
public static void DeleteSVNFilesFromHamCoreBuilder(HamCoreBuilder b)
|
||||
{
|
||||
List<string> removeFiles = new List<string>();
|
||||
foreach (HamCoreBuilderFileEntry f in b.FileList)
|
||||
{
|
||||
string name = f.Name;
|
||||
if (name.StartsWith(".svn", StringComparison.InvariantCultureIgnoreCase) ||
|
||||
name.IndexOf(@"\.svn", StringComparison.InvariantCultureIgnoreCase) != -1)
|
||||
{
|
||||
removeFiles.Add(name);
|
||||
}
|
||||
}
|
||||
foreach (string file in removeFiles)
|
||||
{
|
||||
b.DeleteFile(file);
|
||||
}
|
||||
}
|
||||
|
||||
// Build Hamcore file
|
||||
public static void BuildHamcore()
|
||||
{
|
||||
string srcDirNameBasic = Path.Combine(Paths.BinDirName, "hamcore");
|
||||
// Create the destination directory
|
||||
string win32DestDir = Path.Combine(Paths.BuildHamcoreFilesDirName, "hamcore_win32");
|
||||
string win32DestFileName = Path.Combine(win32DestDir, "hamcore.se2");
|
||||
string unixDestDir = Path.Combine(Paths.BuildHamcoreFilesDirName, "hamcore_unix");
|
||||
string unixDestFileName = Path.Combine(unixDestDir, "hamcore.se2");
|
||||
IO.MakeDir(win32DestDir);
|
||||
IO.MakeDir(unixDestDir);
|
||||
|
||||
|
||||
BuildHamcoreEx(srcDirNameBasic, win32DestFileName, unixDestFileName);
|
||||
|
||||
// Copy to bin\hamcore.se2
|
||||
try
|
||||
{
|
||||
string binHamcoreFileName = Path.Combine(Paths.BinDirName, "hamcore.se2");
|
||||
|
||||
try
|
||||
{
|
||||
File.Delete(binHamcoreFileName);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
File.Copy(win32DestFileName, binHamcoreFileName, true);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public static void BuildHamcoreEx(string srcDirNameBasic, string win32DestFileName, string unixDestFileName)
|
||||
{
|
||||
HamCoreBuilder b = new HamCoreBuilder();
|
||||
b.AddDir(srcDirNameBasic);
|
||||
Con.WriteLine("* Building hamcore ...");
|
||||
|
||||
DeleteSVNFilesFromHamCoreBuilder(b);
|
||||
|
||||
try
|
||||
{
|
||||
File.Delete(win32DestFileName);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
b.Build(win32DestFileName);
|
||||
|
||||
// unix
|
||||
List<string> removeFiles = new List<string>();
|
||||
foreach (HamCoreBuilderFileEntry f in b.FileList)
|
||||
{
|
||||
if (IsFileForOnlyWin32(f.Name))
|
||||
{
|
||||
removeFiles.Add(f.Name);
|
||||
}
|
||||
}
|
||||
foreach (string removeFile in removeFiles)
|
||||
{
|
||||
b.DeleteFile(removeFile);
|
||||
}
|
||||
|
||||
DeleteSVNFilesFromHamCoreBuilder(b);
|
||||
|
||||
try
|
||||
{
|
||||
File.Delete(unixDestFileName);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
b.Build(unixDestFileName);
|
||||
}
|
||||
}
|
||||
|
||||
// Number of bits
|
||||
public enum CPUBits
|
||||
{
|
||||
Both,
|
||||
Bits32,
|
||||
Bits64,
|
||||
}
|
||||
|
||||
// Conversion a string to the number of bits
|
||||
public static class CPUBitsUtil
|
||||
{
|
||||
public static CPUBits StringToCPUBits(string str)
|
||||
{
|
||||
if (str.Equals("32bit", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return CPUBits.Bits32;
|
||||
}
|
||||
else if (str.Equals("64bit", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return CPUBits.Bits64;
|
||||
}
|
||||
else if (str.Equals("intel", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return CPUBits.Both;
|
||||
}
|
||||
|
||||
throw new ApplicationException(string.Format("Invalid bits string '{0}'.", str));
|
||||
}
|
||||
|
||||
public static string CPUBitsToString(CPUBits bits)
|
||||
{
|
||||
switch (bits)
|
||||
{
|
||||
case CPUBits.Bits32:
|
||||
return "32bit";
|
||||
|
||||
case CPUBits.Bits64:
|
||||
return "64bit";
|
||||
|
||||
case CPUBits.Both:
|
||||
return "intel";
|
||||
}
|
||||
|
||||
throw new ApplicationException("bits invalid.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Developed by SoftEther VPN Project at University of Tsukuba in Japan.
|
||||
// Department of Computer Science has dozens of overly-enthusiastic geeks.
|
||||
// Join us: http://www.tsukuba.ac.jp/english/admission/
|
513
src/BuildUtil/VpnBuilderConfig.cs
Normal file
513
src/BuildUtil/VpnBuilderConfig.cs
Normal file
@ -0,0 +1,513 @@
|
||||
// SoftEther VPN Source Code
|
||||
// Build Utility
|
||||
//
|
||||
// SoftEther VPN Server, Client and Bridge are free software under GPLv2.
|
||||
//
|
||||
// Copyright (c) 2012-2014 Daiyuu Nobori.
|
||||
// Copyright (c) 2012-2014 SoftEther VPN Project, University of Tsukuba, Japan.
|
||||
// Copyright (c) 2012-2014 SoftEther Corporation.
|
||||
//
|
||||
// All Rights Reserved.
|
||||
//
|
||||
// http://www.softether.org/
|
||||
//
|
||||
// Author: Daiyuu Nobori
|
||||
// Comments: Tetsuo Sugiyama, Ph.D.
|
||||
//
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// version 2 as published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License version 2
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// THE LICENSE AGREEMENT IS ATTACHED ON THE SOURCE-CODE PACKAGE
|
||||
// AS "LICENSE.TXT" FILE. READ THE TEXT FILE IN ADVANCE TO USE THE SOFTWARE.
|
||||
//
|
||||
//
|
||||
// THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN,
|
||||
// UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY,
|
||||
// MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS
|
||||
// SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS
|
||||
// SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER
|
||||
// CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL
|
||||
// DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING,
|
||||
// MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR
|
||||
// SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND
|
||||
// CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO
|
||||
// EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO,
|
||||
// JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION
|
||||
// AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN
|
||||
// THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.
|
||||
//
|
||||
// USE ONLY IN JAPAN. DO NOT USE IT IN OTHER COUNTRIES. IMPORTING THIS
|
||||
// SOFTWARE INTO OTHER COUNTRIES IS AT YOUR OWN RISK. SOME COUNTRIES
|
||||
// PROHIBIT ENCRYPTED COMMUNICATIONS. USING THIS SOFTWARE IN OTHER
|
||||
// COUNTRIES MIGHT BE RESTRICTED.
|
||||
//
|
||||
//
|
||||
// DEAR SECURITY EXPERTS
|
||||
// ---------------------
|
||||
//
|
||||
// If you find a bug or a security vulnerability please kindly inform us
|
||||
// about the problem immediately so that we can fix the security problem
|
||||
// to protect a lot of users around the world as soon as possible.
|
||||
//
|
||||
// Our e-mail address for security reports is:
|
||||
// softether-vpn-security [at] softether.org
|
||||
//
|
||||
// Please note that the above e-mail address is not a technical support
|
||||
// inquiry address. If you need technical assistance, please visit
|
||||
// http://www.softether.org/ and ask your question on the users forum.
|
||||
//
|
||||
// Thank you for your cooperation.
|
||||
|
||||
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Text;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Security.Cryptography;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.IO;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Net.Security;
|
||||
using System.Reflection;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using CoreUtil;
|
||||
|
||||
namespace BuildUtil
|
||||
{
|
||||
// Build settings
|
||||
public static class BuildConfig
|
||||
{
|
||||
public static readonly int NumMultipleCompileTasks = 4;
|
||||
}
|
||||
|
||||
// Software List
|
||||
public static class BuildSoftwareList
|
||||
{
|
||||
// List creation date and time
|
||||
public static DateTime ListCreatedDateTime = DateTime.Now;
|
||||
|
||||
// ========== Windows ==========
|
||||
// Server and Bridge
|
||||
public static readonly BuildSoftware vpnserver_win32_x86x64_ja =
|
||||
new BuildSoftwareWin32(Software.vpnserver_vpnbridge, 0, 0, "", CpuList.intel, OSList.Windows);
|
||||
|
||||
// Client
|
||||
public static readonly BuildSoftware vpnclient_win32_x86x64_ja =
|
||||
new BuildSoftwareWin32(Software.vpnclient, 0, 0, "", CpuList.intel, OSList.Windows);
|
||||
|
||||
// ========== Linux ==========
|
||||
// Server
|
||||
public static readonly BuildSoftware vpnserver_linux_x86_ja =
|
||||
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.x86, OSList.Linux,
|
||||
"linux-x86-32bit", true, "linux-x86-32bit-3.4.6", false,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnserver_linux_x64_ja =
|
||||
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.x64, OSList.Linux,
|
||||
"linux-x86-64bit", true, "linux-x86-64bit-3.4.6", false,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnserver_linux_arm_ja =
|
||||
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.arm, OSList.Linux,
|
||||
"linux-arm-32bit", false, "linux-arm-32bit-3.4.6", false,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnserver_linux_armeabi_ja =
|
||||
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.armeabi, OSList.Linux,
|
||||
"linux-armeabi-32bit", false, "linux-armeabi-32bit-4.3.2", true,
|
||||
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,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnserver_linux_ppc_ja =
|
||||
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 =
|
||||
new BuildSoftwareUnix(Software.vpnclient, 0, 0, "", CpuList.x86, OSList.Linux,
|
||||
"linux-x86-32bit", true, "linux-x86-32bit-3.4.6", false,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnclient_linux_x64_ja =
|
||||
new BuildSoftwareUnix(Software.vpnclient, 0, 0, "", CpuList.x64, OSList.Linux,
|
||||
"linux-x86-64bit", true, "linux-x86-64bit-3.4.6", false,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnclient_linux_arm_ja =
|
||||
new BuildSoftwareUnix(Software.vpnclient, 0, 0, "", CpuList.arm, OSList.Linux,
|
||||
"linux-arm-32bit", false, "linux-arm-32bit-3.4.6", false,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnclient_linux_armeabi_ja =
|
||||
new BuildSoftwareUnix(Software.vpnclient, 0, 0, "", CpuList.armeabi, OSList.Linux,
|
||||
"linux-armeabi-32bit", false, "linux-armeabi-32bit-4.3.2", true,
|
||||
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,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnclient_linux_ppc_ja =
|
||||
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 =
|
||||
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.x86, OSList.Linux,
|
||||
"linux-x86-32bit", true, "linux-x86-32bit-3.4.6", false,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnbridge_linux_x64_ja =
|
||||
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.x64, OSList.Linux,
|
||||
"linux-x86-64bit", true, "linux-x86-64bit-3.4.6", false,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnbridge_linux_arm_ja =
|
||||
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.arm, OSList.Linux,
|
||||
"linux-arm-32bit", false, "linux-arm-32bit-3.4.6", false,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnbridge_linux_armeabi_ja =
|
||||
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.armeabi, OSList.Linux,
|
||||
"linux-armeabi-32bit", false, "linux-armeabi-32bit-4.3.2", true,
|
||||
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,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnbridge_linux_ppc_ja =
|
||||
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 ==========
|
||||
// Server
|
||||
public static readonly BuildSoftware vpnserver_bsd_x86_ja =
|
||||
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.x86, OSList.FreeBSD,
|
||||
"freebsd-x86-32bit", true, "freebsd-x86-32bit-3.4.6", false,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnserver_bsd_x64_ja =
|
||||
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.x64, OSList.FreeBSD,
|
||||
"freebsd-x86-64bit", true, "freebsd-x86-64bit-3.4.6", false,
|
||||
null);
|
||||
|
||||
// Bridge
|
||||
public static readonly BuildSoftware vpnbridge_bsd_x86_ja =
|
||||
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.x86, OSList.FreeBSD,
|
||||
"freebsd-x86-32bit", true, "freebsd-x86-32bit-3.4.6", false,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnbridge_bsd_x64_ja =
|
||||
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.x64, OSList.FreeBSD,
|
||||
"freebsd-x86-64bit", true, "freebsd-x86-64bit-3.4.6", false,
|
||||
null);
|
||||
|
||||
|
||||
// ========== Mac OS X ==========
|
||||
// Server
|
||||
public static readonly BuildSoftware vpnserver_macos_ppc32_ja =
|
||||
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.ppc32, OSList.MacOS,
|
||||
"macos-ppc-32bit", true, "macos-ppc-32bit-4.0.4", true,
|
||||
"-isysroot /cygdrive/s/CommomDev/xc/common/apple_xcode/xcode_2.4/Developer/SDKs/MacOSX10.4u.sdk");
|
||||
public static readonly BuildSoftware vpnserver_macos_ppc64_ja =
|
||||
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.ppc64, OSList.MacOS,
|
||||
"macos-ppc-64bit", true, "macos-ppc-64bit-4.0.4", true,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnserver_macos_x86_ja =
|
||||
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.x86, OSList.MacOS,
|
||||
"macos-x86-32bit", true, "macos-x86-32bit-4.0.4", true,
|
||||
"-isysroot /cygdrive/s/CommomDev/xc/common/apple_xcode/xcode_2.4/Developer/SDKs/MacOSX10.4u.sdk");
|
||||
public static readonly BuildSoftware vpnserver_macos_x64_ja =
|
||||
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.x64, OSList.MacOS,
|
||||
"macos-x86-64bit", true, "macos-x86-64bit-4.0.4", true,
|
||||
null);
|
||||
|
||||
// Bridge
|
||||
public static readonly BuildSoftware vpnbridge_macos_ppc32_ja =
|
||||
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.ppc32, OSList.MacOS,
|
||||
"macos-ppc-32bit", true, "macos-ppc-32bit-4.0.4", true,
|
||||
"-isysroot /cygdrive/s/CommomDev/xc/common/apple_xcode/xcode_2.4/Developer/SDKs/MacOSX10.4u.sdk");
|
||||
public static readonly BuildSoftware vpnbridge_macos_ppc64_ja =
|
||||
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.ppc64, OSList.MacOS,
|
||||
"macos-ppc-64bit", true, "macos-ppc-64bit-4.0.4", true,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnbridge_macos_x86_ja =
|
||||
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.x86, OSList.MacOS,
|
||||
"macos-x86-32bit", true, "macos-x86-32bit-4.0.4", true,
|
||||
"-isysroot /cygdrive/s/CommomDev/xc/common/apple_xcode/xcode_2.4/Developer/SDKs/MacOSX10.4u.sdk");
|
||||
public static readonly BuildSoftware vpnbridge_macos_x64_ja =
|
||||
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.x64, OSList.MacOS,
|
||||
"macos-x86-64bit", true, "macos-x86-64bit-4.0.4", true,
|
||||
null);
|
||||
|
||||
// ========== Solaris ==========
|
||||
// Server
|
||||
public static readonly BuildSoftware vpnserver_solaris_sparc32_ja =
|
||||
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.sparc32, OSList.Solaris,
|
||||
"solaris-sparc-32bit", true, "solaris-sparc-32bit-3.4.6", true,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnserver_solaris_sparc64_ja =
|
||||
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.sparc64, OSList.Solaris,
|
||||
"solaris-sparc-64bit", true, "solaris-sparc-64bit-3.4.6", true,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnserver_solaris_x86_ja =
|
||||
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.x86, OSList.Solaris,
|
||||
"solaris-x86-32bit", true, "solaris-x86-32bit-3.4.6", true,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnserver_solaris_x64_ja =
|
||||
new BuildSoftwareUnix(Software.vpnserver, 0, 0, "", CpuList.x64, OSList.Solaris,
|
||||
"solaris-x86-64bit", true, "solaris-x86-64bit-3.4.6", true,
|
||||
null);
|
||||
|
||||
// Bridge
|
||||
public static readonly BuildSoftware vpnbridge_solaris_sparc32_ja =
|
||||
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.sparc32, OSList.Solaris,
|
||||
"solaris-sparc-32bit", true, "solaris-sparc-32bit-3.4.6", true,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnbridge_solaris_sparc64_ja =
|
||||
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.sparc64, OSList.Solaris,
|
||||
"solaris-sparc-64bit", true, "solaris-sparc-64bit-3.4.6", true,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnbridge_solaris_x86_ja =
|
||||
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.x86, OSList.Solaris,
|
||||
"solaris-x86-32bit", true, "solaris-x86-32bit-3.4.6", true,
|
||||
null);
|
||||
public static readonly BuildSoftware vpnbridge_solaris_x64_ja =
|
||||
new BuildSoftwareUnix(Software.vpnbridge, 0, 0, "", CpuList.x64, OSList.Solaris,
|
||||
"solaris-x86-64bit", true, "solaris-x86-64bit-3.4.6", true,
|
||||
null);
|
||||
|
||||
static BuildSoftwareList()
|
||||
{
|
||||
foreach (BuildSoftware soft in List)
|
||||
{
|
||||
BuildSoftwareUnix s = soft as BuildSoftwareUnix;
|
||||
if (s != null)
|
||||
{
|
||||
// Make different settings for each OS
|
||||
if (soft.Os == OSList.Linux)
|
||||
{
|
||||
s.GccMacros.Add("UNIX_LINUX");
|
||||
}
|
||||
else if (soft.Os == OSList.FreeBSD)
|
||||
{
|
||||
s.GccMacros.Add("UNIX_BSD");
|
||||
s.GccMacros.Add("BRIDGE_BPF");
|
||||
s.GccMacros.Add("NO_VLAN");
|
||||
}
|
||||
else if (soft.Os == OSList.MacOS)
|
||||
{
|
||||
s.GccMacros.Add("UNIX_MACOS");
|
||||
s.GccMacros.Add("BRIDGE_PCAP");
|
||||
s.GccMacros.Add("NO_VLAN");
|
||||
}
|
||||
else if (soft.Os == OSList.Solaris)
|
||||
{
|
||||
s.GccMacros.Add("UNIX_SOLARIS");
|
||||
s.GccMacros.Add("NO_VLAN");
|
||||
}
|
||||
if (s.Cpu.Bits == CPUBits.Bits64)
|
||||
{
|
||||
s.GccMacros.Add("CPU_64");
|
||||
}
|
||||
s.GccMacros.Add("CPU_" + s.Cpu.Name.ToUpperInvariant());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static BuildSoftware[] List
|
||||
{
|
||||
get
|
||||
{
|
||||
List<BuildSoftware> o = new List<BuildSoftware>();
|
||||
foreach (FieldInfo fi in typeof(BuildSoftwareList).GetFields(BindingFlags.Static | BindingFlags.Public))
|
||||
if (fi.FieldType == typeof(BuildSoftware))
|
||||
o.Add((BuildSoftware)fi.GetValue(null));
|
||||
return o.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
public static BuildSoftware Find(Software soft, OS os, Cpu cpu)
|
||||
{
|
||||
foreach (BuildSoftware s in List)
|
||||
{
|
||||
if (s.Software == soft && s.Os == os && s.Cpu == cpu)
|
||||
{
|
||||
return s;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// OS List
|
||||
public static class OSList
|
||||
{
|
||||
// Windows
|
||||
public static readonly OS Windows = new OS("windows", "Windows",
|
||||
"Windows 98 / 98 SE / ME / NT 4.0 SP6a / 2000 SP4 / XP SP2, SP3 / Server 2003 SP2 / Vista SP1, SP2 / Server 2008 SP1, SP2 / Hyper-V Server 2008 / 7 SP1 / Server 2008 R2 SP1 / Hyper-V Server 2008 R2 / 8 / Server 2012 / Hyper-V Server 2012 / 8.1 / Server 2012 R2 / Hyper-V Server 2012 R2",
|
||||
new Cpu[]
|
||||
{
|
||||
CpuList.intel,
|
||||
});
|
||||
|
||||
// Linux
|
||||
public static readonly OS Linux = new OS("linux", "Linux",
|
||||
"Linux Kernel 2.4 / 2.6 / 3.x",
|
||||
new Cpu[]
|
||||
{
|
||||
CpuList.x86,
|
||||
CpuList.x64,
|
||||
CpuList.mipsel,
|
||||
CpuList.ppc32,
|
||||
CpuList.ppc64,
|
||||
CpuList.sh4,
|
||||
CpuList.arm,
|
||||
CpuList.armeabi,
|
||||
});
|
||||
|
||||
// FreeBSD
|
||||
public static readonly OS FreeBSD = new OS("freebsd", "FreeBSD",
|
||||
"FreeBSD 5 / 6 / 7 / 8 / 9",
|
||||
new Cpu[]
|
||||
{
|
||||
CpuList.x86,
|
||||
CpuList.x64,
|
||||
});
|
||||
|
||||
// Solaris
|
||||
public static readonly OS Solaris = new OS("solaris", "Solaris",
|
||||
"Solaris 8 / 9 / 10 / 11",
|
||||
new Cpu[]
|
||||
{
|
||||
CpuList.x86,
|
||||
CpuList.x64,
|
||||
CpuList.sparc32,
|
||||
CpuList.sparc64,
|
||||
});
|
||||
|
||||
// Mac OS X
|
||||
public static readonly OS MacOS = new OS("macos", "Mac OS X",
|
||||
"Mac OS X 10.4 Tiger / 10.5 Leopard / 10.6 Snow Leopard / 10.7 Lion / 10.8 Mountain Lion",
|
||||
new Cpu[]
|
||||
{
|
||||
CpuList.x86,
|
||||
CpuList.x64,
|
||||
CpuList.ppc32,
|
||||
CpuList.ppc64,
|
||||
});
|
||||
|
||||
static OSList()
|
||||
{
|
||||
OSList.Windows.IsWindows = true;
|
||||
}
|
||||
|
||||
public static OS[] List
|
||||
{
|
||||
get
|
||||
{
|
||||
List<OS> o = new List<OS>();
|
||||
foreach (FieldInfo fi in typeof(OSList).GetFields(BindingFlags.Static | BindingFlags.Public))
|
||||
if (fi.FieldType == typeof(OS))
|
||||
o.Add((OS)fi.GetValue(null));
|
||||
return o.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
public static OS FindByName(string name)
|
||||
{
|
||||
foreach (OS os in List)
|
||||
{
|
||||
if (os.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return os;
|
||||
}
|
||||
}
|
||||
|
||||
throw new ApplicationException(name);
|
||||
}
|
||||
}
|
||||
|
||||
// CPU List
|
||||
public static class CpuList
|
||||
{
|
||||
public static readonly Cpu x86 = new Cpu("x86", "Intel x86", CPUBits.Bits32);
|
||||
public static readonly Cpu x64 = new Cpu("x64", "Intel x64 / AMD64", CPUBits.Bits64);
|
||||
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 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);
|
||||
|
||||
public static Cpu[] List
|
||||
{
|
||||
get
|
||||
{
|
||||
List<Cpu> o = new List<Cpu>();
|
||||
foreach (FieldInfo fi in typeof(CpuList).GetFields(BindingFlags.Static | BindingFlags.Public))
|
||||
if (fi.FieldType == typeof(Cpu))
|
||||
o.Add((Cpu)fi.GetValue(null));
|
||||
return o.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
public static Cpu FindByName(string name)
|
||||
{
|
||||
foreach (Cpu c in List)
|
||||
{
|
||||
if (c.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return c;
|
||||
}
|
||||
}
|
||||
|
||||
throw new ApplicationException(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Developed by SoftEther VPN Project at University of Tsukuba in Japan.
|
||||
// Department of Computer Science has dozens of overly-enthusiastic geeks.
|
||||
// Join us: http://www.tsukuba.ac.jp/english/admission/
|
303
src/BuildUtil/VpnBuilderConfigTypes.cs
Normal file
303
src/BuildUtil/VpnBuilderConfigTypes.cs
Normal file
@ -0,0 +1,303 @@
|
||||
// SoftEther VPN Source Code
|
||||
// Build Utility
|
||||
//
|
||||
// SoftEther VPN Server, Client and Bridge are free software under GPLv2.
|
||||
//
|
||||
// Copyright (c) 2012-2014 Daiyuu Nobori.
|
||||
// Copyright (c) 2012-2014 SoftEther VPN Project, University of Tsukuba, Japan.
|
||||
// Copyright (c) 2012-2014 SoftEther Corporation.
|
||||
//
|
||||
// All Rights Reserved.
|
||||
//
|
||||
// http://www.softether.org/
|
||||
//
|
||||
// Author: Daiyuu Nobori
|
||||
// Comments: Tetsuo Sugiyama, Ph.D.
|
||||
//
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// version 2 as published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License version 2
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// THE LICENSE AGREEMENT IS ATTACHED ON THE SOURCE-CODE PACKAGE
|
||||
// AS "LICENSE.TXT" FILE. READ THE TEXT FILE IN ADVANCE TO USE THE SOFTWARE.
|
||||
//
|
||||
//
|
||||
// THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN,
|
||||
// UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY,
|
||||
// MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS
|
||||
// SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS
|
||||
// SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER
|
||||
// CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL
|
||||
// DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING,
|
||||
// MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR
|
||||
// SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND
|
||||
// CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO
|
||||
// EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO,
|
||||
// JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION
|
||||
// AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN
|
||||
// THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.
|
||||
//
|
||||
// USE ONLY IN JAPAN. DO NOT USE IT IN OTHER COUNTRIES. IMPORTING THIS
|
||||
// SOFTWARE INTO OTHER COUNTRIES IS AT YOUR OWN RISK. SOME COUNTRIES
|
||||
// PROHIBIT ENCRYPTED COMMUNICATIONS. USING THIS SOFTWARE IN OTHER
|
||||
// COUNTRIES MIGHT BE RESTRICTED.
|
||||
//
|
||||
//
|
||||
// DEAR SECURITY EXPERTS
|
||||
// ---------------------
|
||||
//
|
||||
// If you find a bug or a security vulnerability please kindly inform us
|
||||
// about the problem immediately so that we can fix the security problem
|
||||
// to protect a lot of users around the world as soon as possible.
|
||||
//
|
||||
// Our e-mail address for security reports is:
|
||||
// softether-vpn-security [at] softether.org
|
||||
//
|
||||
// Please note that the above e-mail address is not a technical support
|
||||
// inquiry address. If you need technical assistance, please visit
|
||||
// http://www.softether.org/ and ask your question on the users forum.
|
||||
//
|
||||
// Thank you for your cooperation.
|
||||
|
||||
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Text;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Security.Cryptography;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.IO;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Net.Security;
|
||||
using System.Reflection;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using CoreUtil;
|
||||
|
||||
namespace BuildUtil
|
||||
{
|
||||
// CPU data
|
||||
public class Cpu
|
||||
{
|
||||
public string Name; // CPU name
|
||||
public string Title; // CPU display name
|
||||
public CPUBits Bits; // Bit length
|
||||
|
||||
public Cpu(string name, string title, CPUBits bits)
|
||||
{
|
||||
this.Name = name;
|
||||
this.Title = title;
|
||||
this.Bits = bits;
|
||||
}
|
||||
}
|
||||
|
||||
// OS data
|
||||
public class OS : ICloneable
|
||||
{
|
||||
public string Name; // OS name
|
||||
public string Title; // OS Display Name
|
||||
public string OSSimpleList; // OS simple list
|
||||
public Cpu[] CpuList; // CPU support list
|
||||
public bool IsWindows = false; // Whether Windows
|
||||
public bool IsOnlyFiles = false; // Whether only EXE file package
|
||||
|
||||
public OS(string name, string title, string simpleList, Cpu[] cpuList)
|
||||
{
|
||||
this.Name = name;
|
||||
this.Title = title;
|
||||
this.OSSimpleList = simpleList;
|
||||
this.CpuList = cpuList;
|
||||
}
|
||||
|
||||
public object Clone()
|
||||
{
|
||||
return this.MemberwiseClone();
|
||||
}
|
||||
}
|
||||
|
||||
// Type of software
|
||||
public enum Software
|
||||
{
|
||||
vpnserver,
|
||||
vpnbridge,
|
||||
vpnclient,
|
||||
vpnserver_vpnbridge,
|
||||
}
|
||||
|
||||
// Class to build the software
|
||||
public class BuildSoftware
|
||||
{
|
||||
public Software Software; // Software
|
||||
public int Version; // Version number
|
||||
public int BuildNumber; // Build Number
|
||||
public string BuildName; // Build name
|
||||
public Cpu Cpu; // CPU
|
||||
public OS Os; // OS
|
||||
public DateTime BuildDate; // Build date
|
||||
|
||||
public BuildSoftware(Software software, int buildNumber, int version, string buildName, Cpu cpu, OS os)
|
||||
{
|
||||
this.Software = software;
|
||||
this.BuildNumber = buildNumber;
|
||||
this.Version = version;
|
||||
this.BuildName = buildName;
|
||||
this.Cpu = cpu;
|
||||
this.Os = os;
|
||||
}
|
||||
|
||||
public void SetBuildNumberVersionName(int buildNumber, int version, string buildName, DateTime date)
|
||||
{
|
||||
this.BuildNumber = buildNumber;
|
||||
this.Version = version;
|
||||
this.BuildName = buildName;
|
||||
this.BuildDate = date;
|
||||
}
|
||||
|
||||
public BuildSoftware(string filename)
|
||||
{
|
||||
filename = Path.GetFileName(filename);
|
||||
|
||||
if (filename.StartsWith(Paths.Prefix, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
filename = filename.Substring(Paths.Prefix.Length);
|
||||
}
|
||||
|
||||
if (filename.EndsWith(".tar.gz", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
filename = Str.ReplaceStr(filename, ".tar.gz", "");
|
||||
}
|
||||
else
|
||||
{
|
||||
filename = Path.GetFileNameWithoutExtension(filename);
|
||||
}
|
||||
char[] sps = {'-'};
|
||||
|
||||
string[] tokens = filename.Split(sps, StringSplitOptions.RemoveEmptyEntries);
|
||||
if (tokens.Length != 8)
|
||||
{
|
||||
throw new ApplicationException(filename);
|
||||
}
|
||||
|
||||
if (tokens[1].StartsWith("v", StringComparison.InvariantCultureIgnoreCase) == false)
|
||||
{
|
||||
throw new ApplicationException(filename);
|
||||
}
|
||||
|
||||
this.Software = (Software)Enum.Parse(typeof(Software), tokens[0], true);
|
||||
this.Version = (int)(double.Parse(tokens[1].Substring(1)) * 100);
|
||||
this.BuildNumber = int.Parse(tokens[2]);
|
||||
this.BuildName = tokens[3];
|
||||
|
||||
string[] ds = tokens[4].Split('.');
|
||||
this.BuildDate = new DateTime(int.Parse(ds[0]), int.Parse(ds[1]), int.Parse(ds[2]));
|
||||
this.Os = OSList.FindByName(tokens[5]);
|
||||
this.Cpu = CpuList.FindByName(tokens[6]);
|
||||
}
|
||||
|
||||
// Generate a string of file name equivalent
|
||||
public virtual string FileNameBaseString
|
||||
{
|
||||
get
|
||||
{
|
||||
return string.Format("{0}-v{6}-{1}-{2}-{8:D4}.{9:D2}.{10:D2}-{4}-{3}-{7}",
|
||||
Paths.Prefix + this.Software.ToString(),
|
||||
this.BuildNumber,
|
||||
this.BuildName,
|
||||
this.Cpu.Name,
|
||||
this.Os.Name,
|
||||
0,
|
||||
BuildHelper.VersionIntToString(this.Version),
|
||||
CPUBitsUtil.CPUBitsToString(this.Cpu.Bits),
|
||||
BuildDate.Year, BuildDate.Month, BuildDate.Day).ToLower();
|
||||
}
|
||||
}
|
||||
|
||||
// Generate an identifier
|
||||
public virtual string IDString
|
||||
{
|
||||
get
|
||||
{
|
||||
return string.Format("{0}-{2}-{3}-{4}",
|
||||
Paths.Prefix + this.Software.ToString(),
|
||||
0,
|
||||
this.Os.Name,
|
||||
this.Cpu.Name,
|
||||
CPUBitsUtil.CPUBitsToString(this.Cpu.Bits));
|
||||
}
|
||||
}
|
||||
|
||||
// Generate a title string
|
||||
public virtual string TitleString
|
||||
{
|
||||
get
|
||||
{
|
||||
return string.Format("{0} (Ver {2}, Build {1}, {3}) for {5}", BuildHelper.GetSoftwareTitle(this.Software),
|
||||
this.BuildNumber, BuildHelper.VersionIntToString(this.Version), this.Cpu.Title, 0, this.Os.Title);
|
||||
}
|
||||
}
|
||||
|
||||
// Generate extension
|
||||
public virtual string OutputFileExt
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.Os.IsWindows)
|
||||
{
|
||||
return ".exe";
|
||||
}
|
||||
else
|
||||
{
|
||||
return ".tar.gz";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Generate the output file name
|
||||
public virtual string OutputFileName
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.FileNameBaseString + this.OutputFileExt;
|
||||
}
|
||||
}
|
||||
|
||||
// Run the build
|
||||
public virtual void Build()
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Developed by SoftEther VPN Project at University of Tsukuba in Japan.
|
||||
// Department of Computer Science has dozens of overly-enthusiastic geeks.
|
||||
// Join us: http://www.tsukuba.ac.jp/english/admission/
|
282
src/BuildUtil/Web References/HvSignService/Reference.cs
Normal file
282
src/BuildUtil/Web References/HvSignService/Reference.cs
Normal file
@ -0,0 +1,282 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// このコードはツールによって生成されました。
|
||||
// ランタイム バージョン:2.0.50727.5466
|
||||
//
|
||||
// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
|
||||
// コードが再生成されるときに損失したりします。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
// Comments: Tetsuo Sugiyama, Ph.D.
|
||||
//
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// version 2 as published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License version 2
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// THE LICENSE AGREEMENT IS ATTACHED ON THE SOURCE-CODE PACKAGE
|
||||
// AS "LICENSE.TXT" FILE. READ THE TEXT FILE IN ADVANCE TO USE THE SOFTWARE.
|
||||
//
|
||||
//
|
||||
// THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN,
|
||||
// UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY,
|
||||
// MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS
|
||||
// SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS
|
||||
// SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER
|
||||
// CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL
|
||||
// DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING,
|
||||
// MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR
|
||||
// SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND
|
||||
// CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO
|
||||
// EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO,
|
||||
// JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION
|
||||
// AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN
|
||||
// THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.
|
||||
//
|
||||
// USE ONLY IN JAPAN. DO NOT USE IT IN OTHER COUNTRIES. IMPORTING THIS
|
||||
// SOFTWARE INTO OTHER COUNTRIES IS AT YOUR OWN RISK. SOME COUNTRIES
|
||||
// PROHIBIT ENCRYPTED COMMUNICATIONS. USING THIS SOFTWARE IN OTHER
|
||||
// COUNTRIES MIGHT BE RESTRICTED.
|
||||
//
|
||||
//
|
||||
// DEAR SECURITY EXPERTS
|
||||
// ---------------------
|
||||
//
|
||||
// If you find a bug or a security vulnerability please kindly inform us
|
||||
// about the problem immediately so that we can fix the security problem
|
||||
// to protect a lot of users around the world as soon as possible.
|
||||
//
|
||||
// Our e-mail address for security reports is:
|
||||
// softether-vpn-security [at] softether.org
|
||||
//
|
||||
// Please note that the above e-mail address is not a technical support
|
||||
// inquiry address. If you need technical assistance, please visit
|
||||
// http://www.softether.org/ and ask your question on the users forum.
|
||||
//
|
||||
// Thank you for your cooperation.
|
||||
|
||||
|
||||
//
|
||||
// このソース コードは Microsoft.VSDesigner、バージョン 2.0.50727.5466 によって自動生成されました。
|
||||
//
|
||||
#pragma warning disable 1591
|
||||
|
||||
namespace BuildUtil.HvSignService {
|
||||
using System.Diagnostics;
|
||||
using System.Web.Services;
|
||||
using System.ComponentModel;
|
||||
using System.Web.Services.Protocols;
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5420")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Web.Services.WebServiceBindingAttribute(Name="SignSoap", Namespace="http://hvsigncode/")]
|
||||
public partial class Sign : System.Web.Services.Protocols.SoapHttpClientProtocol {
|
||||
|
||||
private System.Threading.SendOrPostCallback HelloWorldOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback ExecSignOperationCompleted;
|
||||
|
||||
private bool useDefaultCredentialsSetExplicitly;
|
||||
|
||||
/// <remarks/>
|
||||
public Sign() {
|
||||
this.Url = global::BuildUtil.Properties.Settings.Default.BuildUtilTmp_HvSignService_Sign;
|
||||
if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
|
||||
this.UseDefaultCredentials = true;
|
||||
this.useDefaultCredentialsSetExplicitly = false;
|
||||
}
|
||||
else {
|
||||
this.useDefaultCredentialsSetExplicitly = true;
|
||||
}
|
||||
}
|
||||
|
||||
public new string Url {
|
||||
get {
|
||||
return base.Url;
|
||||
}
|
||||
set {
|
||||
if ((((this.IsLocalFileSystemWebService(base.Url) == true)
|
||||
&& (this.useDefaultCredentialsSetExplicitly == false))
|
||||
&& (this.IsLocalFileSystemWebService(value) == false))) {
|
||||
base.UseDefaultCredentials = false;
|
||||
}
|
||||
base.Url = value;
|
||||
}
|
||||
}
|
||||
|
||||
public new bool UseDefaultCredentials {
|
||||
get {
|
||||
return base.UseDefaultCredentials;
|
||||
}
|
||||
set {
|
||||
base.UseDefaultCredentials = value;
|
||||
this.useDefaultCredentialsSetExplicitly = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public event HelloWorldCompletedEventHandler HelloWorldCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event ExecSignCompletedEventHandler ExecSignCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://hvsigncode/HelloWorld", RequestNamespace="http://hvsigncode/", ResponseNamespace="http://hvsigncode/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||
public string HelloWorld() {
|
||||
object[] results = this.Invoke("HelloWorld", new object[0]);
|
||||
return ((string)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void HelloWorldAsync() {
|
||||
this.HelloWorldAsync(null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void HelloWorldAsync(object userState) {
|
||||
if ((this.HelloWorldOperationCompleted == null)) {
|
||||
this.HelloWorldOperationCompleted = new System.Threading.SendOrPostCallback(this.OnHelloWorldOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("HelloWorld", new object[0], this.HelloWorldOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnHelloWorldOperationCompleted(object arg) {
|
||||
if ((this.HelloWorldCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.HelloWorldCompleted(this, new HelloWorldCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://hvsigncode/ExecSign", RequestNamespace="http://hvsigncode/", ResponseNamespace="http://hvsigncode/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||
public string ExecSign(string src_filename, bool driver_mode, string description, int cert_id) {
|
||||
object[] results = this.Invoke("ExecSign", new object[] {
|
||||
src_filename,
|
||||
driver_mode,
|
||||
description,
|
||||
cert_id});
|
||||
return ((string)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void ExecSignAsync(string src_filename, bool driver_mode, string description, int cert_id) {
|
||||
this.ExecSignAsync(src_filename, driver_mode, description, cert_id, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void ExecSignAsync(string src_filename, bool driver_mode, string description, int cert_id, object userState) {
|
||||
if ((this.ExecSignOperationCompleted == null)) {
|
||||
this.ExecSignOperationCompleted = new System.Threading.SendOrPostCallback(this.OnExecSignOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("ExecSign", new object[] {
|
||||
src_filename,
|
||||
driver_mode,
|
||||
description,
|
||||
cert_id}, this.ExecSignOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnExecSignOperationCompleted(object arg) {
|
||||
if ((this.ExecSignCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.ExecSignCompleted(this, new ExecSignCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public new void CancelAsync(object userState) {
|
||||
base.CancelAsync(userState);
|
||||
}
|
||||
|
||||
private bool IsLocalFileSystemWebService(string url) {
|
||||
if (((url == null)
|
||||
|| (url == string.Empty))) {
|
||||
return false;
|
||||
}
|
||||
System.Uri wsUri = new System.Uri(url);
|
||||
if (((wsUri.Port >= 1024)
|
||||
&& (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5420")]
|
||||
public delegate void HelloWorldCompletedEventHandler(object sender, HelloWorldCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5420")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class HelloWorldCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal HelloWorldCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string Result {
|
||||
get {
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((string)(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5420")]
|
||||
public delegate void ExecSignCompletedEventHandler(object sender, ExecSignCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5420")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class ExecSignCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal ExecSignCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string Result {
|
||||
get {
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((string)(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning restore 1591
|
||||
// Developed by SoftEther VPN Project at University of Tsukuba in Japan.
|
||||
// Department of Computer Science has dozens of overly-enthusiastic geeks.
|
||||
// Join us: http://www.tsukuba.ac.jp/english/admission/
|
6
src/BuildUtil/Web References/HvSignService/Sign.disco
Normal file
6
src/BuildUtil/Web References/HvSignService/Sign.disco
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
|
||||
<contractRef ref="http://hvsigncode/Sign.asmx?wsdl" docRef="http://hvsigncode/Sign.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
|
||||
<soap address="http://hvsigncode/Sign.asmx" xmlns:q1="http://hvsigncode/" binding="q1:SignSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
|
||||
<soap address="http://hvsigncode/Sign.asmx" xmlns:q2="http://hvsigncode/" binding="q2:SignSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
|
||||
</discovery>
|
106
src/BuildUtil/Web References/HvSignService/Sign.wsdl
Normal file
106
src/BuildUtil/Web References/HvSignService/Sign.wsdl
Normal file
@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://hvsigncode/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://hvsigncode/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
||||
<wsdl:types>
|
||||
<s:schema elementFormDefault="qualified" targetNamespace="http://hvsigncode/">
|
||||
<s:element name="HelloWorld">
|
||||
<s:complexType />
|
||||
</s:element>
|
||||
<s:element name="HelloWorldResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="HelloWorldResult" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="ExecSign">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="src_filename" type="s:string" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="driver_mode" type="s:boolean" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="description" type="s:string" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="cert_id" type="s:int" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="ExecSignResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ExecSignResult" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
</s:schema>
|
||||
</wsdl:types>
|
||||
<wsdl:message name="HelloWorldSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:HelloWorld" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="HelloWorldSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:HelloWorldResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="ExecSignSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:ExecSign" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="ExecSignSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:ExecSignResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:portType name="SignSoap">
|
||||
<wsdl:operation name="HelloWorld">
|
||||
<wsdl:input message="tns:HelloWorldSoapIn" />
|
||||
<wsdl:output message="tns:HelloWorldSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="ExecSign">
|
||||
<wsdl:input message="tns:ExecSignSoapIn" />
|
||||
<wsdl:output message="tns:ExecSignSoapOut" />
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
<wsdl:binding name="SignSoap" type="tns:SignSoap">
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<wsdl:operation name="HelloWorld">
|
||||
<soap:operation soapAction="http://hvsigncode/HelloWorld" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="ExecSign">
|
||||
<soap:operation soapAction="http://hvsigncode/ExecSign" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:binding name="SignSoap12" type="tns:SignSoap">
|
||||
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<wsdl:operation name="HelloWorld">
|
||||
<soap12:operation soapAction="http://hvsigncode/HelloWorld" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="ExecSign">
|
||||
<soap12:operation soapAction="http://hvsigncode/ExecSign" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:service name="Sign">
|
||||
<wsdl:port name="SignSoap" binding="tns:SignSoap">
|
||||
<soap:address location="http://hvsigncode/Sign.asmx" />
|
||||
</wsdl:port>
|
||||
<wsdl:port name="SignSoap12" binding="tns:SignSoap12">
|
||||
<soap12:address location="http://hvsigncode/Sign.asmx" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
</wsdl:definitions>
|
281
src/BuildUtil/Web References/SignService/Reference.cs
Normal file
281
src/BuildUtil/Web References/SignService/Reference.cs
Normal file
@ -0,0 +1,281 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// このコードはツールによって生成されました。
|
||||
// ランタイム バージョン:2.0.50727.4927
|
||||
//
|
||||
// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
|
||||
// コードが再生成されるときに損失したりします。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
// Comments: Tetsuo Sugiyama, Ph.D.
|
||||
//
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// version 2 as published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License version 2
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// THE LICENSE AGREEMENT IS ATTACHED ON THE SOURCE-CODE PACKAGE
|
||||
// AS "LICENSE.TXT" FILE. READ THE TEXT FILE IN ADVANCE TO USE THE SOFTWARE.
|
||||
//
|
||||
//
|
||||
// THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN,
|
||||
// UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY,
|
||||
// MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS
|
||||
// SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS
|
||||
// SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER
|
||||
// CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL
|
||||
// DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING,
|
||||
// MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR
|
||||
// SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND
|
||||
// CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO
|
||||
// EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO,
|
||||
// JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION
|
||||
// AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN
|
||||
// THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.
|
||||
//
|
||||
// USE ONLY IN JAPAN. DO NOT USE IT IN OTHER COUNTRIES. IMPORTING THIS
|
||||
// SOFTWARE INTO OTHER COUNTRIES IS AT YOUR OWN RISK. SOME COUNTRIES
|
||||
// PROHIBIT ENCRYPTED COMMUNICATIONS. USING THIS SOFTWARE IN OTHER
|
||||
// COUNTRIES MIGHT BE RESTRICTED.
|
||||
//
|
||||
//
|
||||
// DEAR SECURITY EXPERTS
|
||||
// ---------------------
|
||||
//
|
||||
// If you find a bug or a security vulnerability please kindly inform us
|
||||
// about the problem immediately so that we can fix the security problem
|
||||
// to protect a lot of users around the world as soon as possible.
|
||||
//
|
||||
// Our e-mail address for security reports is:
|
||||
// softether-vpn-security [at] softether.org
|
||||
//
|
||||
// Please note that the above e-mail address is not a technical support
|
||||
// inquiry address. If you need technical assistance, please visit
|
||||
// http://www.softether.org/ and ask your question on the users forum.
|
||||
//
|
||||
// Thank you for your cooperation.
|
||||
|
||||
|
||||
//
|
||||
// このソース コードは Microsoft.VSDesigner、バージョン 2.0.50727.4927 によって自動生成されました。
|
||||
//
|
||||
#pragma warning disable 1591
|
||||
|
||||
namespace BuildUtil.SignService {
|
||||
using System.Diagnostics;
|
||||
using System.Web.Services;
|
||||
using System.ComponentModel;
|
||||
using System.Web.Services.Protocols;
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.4927")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
[System.Web.Services.WebServiceBindingAttribute(Name="SignSoap", Namespace="http://dv/Sign/")]
|
||||
public partial class Sign : System.Web.Services.Protocols.SoapHttpClientProtocol {
|
||||
|
||||
private System.Threading.SendOrPostCallback HelloWorldOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback DoSignOperationCompleted;
|
||||
|
||||
private bool useDefaultCredentialsSetExplicitly;
|
||||
|
||||
/// <remarks/>
|
||||
public Sign() {
|
||||
this.Url = global::BuildUtil.Properties.Settings.Default.BuildUtil_SignService_Sign;
|
||||
if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
|
||||
this.UseDefaultCredentials = true;
|
||||
this.useDefaultCredentialsSetExplicitly = false;
|
||||
}
|
||||
else {
|
||||
this.useDefaultCredentialsSetExplicitly = true;
|
||||
}
|
||||
}
|
||||
|
||||
public new string Url {
|
||||
get {
|
||||
return base.Url;
|
||||
}
|
||||
set {
|
||||
if ((((this.IsLocalFileSystemWebService(base.Url) == true)
|
||||
&& (this.useDefaultCredentialsSetExplicitly == false))
|
||||
&& (this.IsLocalFileSystemWebService(value) == false))) {
|
||||
base.UseDefaultCredentials = false;
|
||||
}
|
||||
base.Url = value;
|
||||
}
|
||||
}
|
||||
|
||||
public new bool UseDefaultCredentials {
|
||||
get {
|
||||
return base.UseDefaultCredentials;
|
||||
}
|
||||
set {
|
||||
base.UseDefaultCredentials = value;
|
||||
this.useDefaultCredentialsSetExplicitly = true;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public event HelloWorldCompletedEventHandler HelloWorldCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event DoSignCompletedEventHandler DoSignCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://dv/Sign/HelloWorld", RequestNamespace="http://dv/Sign/", ResponseNamespace="http://dv/Sign/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||
public string HelloWorld() {
|
||||
object[] results = this.Invoke("HelloWorld", new object[0]);
|
||||
return ((string)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void HelloWorldAsync() {
|
||||
this.HelloWorldAsync(null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void HelloWorldAsync(object userState) {
|
||||
if ((this.HelloWorldOperationCompleted == null)) {
|
||||
this.HelloWorldOperationCompleted = new System.Threading.SendOrPostCallback(this.OnHelloWorldOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("HelloWorld", new object[0], this.HelloWorldOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnHelloWorldOperationCompleted(object arg) {
|
||||
if ((this.HelloWorldCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.HelloWorldCompleted(this, new HelloWorldCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://dv/Sign/DoSign", RequestNamespace="http://dv/Sign/", ResponseNamespace="http://dv/Sign/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||
[return: System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")]
|
||||
public byte[] DoSign([System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] byte[] srcData, bool driverMode, string description) {
|
||||
object[] results = this.Invoke("DoSign", new object[] {
|
||||
srcData,
|
||||
driverMode,
|
||||
description});
|
||||
return ((byte[])(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void DoSignAsync(byte[] srcData, bool driverMode, string description) {
|
||||
this.DoSignAsync(srcData, driverMode, description, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void DoSignAsync(byte[] srcData, bool driverMode, string description, object userState) {
|
||||
if ((this.DoSignOperationCompleted == null)) {
|
||||
this.DoSignOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDoSignOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("DoSign", new object[] {
|
||||
srcData,
|
||||
driverMode,
|
||||
description}, this.DoSignOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnDoSignOperationCompleted(object arg) {
|
||||
if ((this.DoSignCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.DoSignCompleted(this, new DoSignCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public new void CancelAsync(object userState) {
|
||||
base.CancelAsync(userState);
|
||||
}
|
||||
|
||||
private bool IsLocalFileSystemWebService(string url) {
|
||||
if (((url == null)
|
||||
|| (url == string.Empty))) {
|
||||
return false;
|
||||
}
|
||||
System.Uri wsUri = new System.Uri(url);
|
||||
if (((wsUri.Port >= 1024)
|
||||
&& (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.4927")]
|
||||
public delegate void HelloWorldCompletedEventHandler(object sender, HelloWorldCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.4927")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class HelloWorldCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal HelloWorldCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public string Result {
|
||||
get {
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((string)(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.4927")]
|
||||
public delegate void DoSignCompletedEventHandler(object sender, DoSignCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.4927")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class DoSignCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal DoSignCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public byte[] Result {
|
||||
get {
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((byte[])(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning restore 1591
|
||||
// Developed by SoftEther VPN Project at University of Tsukuba in Japan.
|
||||
// Department of Computer Science has dozens of overly-enthusiastic geeks.
|
||||
// Join us: http://www.tsukuba.ac.jp/english/admission/
|
6
src/BuildUtil/Web References/SignService/Sign.disco
Normal file
6
src/BuildUtil/Web References/SignService/Sign.disco
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
|
||||
<contractRef ref="http://dv/Sign/Sign.asmx?wsdl" docRef="http://dv/Sign/Sign.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
|
||||
<soap address="http://dv/Sign/Sign.asmx" xmlns:q1="http://dv/Sign/" binding="q1:SignSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
|
||||
<soap address="http://dv/Sign/Sign.asmx" xmlns:q2="http://dv/Sign/" binding="q2:SignSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
|
||||
</discovery>
|
105
src/BuildUtil/Web References/SignService/Sign.wsdl
Normal file
105
src/BuildUtil/Web References/SignService/Sign.wsdl
Normal file
@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://dv/Sign/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://dv/Sign/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
||||
<wsdl:types>
|
||||
<s:schema elementFormDefault="qualified" targetNamespace="http://dv/Sign/">
|
||||
<s:element name="HelloWorld">
|
||||
<s:complexType />
|
||||
</s:element>
|
||||
<s:element name="HelloWorldResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="HelloWorldResult" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="DoSign">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="srcData" type="s:base64Binary" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="driverMode" type="s:boolean" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="description" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:element name="DoSignResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="DoSignResult" type="s:base64Binary" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
</s:schema>
|
||||
</wsdl:types>
|
||||
<wsdl:message name="HelloWorldSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:HelloWorld" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="HelloWorldSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:HelloWorldResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="DoSignSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:DoSign" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="DoSignSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:DoSignResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:portType name="SignSoap">
|
||||
<wsdl:operation name="HelloWorld">
|
||||
<wsdl:input message="tns:HelloWorldSoapIn" />
|
||||
<wsdl:output message="tns:HelloWorldSoapOut" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="DoSign">
|
||||
<wsdl:input message="tns:DoSignSoapIn" />
|
||||
<wsdl:output message="tns:DoSignSoapOut" />
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
<wsdl:binding name="SignSoap" type="tns:SignSoap">
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<wsdl:operation name="HelloWorld">
|
||||
<soap:operation soapAction="http://dv/Sign/HelloWorld" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="DoSign">
|
||||
<soap:operation soapAction="http://dv/Sign/DoSign" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:binding name="SignSoap12" type="tns:SignSoap">
|
||||
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
<wsdl:operation name="HelloWorld">
|
||||
<soap12:operation soapAction="http://dv/Sign/HelloWorld" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="DoSign">
|
||||
<soap12:operation soapAction="http://dv/Sign/DoSign" style="document" />
|
||||
<wsdl:input>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:service name="Sign">
|
||||
<wsdl:port name="SignSoap" binding="tns:SignSoap">
|
||||
<soap:address location="http://dv/Sign/Sign.asmx" />
|
||||
</wsdl:port>
|
||||
<wsdl:port name="SignSoap12" binding="tns:SignSoap12">
|
||||
<soap12:address location="http://dv/Sign/Sign.asmx" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
</wsdl:definitions>
|
160
src/BuildUtil/Win32BuildSoftware.cs
Normal file
160
src/BuildUtil/Win32BuildSoftware.cs
Normal file
@ -0,0 +1,160 @@
|
||||
// SoftEther VPN Source Code
|
||||
// Build Utility
|
||||
//
|
||||
// SoftEther VPN Server, Client and Bridge are free software under GPLv2.
|
||||
//
|
||||
// Copyright (c) 2012-2014 Daiyuu Nobori.
|
||||
// Copyright (c) 2012-2014 SoftEther VPN Project, University of Tsukuba, Japan.
|
||||
// Copyright (c) 2012-2014 SoftEther Corporation.
|
||||
//
|
||||
// All Rights Reserved.
|
||||
//
|
||||
// http://www.softether.org/
|
||||
//
|
||||
// Author: Daiyuu Nobori
|
||||
// Comments: Tetsuo Sugiyama, Ph.D.
|
||||
//
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// version 2 as published by the Free Software Foundation.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License version 2
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// THE LICENSE AGREEMENT IS ATTACHED ON THE SOURCE-CODE PACKAGE
|
||||
// AS "LICENSE.TXT" FILE. READ THE TEXT FILE IN ADVANCE TO USE THE SOFTWARE.
|
||||
//
|
||||
//
|
||||
// THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN,
|
||||
// UNDER JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY,
|
||||
// MERGE, PUBLISH, DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS
|
||||
// SOFTWARE, THAT ANY JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS
|
||||
// SOFTWARE OR ITS CONTENTS, AGAINST US (SOFTETHER PROJECT, SOFTETHER
|
||||
// CORPORATION, DAIYUU NOBORI OR OTHER SUPPLIERS), OR ANY JURIDICAL
|
||||
// DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND OF USING, COPYING,
|
||||
// MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING, AND/OR
|
||||
// SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND
|
||||
// CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO
|
||||
// EXCLUSIVE JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO,
|
||||
// JAPAN. YOU MUST WAIVE ALL DEFENSES OF LACK OF PERSONAL JURISDICTION
|
||||
// AND FORUM NON CONVENIENS. PROCESS MAY BE SERVED ON EITHER PARTY IN
|
||||
// THE MANNER AUTHORIZED BY APPLICABLE LAW OR COURT RULE.
|
||||
//
|
||||
// USE ONLY IN JAPAN. DO NOT USE IT IN OTHER COUNTRIES. IMPORTING THIS
|
||||
// SOFTWARE INTO OTHER COUNTRIES IS AT YOUR OWN RISK. SOME COUNTRIES
|
||||
// PROHIBIT ENCRYPTED COMMUNICATIONS. USING THIS SOFTWARE IN OTHER
|
||||
// COUNTRIES MIGHT BE RESTRICTED.
|
||||
//
|
||||
//
|
||||
// DEAR SECURITY EXPERTS
|
||||
// ---------------------
|
||||
//
|
||||
// If you find a bug or a security vulnerability please kindly inform us
|
||||
// about the problem immediately so that we can fix the security problem
|
||||
// to protect a lot of users around the world as soon as possible.
|
||||
//
|
||||
// Our e-mail address for security reports is:
|
||||
// softether-vpn-security [at] softether.org
|
||||
//
|
||||
// Please note that the above e-mail address is not a technical support
|
||||
// inquiry address. If you need technical assistance, please visit
|
||||
// http://www.softether.org/ and ask your question on the users forum.
|
||||
//
|
||||
// Thank you for your cooperation.
|
||||
|
||||
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Text;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Security.Cryptography;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.IO;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Net.Security;
|
||||
using System.Reflection;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using CoreUtil;
|
||||
|
||||
namespace BuildUtil
|
||||
{
|
||||
// Build Win32 software
|
||||
public class BuildSoftwareWin32 : BuildSoftware
|
||||
{
|
||||
public BuildSoftwareWin32(Software software, int buildNumber, int version, string buildName, Cpu cpu, OS os)
|
||||
: base(software, buildNumber, version, buildName, cpu, os)
|
||||
{
|
||||
}
|
||||
|
||||
// Run the build
|
||||
public override void Build()
|
||||
{
|
||||
Semaphore sem = new Semaphore(BuildConfig.NumMultipleCompileTasks, BuildConfig.NumMultipleCompileTasks, "vpn_build_cross");
|
||||
Con.WriteLine("Waiting for Semaphore...");
|
||||
sem.WaitOne();
|
||||
Con.WriteLine("Done.");
|
||||
try
|
||||
{
|
||||
// Run the build
|
||||
buildInstaller();
|
||||
}
|
||||
finally
|
||||
{
|
||||
sem.Release();
|
||||
}
|
||||
}
|
||||
|
||||
// Build the installer
|
||||
void buildInstaller()
|
||||
{
|
||||
string outFileName = Path.Combine(Paths.ReleaseDir, this.OutputFileName);
|
||||
|
||||
string vpnsetup_exe = Path.Combine(Paths.BinDirName, "vpnsetup.exe");
|
||||
|
||||
try
|
||||
{
|
||||
File.Delete(outFileName);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
Win32BuildUtil.ExecCommand(vpnsetup_exe, string.Format("/SFXMODE:{1} /SFXOUT:\"{0}\"",
|
||||
outFileName, Software.ToString()));
|
||||
|
||||
CodeSign.SignFile(outFileName, outFileName, "VPN Software", false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Developed by SoftEther VPN Project at University of Tsukuba in Japan.
|
||||
// Department of Computer Science has dozens of overly-enthusiastic geeks.
|
||||
// Join us: http://www.tsukuba.ac.jp/english/admission/
|
1063
src/BuildUtil/Win32BuildUtil.cs
Normal file
1063
src/BuildUtil/Win32BuildUtil.cs
Normal file
File diff suppressed because it is too large
Load Diff
18
src/BuildUtil/app.config
Normal file
18
src/BuildUtil/app.config
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||
<section name="BuildUtil.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<applicationSettings>
|
||||
<BuildUtil.Properties.Settings>
|
||||
<setting name="BuildUtil_SignService_Sign" serializeAs="String">
|
||||
<value>http://dv/Sign/Sign.asmx</value>
|
||||
</setting>
|
||||
<setting name="BuildUtilTmp_HvSignService_Sign" serializeAs="String">
|
||||
<value>http://hvsigncode/Sign.asmx</value>
|
||||
</setting>
|
||||
</BuildUtil.Properties.Settings>
|
||||
</applicationSettings>
|
||||
</configuration>
|
Reference in New Issue
Block a user