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

github.com/SoftEtherVPN/SoftEtherVPN_Stable.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordnobori <da.git@softether.co.jp>2015-07-16 18:31:57 +0300
committerdnobori <da.git@softether.co.jp>2015-07-16 18:31:57 +0300
commit860f743dd7c6fa5e481911db608e09a4acdab30e (patch)
tree7f0deb9a385653b75c61b969f584d984da08fd9f /src/BuildUtil
parentff497063732fdc08300c8bc166f4d4f62317e98a (diff)
v4.17-9566-beta
Diffstat (limited to 'src/BuildUtil')
-rw-r--r--src/BuildUtil/BuildUtilCommands.cs6
-rw-r--r--src/BuildUtil/BuildUtilMain.cs6
-rw-r--r--src/BuildUtil/CodeSign.cs23
-rw-r--r--src/BuildUtil/PEUtil.cs6
-rw-r--r--src/BuildUtil/Test.cs6
-rw-r--r--src/BuildUtil/UnixBuildSoftwares.cs6
-rw-r--r--src/BuildUtil/VpnBuilder.cs6
-rw-r--r--src/BuildUtil/VpnBuilderConfig.cs6
-rw-r--r--src/BuildUtil/VpnBuilderConfigTypes.cs6
-rw-r--r--src/BuildUtil/Web References/HvSignService/Reference.cs84
-rw-r--r--src/BuildUtil/Web References/HvSignService/Sign.wsdl46
-rw-r--r--src/BuildUtil/Win32BuildSoftware.cs6
-rw-r--r--src/BuildUtil/Win32BuildUtil.cs6
13 files changed, 168 insertions, 45 deletions
diff --git a/src/BuildUtil/BuildUtilCommands.cs b/src/BuildUtil/BuildUtilCommands.cs
index 245eaae3..4e0c3644 100644
--- a/src/BuildUtil/BuildUtilCommands.cs
+++ b/src/BuildUtil/BuildUtilCommands.cs
@@ -3,9 +3,9 @@
//
// 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.
+// Copyright (c) 2012-2015 Daiyuu Nobori.
+// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan.
+// Copyright (c) 2012-2015 SoftEther Corporation.
//
// All Rights Reserved.
//
diff --git a/src/BuildUtil/BuildUtilMain.cs b/src/BuildUtil/BuildUtilMain.cs
index 9179f281..e1e2f68a 100644
--- a/src/BuildUtil/BuildUtilMain.cs
+++ b/src/BuildUtil/BuildUtilMain.cs
@@ -3,9 +3,9 @@
//
// 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.
+// Copyright (c) 2012-2015 Daiyuu Nobori.
+// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan.
+// Copyright (c) 2012-2015 SoftEther Corporation.
//
// All Rights Reserved.
//
diff --git a/src/BuildUtil/CodeSign.cs b/src/BuildUtil/CodeSign.cs
index af8699cf..0ae698df 100644
--- a/src/BuildUtil/CodeSign.cs
+++ b/src/BuildUtil/CodeSign.cs
@@ -3,9 +3,9 @@
//
// 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.
+// Copyright (c) 2012-2015 Daiyuu Nobori.
+// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan.
+// Copyright (c) 2012-2015 SoftEther Corporation.
//
// All Rights Reserved.
//
@@ -155,7 +155,7 @@ namespace BuildUtil
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)
+ public static byte[] SignMemory(byte[] srcData, string comment, bool kernelModeDriver, int cert_id, int sha_mode)
{
#if !BU_OSS
int i;
@@ -176,10 +176,11 @@ namespace BuildUtil
try
{
- out_filename = sign.ExecSign(Path.GetFileName(in_tmp_filename),
+ out_filename = sign.ExecSignEx(Path.GetFileName(in_tmp_filename),
kernelModeDriver,
comment,
- cert_id);
+ cert_id,
+ sha_mode);
break;
}
catch (Exception ex)
@@ -267,7 +268,15 @@ namespace BuildUtil
Con.WriteLine("Signing for '{0}'...", Path.GetFileName(destFileName));
byte[] srcData = File.ReadAllBytes(srcFileName);
- byte[] destData = SignMemory(srcData, comment, kernelModeDriver, cert_id);
+ int sha_mode = 0;
+
+ if (srcFileName.EndsWith(".msi", StringComparison.InvariantCultureIgnoreCase))
+ {
+ sha_mode = 1;
+ // todo: Set 2 in future !!!
+ }
+
+ byte[] destData = SignMemory(srcData, comment, kernelModeDriver, cert_id, sha_mode);
try
{
diff --git a/src/BuildUtil/PEUtil.cs b/src/BuildUtil/PEUtil.cs
index 1d7558b3..1f31fbb1 100644
--- a/src/BuildUtil/PEUtil.cs
+++ b/src/BuildUtil/PEUtil.cs
@@ -3,9 +3,9 @@
//
// 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.
+// Copyright (c) 2012-2015 Daiyuu Nobori.
+// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan.
+// Copyright (c) 2012-2015 SoftEther Corporation.
//
// All Rights Reserved.
//
diff --git a/src/BuildUtil/Test.cs b/src/BuildUtil/Test.cs
index bf79514d..34e32050 100644
--- a/src/BuildUtil/Test.cs
+++ b/src/BuildUtil/Test.cs
@@ -3,9 +3,9 @@
//
// 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.
+// Copyright (c) 2012-2015 Daiyuu Nobori.
+// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan.
+// Copyright (c) 2012-2015 SoftEther Corporation.
//
// All Rights Reserved.
//
diff --git a/src/BuildUtil/UnixBuildSoftwares.cs b/src/BuildUtil/UnixBuildSoftwares.cs
index 195435b6..c29ddec9 100644
--- a/src/BuildUtil/UnixBuildSoftwares.cs
+++ b/src/BuildUtil/UnixBuildSoftwares.cs
@@ -3,9 +3,9 @@
//
// 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.
+// Copyright (c) 2012-2015 Daiyuu Nobori.
+// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan.
+// Copyright (c) 2012-2015 SoftEther Corporation.
//
// All Rights Reserved.
//
diff --git a/src/BuildUtil/VpnBuilder.cs b/src/BuildUtil/VpnBuilder.cs
index b15b818f..8cc574bf 100644
--- a/src/BuildUtil/VpnBuilder.cs
+++ b/src/BuildUtil/VpnBuilder.cs
@@ -3,9 +3,9 @@
//
// 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.
+// Copyright (c) 2012-2015 Daiyuu Nobori.
+// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan.
+// Copyright (c) 2012-2015 SoftEther Corporation.
//
// All Rights Reserved.
//
diff --git a/src/BuildUtil/VpnBuilderConfig.cs b/src/BuildUtil/VpnBuilderConfig.cs
index b8c8438c..3e0d36ba 100644
--- a/src/BuildUtil/VpnBuilderConfig.cs
+++ b/src/BuildUtil/VpnBuilderConfig.cs
@@ -3,9 +3,9 @@
//
// 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.
+// Copyright (c) 2012-2015 Daiyuu Nobori.
+// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan.
+// Copyright (c) 2012-2015 SoftEther Corporation.
//
// All Rights Reserved.
//
diff --git a/src/BuildUtil/VpnBuilderConfigTypes.cs b/src/BuildUtil/VpnBuilderConfigTypes.cs
index 84566178..e5542726 100644
--- a/src/BuildUtil/VpnBuilderConfigTypes.cs
+++ b/src/BuildUtil/VpnBuilderConfigTypes.cs
@@ -3,9 +3,9 @@
//
// 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.
+// Copyright (c) 2012-2015 Daiyuu Nobori.
+// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan.
+// Copyright (c) 2012-2015 SoftEther Corporation.
//
// All Rights Reserved.
//
diff --git a/src/BuildUtil/Web References/HvSignService/Reference.cs b/src/BuildUtil/Web References/HvSignService/Reference.cs
index 1d599164..2d5056c2 100644
--- a/src/BuildUtil/Web References/HvSignService/Reference.cs
+++ b/src/BuildUtil/Web References/HvSignService/Reference.cs
@@ -1,7 +1,7 @@
-//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
// <auto-generated>
// このコードはツールによって生成されました。
-// ランタイム バージョン:2.0.50727.5466
+// ランタイム バージョン:2.0.50727.5485
//
// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
// コードが再生成されるときに損失したりします。
@@ -104,7 +104,7 @@
//
-// このソース コードは Microsoft.VSDesigner、バージョン 2.0.50727.5466 によって自動生成されました。
+// このソース コードは Microsoft.VSDesigner、バージョン 2.0.50727.5485 によって自動生成されました。
//
#pragma warning disable 1591
@@ -118,7 +118,7 @@ namespace BuildUtil.HvSignService {
/// <remarks/>
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5420")]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="SignSoap", Namespace="http://hvsigncode/")]
@@ -128,6 +128,8 @@ namespace BuildUtil.HvSignService {
private System.Threading.SendOrPostCallback ExecSignOperationCompleted;
+ private System.Threading.SendOrPostCallback ExecSignExOperationCompleted;
+
private bool useDefaultCredentialsSetExplicitly;
/// <remarks/>
@@ -173,6 +175,9 @@ namespace BuildUtil.HvSignService {
public event ExecSignCompletedEventHandler ExecSignCompleted;
/// <remarks/>
+ public event ExecSignExCompletedEventHandler ExecSignExCompleted;
+
+ /// <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]);
@@ -235,6 +240,43 @@ namespace BuildUtil.HvSignService {
}
/// <remarks/>
+ [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://hvsigncode/ExecSignEx", RequestNamespace="http://hvsigncode/", ResponseNamespace="http://hvsigncode/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
+ public string ExecSignEx(string src_filename, bool driver_mode, string description, int cert_id, int sha_mode) {
+ object[] results = this.Invoke("ExecSignEx", new object[] {
+ src_filename,
+ driver_mode,
+ description,
+ cert_id,
+ sha_mode});
+ return ((string)(results[0]));
+ }
+
+ /// <remarks/>
+ public void ExecSignExAsync(string src_filename, bool driver_mode, string description, int cert_id, int sha_mode) {
+ this.ExecSignExAsync(src_filename, driver_mode, description, cert_id, sha_mode, null);
+ }
+
+ /// <remarks/>
+ public void ExecSignExAsync(string src_filename, bool driver_mode, string description, int cert_id, int sha_mode, object userState) {
+ if ((this.ExecSignExOperationCompleted == null)) {
+ this.ExecSignExOperationCompleted = new System.Threading.SendOrPostCallback(this.OnExecSignExOperationCompleted);
+ }
+ this.InvokeAsync("ExecSignEx", new object[] {
+ src_filename,
+ driver_mode,
+ description,
+ cert_id,
+ sha_mode}, this.ExecSignExOperationCompleted, userState);
+ }
+
+ private void OnExecSignExOperationCompleted(object arg) {
+ if ((this.ExecSignExCompleted != null)) {
+ System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
+ this.ExecSignExCompleted(this, new ExecSignExCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
+ }
+ }
+
+ /// <remarks/>
public new void CancelAsync(object userState) {
base.CancelAsync(userState);
}
@@ -254,11 +296,11 @@ namespace BuildUtil.HvSignService {
}
/// <remarks/>
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5420")]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
public delegate void HelloWorldCompletedEventHandler(object sender, HelloWorldCompletedEventArgs e);
/// <remarks/>
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5420")]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class HelloWorldCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@@ -280,11 +322,11 @@ namespace BuildUtil.HvSignService {
}
/// <remarks/>
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5420")]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
public delegate void ExecSignCompletedEventHandler(object sender, ExecSignCompletedEventArgs e);
/// <remarks/>
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5420")]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class ExecSignCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
@@ -304,6 +346,32 @@ namespace BuildUtil.HvSignService {
}
}
}
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
+ public delegate void ExecSignExCompletedEventHandler(object sender, ExecSignExCompletedEventArgs e);
+
+ /// <remarks/>
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.5483")]
+ [System.Diagnostics.DebuggerStepThroughAttribute()]
+ [System.ComponentModel.DesignerCategoryAttribute("code")]
+ public partial class ExecSignExCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
+
+ private object[] results;
+
+ internal ExecSignExCompletedEventArgs(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
diff --git a/src/BuildUtil/Web References/HvSignService/Sign.wsdl b/src/BuildUtil/Web References/HvSignService/Sign.wsdl
index 4a6f0777..6657499e 100644
--- a/src/BuildUtil/Web References/HvSignService/Sign.wsdl
+++ b/src/BuildUtil/Web References/HvSignService/Sign.wsdl
@@ -29,6 +29,24 @@
</s:sequence>
</s:complexType>
</s:element>
+ <s:element name="ExecSignEx">
+ <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:element minOccurs="1" maxOccurs="1" name="sha_mode" type="s:int" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="ExecSignExResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1" name="ExecSignExResult" type="s:string" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="HelloWorldSoapIn">
@@ -43,6 +61,12 @@
<wsdl:message name="ExecSignSoapOut">
<wsdl:part name="parameters" element="tns:ExecSignResponse" />
</wsdl:message>
+ <wsdl:message name="ExecSignExSoapIn">
+ <wsdl:part name="parameters" element="tns:ExecSignEx" />
+ </wsdl:message>
+ <wsdl:message name="ExecSignExSoapOut">
+ <wsdl:part name="parameters" element="tns:ExecSignExResponse" />
+ </wsdl:message>
<wsdl:portType name="SignSoap">
<wsdl:operation name="HelloWorld">
<wsdl:input message="tns:HelloWorldSoapIn" />
@@ -52,6 +76,10 @@
<wsdl:input message="tns:ExecSignSoapIn" />
<wsdl:output message="tns:ExecSignSoapOut" />
</wsdl:operation>
+ <wsdl:operation name="ExecSignEx">
+ <wsdl:input message="tns:ExecSignExSoapIn" />
+ <wsdl:output message="tns:ExecSignExSoapOut" />
+ </wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SignSoap" type="tns:SignSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
@@ -73,6 +101,15 @@
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
+ <wsdl:operation name="ExecSignEx">
+ <soap:operation soapAction="http://hvsigncode/ExecSignEx" 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" />
@@ -94,6 +131,15 @@
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
+ <wsdl:operation name="ExecSignEx">
+ <soap12:operation soapAction="http://hvsigncode/ExecSignEx" 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">
diff --git a/src/BuildUtil/Win32BuildSoftware.cs b/src/BuildUtil/Win32BuildSoftware.cs
index 9511ad0e..dee3dfd6 100644
--- a/src/BuildUtil/Win32BuildSoftware.cs
+++ b/src/BuildUtil/Win32BuildSoftware.cs
@@ -3,9 +3,9 @@
//
// 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.
+// Copyright (c) 2012-2015 Daiyuu Nobori.
+// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan.
+// Copyright (c) 2012-2015 SoftEther Corporation.
//
// All Rights Reserved.
//
diff --git a/src/BuildUtil/Win32BuildUtil.cs b/src/BuildUtil/Win32BuildUtil.cs
index bbd1e999..4766684c 100644
--- a/src/BuildUtil/Win32BuildUtil.cs
+++ b/src/BuildUtil/Win32BuildUtil.cs
@@ -3,9 +3,9 @@
//
// 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.
+// Copyright (c) 2012-2015 Daiyuu Nobori.
+// Copyright (c) 2012-2015 SoftEther VPN Project, University of Tsukuba, Japan.
+// Copyright (c) 2012-2015 SoftEther Corporation.
//
// All Rights Reserved.
//