1
0
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:
dnobori
2014-01-04 22:00:08 +09:00
parent d433e567a5
commit 749497dde0
986 changed files with 487216 additions and 339 deletions

View 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>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View 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
View 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/

View File

@ -0,0 +1,2 @@
copy %0\..\..\bin\BuildUtilTmp.exe %0\..\..\bin\BuildUtil.exe
exit /b 0

BIN
src/BuildUtil/CoreUtil.dll Normal file

Binary file not shown.

231
src/BuildUtil/PEUtil.cs Normal file
View 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/

View 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.*")]

View 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/

View 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
View 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/

File diff suppressed because it is too large Load Diff

650
src/BuildUtil/VpnBuilder.cs Normal file
View 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/

View 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/

View 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/

View 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/

View 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>

View 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>

View 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/

View 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>

View 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>

View 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/

File diff suppressed because it is too large Load Diff

18
src/BuildUtil/app.config Normal file
View 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>