You can subscribe to this list here.
2006 |
Jan
|
Feb
(24) |
Mar
(9) |
Apr
(4) |
May
(7) |
Jun
(13) |
Jul
(19) |
Aug
(1) |
Sep
(12) |
Oct
(20) |
Nov
(1) |
Dec
(15) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
|
Feb
(6) |
Mar
(24) |
Apr
(1) |
May
(10) |
Jun
(30) |
Jul
(46) |
Aug
(20) |
Sep
(12) |
Oct
(27) |
Nov
(51) |
Dec
(58) |
2008 |
Jan
(40) |
Feb
(40) |
Mar
(78) |
Apr
(138) |
May
(4) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(5) |
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
|
Jun
(2) |
Jul
(10) |
Aug
(1) |
Sep
(11) |
Oct
(31) |
Nov
(7) |
Dec
(1) |
2011 |
Jan
(1) |
Feb
|
Mar
(3) |
Apr
|
May
(1) |
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(2) |
Sep
|
Oct
|
Nov
(2) |
Dec
(2) |
2013 |
Jan
(3) |
Feb
(5) |
Mar
(1) |
Apr
|
May
|
Jun
(11) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
2014 |
Jan
(2) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ul...@us...> - 2010-10-11 20:57:01
|
Revision: 54 http://adc.svn.sourceforge.net/adc/?rev=54&view=rev Author: ullner Date: 2010-10-11 20:56:55 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Added Paths: ----------- trunk/Source/readme.txt Added: trunk/Source/readme.txt =================================================================== --- trunk/Source/readme.txt (rev 0) +++ trunk/Source/readme.txt 2010-10-11 20:56:55 UTC (rev 54) @@ -0,0 +1 @@ +All code that is submitted to the ADCProject should have a note specifying the transfer of copyright to the ADCProject. \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 19:07:45
|
Revision: 53 http://adc.svn.sourceforge.net/adc/?rev=53&view=rev Author: ullner Date: 2010-10-11 19:07:39 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Modified Paths: -------------- trunk/Source/Microsoft Visual Studio/ADCLibraryTest/ADCLibraryTest.csproj Removed Paths: ------------- trunk/Source/Microsoft Visual Studio/ADCLibraryTest/CodeTest.cs Modified: trunk/Source/Microsoft Visual Studio/ADCLibraryTest/ADCLibraryTest.csproj =================================================================== --- trunk/Source/Microsoft Visual Studio/ADCLibraryTest/ADCLibraryTest.csproj 2010-10-11 19:06:54 UTC (rev 52) +++ trunk/Source/Microsoft Visual Studio/ADCLibraryTest/ADCLibraryTest.csproj 2010-10-11 19:07:39 UTC (rev 53) @@ -40,7 +40,6 @@ <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> - <Compile Include="CodeTest.cs" /> <Compile Include="Program.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> </ItemGroup> Deleted: trunk/Source/Microsoft Visual Studio/ADCLibraryTest/CodeTest.cs =================================================================== --- trunk/Source/Microsoft Visual Studio/ADCLibraryTest/CodeTest.cs 2010-10-11 19:06:54 UTC (rev 52) +++ trunk/Source/Microsoft Visual Studio/ADCLibraryTest/CodeTest.cs 2010-10-11 19:07:39 UTC (rev 53) @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ADC -{ - public class CodeTest - { - public void TestHelper() - { - } - } -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 19:07:00
|
Revision: 52 http://adc.svn.sourceforge.net/adc/?rev=52&view=rev Author: ullner Date: 2010-10-11 19:06:54 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Added Paths: ----------- trunk/Source/CodeTest.cs Added: trunk/Source/CodeTest.cs =================================================================== --- trunk/Source/CodeTest.cs (rev 0) +++ trunk/Source/CodeTest.cs 2010-10-11 19:06:54 UTC (rev 52) @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ADC +{ + public class CodeTest + { + public void TestHelper() + { + } + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 19:03:33
|
Revision: 51 http://adc.svn.sourceforge.net/adc/?rev=51&view=rev Author: ullner Date: 2010-10-11 19:03:27 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Modified Paths: -------------- trunk/Source/Microsoft Visual Studio/ADCLibraryTest/ADCLibraryTest.csproj Modified: trunk/Source/Microsoft Visual Studio/ADCLibraryTest/ADCLibraryTest.csproj =================================================================== --- trunk/Source/Microsoft Visual Studio/ADCLibraryTest/ADCLibraryTest.csproj 2010-10-11 19:03:12 UTC (rev 50) +++ trunk/Source/Microsoft Visual Studio/ADCLibraryTest/ADCLibraryTest.csproj 2010-10-11 19:03:27 UTC (rev 51) @@ -31,6 +31,10 @@ <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> + <Reference Include="ADCLibrary, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <Private>False</Private> + </Reference> <Reference Include="System" /> <Reference Include="System.Data" /> <Reference Include="System.Xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 19:03:18
|
Revision: 50 http://adc.svn.sourceforge.net/adc/?rev=50&view=rev Author: ullner Date: 2010-10-11 19:03:12 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Modified Paths: -------------- trunk/Source/Microsoft Visual Studio/ADCLibrary/ADCLibrary.csproj Modified: trunk/Source/Microsoft Visual Studio/ADCLibrary/ADCLibrary.csproj =================================================================== --- trunk/Source/Microsoft Visual Studio/ADCLibrary/ADCLibrary.csproj 2010-10-11 19:01:32 UTC (rev 49) +++ trunk/Source/Microsoft Visual Studio/ADCLibrary/ADCLibrary.csproj 2010-10-11 19:03:12 UTC (rev 50) @@ -8,7 +8,7 @@ <ProjectGuid>{F9C721FB-A66D-4D2A-B49E-BB41E4946A24}</ProjectGuid> <OutputType>Library</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>ADCLibrary</RootNamespace> + <RootNamespace>ADC</RootNamespace> <AssemblyName>ADCLibrary</AssemblyName> <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> <FileAlignment>512</FileAlignment> @@ -17,7 +17,7 @@ <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> + <OutputPath>..\..\..\Output\Debug\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> @@ -25,7 +25,7 @@ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> + <OutputPath>..\..\..\Output\Release\</OutputPath> <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 19:01:39
|
Revision: 49 http://adc.svn.sourceforge.net/adc/?rev=49&view=rev Author: ullner Date: 2010-10-11 19:01:32 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Added Paths: ----------- trunk/Source/Microsoft Visual Studio/ADCLibraryTest/ trunk/Source/Microsoft Visual Studio/ADCLibraryTest/ADCLibraryTest.csproj trunk/Source/Microsoft Visual Studio/ADCLibraryTest/CodeTest.cs trunk/Source/Microsoft Visual Studio/ADCLibraryTest/Program.cs trunk/Source/Microsoft Visual Studio/ADCLibraryTest/Properties/ trunk/Source/Microsoft Visual Studio/ADCLibraryTest/Properties/AssemblyInfo.cs Added: trunk/Source/Microsoft Visual Studio/ADCLibraryTest/ADCLibraryTest.csproj =================================================================== --- trunk/Source/Microsoft Visual Studio/ADCLibraryTest/ADCLibraryTest.csproj (rev 0) +++ trunk/Source/Microsoft Visual Studio/ADCLibraryTest/ADCLibraryTest.csproj 2010-10-11 19:01:32 UTC (rev 49) @@ -0,0 +1,51 @@ +<?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>{6E032E82-45B6-45CA-A07A-58DA594DF549}</ProjectGuid> + <OutputType>Exe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>ADC</RootNamespace> + <AssemblyName>ADCLibraryTest</AssemblyName> + <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>..\..\..\Output\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>..\..\..\Output\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="CodeTest.cs" /> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </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> + --> +</Project> \ No newline at end of file Added: trunk/Source/Microsoft Visual Studio/ADCLibraryTest/CodeTest.cs =================================================================== --- trunk/Source/Microsoft Visual Studio/ADCLibraryTest/CodeTest.cs (rev 0) +++ trunk/Source/Microsoft Visual Studio/ADCLibraryTest/CodeTest.cs 2010-10-11 19:01:32 UTC (rev 49) @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ADC +{ + public class CodeTest + { + public void TestHelper() + { + } + } +} Added: trunk/Source/Microsoft Visual Studio/ADCLibraryTest/Program.cs =================================================================== --- trunk/Source/Microsoft Visual Studio/ADCLibraryTest/Program.cs (rev 0) +++ trunk/Source/Microsoft Visual Studio/ADCLibraryTest/Program.cs 2010-10-11 19:01:32 UTC (rev 49) @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ADC +{ + class Program + { + static void Main(string[] args) + { + CodeTest codeTest = new CodeTest(); + + codeTest.TestHelper(); + } + } +} Added: trunk/Source/Microsoft Visual Studio/ADCLibraryTest/Properties/AssemblyInfo.cs =================================================================== --- trunk/Source/Microsoft Visual Studio/ADCLibraryTest/Properties/AssemblyInfo.cs (rev 0) +++ trunk/Source/Microsoft Visual Studio/ADCLibraryTest/Properties/AssemblyInfo.cs 2010-10-11 19:01:32 UTC (rev 49) @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ADCLibraryTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("ADCLibraryTest")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("818dd75c-37c3-4c33-a34a-2233180fb3f5")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 18:58:22
|
Revision: 48 http://adc.svn.sourceforge.net/adc/?rev=48&view=rev Author: ullner Date: 2010-10-11 18:58:15 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Removed Paths: ------------- trunk/Source/Microsoft Visual Studio/ADCLibrary.csproj trunk/Source/Microsoft Visual Studio/Properties/ Deleted: trunk/Source/Microsoft Visual Studio/ADCLibrary.csproj =================================================================== --- trunk/Source/Microsoft Visual Studio/ADCLibrary.csproj 2010-10-11 18:57:46 UTC (rev 47) +++ trunk/Source/Microsoft Visual Studio/ADCLibrary.csproj 2010-10-11 18:58:15 UTC (rev 48) @@ -1,52 +0,0 @@ -<?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>{F9C721FB-A66D-4D2A-B49E-BB41E4946A24}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>ADCLibrary</RootNamespace> - <AssemblyName>ADCLibrary</AssemblyName> - <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="System" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - </ItemGroup> - <ItemGroup> - <Compile Include="..\Helper.cs"> - <Link>Helper.cs</Link> - </Compile> - <Compile Include="Properties\AssemblyInfo.cs" /> - </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> - --> -</Project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 18:57:52
|
Revision: 47 http://adc.svn.sourceforge.net/adc/?rev=47&view=rev Author: ullner Date: 2010-10-11 18:57:46 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Modified Paths: -------------- trunk/Source/Microsoft Visual Studio/ADCLibrary/ADCLibrary.csproj Modified: trunk/Source/Microsoft Visual Studio/ADCLibrary/ADCLibrary.csproj =================================================================== --- trunk/Source/Microsoft Visual Studio/ADCLibrary/ADCLibrary.csproj 2010-10-11 18:57:20 UTC (rev 46) +++ trunk/Source/Microsoft Visual Studio/ADCLibrary/ADCLibrary.csproj 2010-10-11 18:57:46 UTC (rev 47) @@ -36,7 +36,7 @@ <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> - <Compile Include="..\Helper.cs"> + <Compile Include="..\..\Helper.cs"> <Link>Helper.cs</Link> </Compile> <Compile Include="Properties\AssemblyInfo.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 18:57:26
|
Revision: 46 http://adc.svn.sourceforge.net/adc/?rev=46&view=rev Author: ullner Date: 2010-10-11 18:57:20 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Added Paths: ----------- trunk/Source/Microsoft Visual Studio/ADCLibrary/ADCLibrary.csproj trunk/Source/Microsoft Visual Studio/ADCLibrary/Properties/ trunk/Source/Microsoft Visual Studio/ADCLibrary/Properties/AssemblyInfo.cs Added: trunk/Source/Microsoft Visual Studio/ADCLibrary/ADCLibrary.csproj =================================================================== --- trunk/Source/Microsoft Visual Studio/ADCLibrary/ADCLibrary.csproj (rev 0) +++ trunk/Source/Microsoft Visual Studio/ADCLibrary/ADCLibrary.csproj 2010-10-11 18:57:20 UTC (rev 46) @@ -0,0 +1,52 @@ +<?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>{F9C721FB-A66D-4D2A-B49E-BB41E4946A24}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>ADCLibrary</RootNamespace> + <AssemblyName>ADCLibrary</AssemblyName> + <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="..\Helper.cs"> + <Link>Helper.cs</Link> + </Compile> + <Compile Include="Properties\AssemblyInfo.cs" /> + </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> + --> +</Project> \ No newline at end of file Added: trunk/Source/Microsoft Visual Studio/ADCLibrary/Properties/AssemblyInfo.cs =================================================================== --- trunk/Source/Microsoft Visual Studio/ADCLibrary/Properties/AssemblyInfo.cs (rev 0) +++ trunk/Source/Microsoft Visual Studio/ADCLibrary/Properties/AssemblyInfo.cs 2010-10-11 18:57:20 UTC (rev 46) @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ADCLibrary")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("ADCLibrary")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("83d66c18-1603-4bb1-b76f-392300d94111")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 18:56:59
|
Revision: 45 http://adc.svn.sourceforge.net/adc/?rev=45&view=rev Author: ullner Date: 2010-10-11 18:56:53 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Added Paths: ----------- trunk/Source/Microsoft Visual Studio/ADCLibrary/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 18:51:41
|
Revision: 44 http://adc.svn.sourceforge.net/adc/?rev=44&view=rev Author: ullner Date: 2010-10-11 18:51:35 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Added Paths: ----------- trunk/Source/Microsoft Visual Studio/Properties/ trunk/Source/Microsoft Visual Studio/Properties/AssemblyInfo.cs Added: trunk/Source/Microsoft Visual Studio/Properties/AssemblyInfo.cs =================================================================== --- trunk/Source/Microsoft Visual Studio/Properties/AssemblyInfo.cs (rev 0) +++ trunk/Source/Microsoft Visual Studio/Properties/AssemblyInfo.cs 2010-10-11 18:51:35 UTC (rev 44) @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ADCLibrary")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("ADCLibrary")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("83d66c18-1603-4bb1-b76f-392300d94111")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 18:50:45
|
Revision: 43 http://adc.svn.sourceforge.net/adc/?rev=43&view=rev Author: ullner Date: 2010-10-11 18:50:39 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Added Paths: ----------- trunk/Source/Microsoft Visual Studio/ trunk/Source/Microsoft Visual Studio/ADCLibrary.csproj Added: trunk/Source/Microsoft Visual Studio/ADCLibrary.csproj =================================================================== --- trunk/Source/Microsoft Visual Studio/ADCLibrary.csproj (rev 0) +++ trunk/Source/Microsoft Visual Studio/ADCLibrary.csproj 2010-10-11 18:50:39 UTC (rev 43) @@ -0,0 +1,52 @@ +<?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>{F9C721FB-A66D-4D2A-B49E-BB41E4946A24}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>ADCLibrary</RootNamespace> + <AssemblyName>ADCLibrary</AssemblyName> + <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="..\Helper.cs"> + <Link>Helper.cs</Link> + </Compile> + <Compile Include="Properties\AssemblyInfo.cs" /> + </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> + --> +</Project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 18:47:41
|
Revision: 42 http://adc.svn.sourceforge.net/adc/?rev=42&view=rev Author: ullner Date: 2010-10-11 18:47:35 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Modified Paths: -------------- trunk/Source/LICENSE Modified: trunk/Source/LICENSE =================================================================== --- trunk/Source/LICENSE 2010-10-11 18:46:11 UTC (rev 41) +++ trunk/Source/LICENSE 2010-10-11 18:47:35 UTC (rev 42) @@ -1,5 +1,7 @@ The following is the LICENSE information for all source code files, unless they specifically note else. +All code that is submitted to the ADCProject should have a note specifying the transfer of copyright to the ADCProject. + The LICENSE is New BSD License (3-clause BSD license). Copyright (c) 2010, ADCProject This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 18:46:18
|
Revision: 41 http://adc.svn.sourceforge.net/adc/?rev=41&view=rev Author: ullner Date: 2010-10-11 18:46:11 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Added Paths: ----------- trunk/Source/LICENSE Added: trunk/Source/LICENSE =================================================================== --- trunk/Source/LICENSE (rev 0) +++ trunk/Source/LICENSE 2010-10-11 18:46:11 UTC (rev 41) @@ -0,0 +1,28 @@ +The following is the LICENSE information for all source code files, unless they specifically note else. + +The LICENSE is New BSD License (3-clause BSD license). + +Copyright (c) 2010, ADCProject +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the ADCProject nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL ADCProject BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 18:43:35
|
Revision: 40 http://adc.svn.sourceforge.net/adc/?rev=40&view=rev Author: ullner Date: 2010-10-11 18:43:29 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Slight modification of the license text; Code copyright is now under ADCProject Modified Paths: -------------- trunk/Source/Helper.cs Modified: trunk/Source/Helper.cs =================================================================== --- trunk/Source/Helper.cs 2010-10-11 18:41:53 UTC (rev 39) +++ trunk/Source/Helper.cs 2010-10-11 18:43:29 UTC (rev 40) @@ -1,5 +1,5 @@ /* -Copyright (c) 2010, Fredrik Ullner +Copyright (c) 2010, ADCProject All rights reserved. Redistribution and use in source and binary forms, with or without @@ -9,14 +9,14 @@ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of the <organization> nor the + * Neither the name of the ADCProject nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY +DISCLAIMED. IN NO EVENT SHALL ADCProject BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 18:42:01
|
Revision: 39 http://adc.svn.sourceforge.net/adc/?rev=39&view=rev Author: ullner Date: 2010-10-11 18:41:53 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Added Paths: ----------- trunk/Source/ trunk/Source/Helper.cs Added: trunk/Source/Helper.cs =================================================================== --- trunk/Source/Helper.cs (rev 0) +++ trunk/Source/Helper.cs 2010-10-11 18:41:53 UTC (rev 39) @@ -0,0 +1,60 @@ +/* +Copyright (c) 2010, Fredrik Ullner +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the <organization> nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + +namespace ADC +{ + public class Helper + { + /// <summary> + /// Escapes an ADC string. + /// </summary> + /// <param name="strInitial">The input string value.</param> + /// <returns>The escaped string value.</returns> + public static string Escape(string strInput) + { + string strOutput = strInput; + + // Escape backslash + strOutput = strOutput.Replace("\\", "\\\\"); + + // Escape tab + strOutput = strOutput.Replace("\t", "\\t"); + + // Escape space + Regex regex = new Regex(@"[ ]{1,}", RegexOptions.None); + strOutput = regex.Replace(strOutput, @"\s"); + + return strOutput; + } + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 18:31:43
|
Revision: 38 http://adc.svn.sourceforge.net/adc/?rev=38&view=rev Author: ullner Date: 2010-10-11 18:31:36 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Added Paths: ----------- trunk/Templates/ADCTemplate.h Added: trunk/Templates/ADCTemplate.h =================================================================== --- trunk/Templates/ADCTemplate.h (rev 0) +++ trunk/Templates/ADCTemplate.h 2010-10-11 18:31:36 UTC (rev 38) @@ -0,0 +1,102 @@ +#ifndef ADCTEMPLATE_H_!(GUID) +#define ADCTEMPLATE_H_!(GUID) + +#include <string> +#include <list> + +namespace ADC +{ + /// <summary> + /// !(COMMAND_DESCRIPTION) + /// </summary> + class !(COMMAND_NAME) + { + public: + + !(COMMAND_NAME)(); + + virtual ~!(COMMAND_NAME)(); + + public: + + #pragma region Enums + /// START FOR EACH ENUMTYPE + /// <summary> + /// !(ENUM_DESCRIPTION) + /// </summary> + enum !(ENUM_NAME) + { + /// <summary> + /// Basic holder for unknown values + /// </summary> + Unknown = 0, + + /// START FOR EACH ENUM_VALUE + /// <summary> + /// !(ENUM_VALUE_DESCRIPTION) + /// </summary> + !(ENUM_VALUE_NAME) = !(ENUM_VALUE_VALUE) + /// END FOR EACH ENUM_VALUE + }; + /// END FOR EACH ENUMTYPE + #pragma endregion + + #pragma region Positional parameters + + /// START FOR EACH POSITIONAL_PARAMETER + /// <summary> + /// !(PARAMETER_DESCRIPTION) + /// </summary> + !(PARAMETER_TYPE) Get!(PARAMETER_NAME)() const; + + Set!(PARAMETER_NAME)(!(PARAMETER_TYPE) value); + /// END FOR EACH POSITIONAL_PARAMETER + + #pragma endregion + + #pragma region Named parameters + + /// START FOR EACH NAMED_PARAMETER + /// <summary> + /// !(PARAMETER_DESCRIPTION) + /// </summary> + !(PARAMETER_TYPE) Get!(PARAMETER_NAME) const; + + Set!(PARAMETER_NAME)(!(PARAMETER_TYPE) value); + /// END FOR EACH NAMED_PARAMETER + + #pragma endregion + + #pragma region Methods + + /// START FOR EACH PARAMETER_LIST + /// <summary> + /// + /// </summary> + std::string Get!(PARAMETER_NAME)Value() const; + /// END FOR EACH PARAMETER_LIST + + #pragma endregion + + /// <summary> + /// + /// </summary> + std::string ConstructMessage(); + + private: + + const std::string COMMAND_NAME = "!(COMMAND_ID)"; + const std::string SEPARATOR = " "; + + #pragma region Parameters + /// START FOR EACH PARAMETER_LIST + /// <summary> + /// + /// </summary> + !(PARAMETER_TYPE) m_!(PARAMETER_NAME); + /// END FOR EACH PARAMETER_LIST + #pragma endregion + }; +} + +#endif // ADCTEMPLATE_H_!(GUID) \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-10-11 18:31:21
|
Revision: 37 http://adc.svn.sourceforge.net/adc/?rev=37&view=rev Author: ullner Date: 2010-10-11 18:31:15 +0000 (Mon, 11 Oct 2010) Log Message: ----------- Modified Paths: -------------- trunk/Templates/ADCMessages.xml trunk/Templates/ADCTemplate.cs Modified: trunk/Templates/ADCMessages.xml =================================================================== --- trunk/Templates/ADCMessages.xml 2010-09-30 22:52:45 UTC (rev 36) +++ trunk/Templates/ADCMessages.xml 2010-10-11 18:31:15 UTC (rev 37) @@ -106,7 +106,7 @@ </command> <command name="MessageCommand" id="MSG" description="Normal message"> <positionalParameters> - <positionalParameter id="Text" type="string" description="Message"/> + <positionalParameter name="Text" id="Text" type="string" description="Message"/> </positionalParameters> <namedParameters> <namedParameter name="PrivateMessage" id="PM" type="string" description="" /> Modified: trunk/Templates/ADCTemplate.cs =================================================================== --- trunk/Templates/ADCTemplate.cs 2010-09-30 22:52:45 UTC (rev 36) +++ trunk/Templates/ADCTemplate.cs 2010-10-11 18:31:15 UTC (rev 37) @@ -53,6 +53,7 @@ set; } /// END FOR EACH POSITIONAL_PARAMETER + /// #endregion #region Named parameters @@ -67,6 +68,7 @@ set; } /// END FOR EACH NAMED_PARAMETER + #endregion #region Constructors @@ -105,6 +107,7 @@ // Positional parameters /// START FOR EACH POSITIONAL_PARAMETERS + if (!(PARAMETER_NAME) == null) { throw new Exception("!(PARAMETER_NAME) cannot be null!"); @@ -112,16 +115,16 @@ message += SEPARATOR; message += Get!(PARAMETER_NAME)Value(); - /// END FOR EACH POSITIONAL_PARAMETERS + // Named parameters /// START FOR EACH NAMED_PARAMETERS + if (!(PARAMETER_NAME) != null) { message += SEPARATOR; message += Get!(PARAMETER_NAME)Value(); } - /// END FOR EACH NAMED_PARAMETERS message = message.Substring(1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-09-30 22:52:56
|
Revision: 36 http://adc.svn.sourceforge.net/adc/?rev=36&view=rev Author: ullner Date: 2010-09-30 22:52:45 +0000 (Thu, 30 Sep 2010) Log Message: ----------- Added C# template code file Added Paths: ----------- trunk/Templates/ADCTemplate.cs Added: trunk/Templates/ADCTemplate.cs =================================================================== --- trunk/Templates/ADCTemplate.cs (rev 0) +++ trunk/Templates/ADCTemplate.cs 2010-09-30 22:52:45 UTC (rev 36) @@ -0,0 +1,131 @@ +using System; +using System.Net; +using System.Collections.Generic; + +namespace ADC +{ + /// <summary> + /// !(COMMAND_DESCRIPTION) + /// </summary> + public class !(COMMAND_NAME) + { + #region Constants + + private const string COMMAND_NAME = "!(COMMAND_ID)"; + private const string SEPARATOR = " "; + + #endregion + + #region Enums + + /// START FOR EACH ENUMTYPE + /// <summary> + /// !(ENUM_DESCRIPTION) + /// </summary> + !(FLAGS_ATTRIBUTE) + public enum !(ENUM_NAME) + { + /// <summary> + /// Basic holder for unknown values + /// </summary> + Unknown = 0, + + /// START FOR EACH ENUM_VALUE + /// <summary> + /// !(ENUM_VALUE_DESCRIPTION) + /// </summary> + !(ENUM_VALUE_NAME) = !(ENUM_VALUE_VALUE) + /// END FOR EACH ENUM_VALUE + } + /// END FOR EACH ENUMTYPE + + #endregion + + #region Positional parameters + + /// START FOR EACH POSITIONAL_PARAMETER + /// <summary> + /// !(PARAMETER_DESCRIPTION) + /// </summary> + public !(PARAMETER_TYPE) !(PARAMETER_NAME) + { + get; + set; + } + /// END FOR EACH POSITIONAL_PARAMETER + #endregion + + #region Named parameters + + /// START FOR EACH NAMED_PARAMETER + /// <summary> + /// !(PARAMETER_DESCRIPTION) + /// </summary> + public !(PARAMETER_TYPE) !(PARAMETER_NAME) + { + get; + set; + } + /// END FOR EACH NAMED_PARAMETER + #endregion + + #region Constructors + + public !(COMMAND_NAME)() + { + /// START FOR EACH PARAMETER_LIST + !(PARAMETER_NAME) = !(REPLACE_INITIALIZE_VALUE); + /// END FOR EACH PARAMETER_LIST + } + + #endregion + + #region Methods + + /// START FOR EACH PARAMETER_LIST + /// <summary> + /// + /// </summary> + public string Get!(PARAMETER_NAME)Value() + { + string message = !(REPLACE_VALUE); + + return message; + } + /// END FOR EACH PARAMETER_LIST + + #endregion + + /// <summary> + /// + /// </summary> + public string ConstructMessage() + { + string message = ""; + + // Positional parameters + /// START FOR EACH POSITIONAL_PARAMETERS + if (!(PARAMETER_NAME) == null) + { + throw new Exception("!(PARAMETER_NAME) cannot be null!"); + } + + message += SEPARATOR; + message += Get!(PARAMETER_NAME)Value(); + + /// END FOR EACH POSITIONAL_PARAMETERS + // Named parameters + /// START FOR EACH NAMED_PARAMETERS + if (!(PARAMETER_NAME) != null) + { + message += SEPARATOR; + message += Get!(PARAMETER_NAME)Value(); + } + + /// END FOR EACH NAMED_PARAMETERS + + message = message.Substring(1); + return message; + } + } +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-09-30 22:48:53
|
Revision: 35 http://adc.svn.sourceforge.net/adc/?rev=35&view=rev Author: ullner Date: 2010-09-30 22:48:47 +0000 (Thu, 30 Sep 2010) Log Message: ----------- Added empty namedParameters tag to SID. Changed type of IPv4 and IPv6 types in INF in case some languages threat them differently. Modified Paths: -------------- trunk/Templates/ADCMessages.xml Modified: trunk/Templates/ADCMessages.xml =================================================================== --- trunk/Templates/ADCMessages.xml 2010-09-27 19:52:30 UTC (rev 34) +++ trunk/Templates/ADCMessages.xml 2010-09-30 22:48:47 UTC (rev 35) @@ -63,14 +63,15 @@ <positionalParameters> <positionalParameter name="SessionId" id="SID" type="string" description="SID of user"/> </positionalParameters> + <namedParameters /> </command> <command name="InformationCommand" id="INF" description="Information message"> <positionalParameters /> <namedParameters> <namedParameter name="ClientID" id="ID" type="string" description="The CID of the client" /> <namedParameter name="PrivateID" id="PD" type="string" description="The PID of the client" /> - <namedParameter name="IPv4Address" id="I4" type="IPAddress" description="IPv4 address without port." /> - <namedParameter name="IPv6Address" id="I6" type="IPAddress" description="IPv6 address without port." /> + <namedParameter name="IPv4Address" id="I4" type="IPv4Address" description="IPv4 address without port." /> + <namedParameter name="IPv6Address" id="I6" type="IPv6Address" description="IPv6 address without port." /> <namedParameter name="UDPIPv4Port" id="U4" type="int" description="" /> <namedParameter name="UDPIPv6Port" id="U6" type="int" description="" /> <namedParameter name="ShareSize" id="SS" type="int" description="Share size in bytes." /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-09-27 19:52:36
|
Revision: 34 http://adc.svn.sourceforge.net/adc/?rev=34&view=rev Author: ullner Date: 2010-09-27 19:52:30 +0000 (Mon, 27 Sep 2010) Log Message: ----------- Updated KEYP text to be more simple. Modified Paths: -------------- trunk/ADC-EXT.txt Modified: trunk/ADC-EXT.txt =================================================================== --- trunk/ADC-EXT.txt 2010-09-27 19:26:08 UTC (rev 33) +++ trunk/ADC-EXT.txt 2010-09-27 19:52:30 UTC (rev 34) @@ -495,13 +495,13 @@ |===== === KEYP - Certificate substitution protection in ADCS (Secure ADC) -This extension adds a simple, but secure way to protect against man-in-the-middle attacks against ADC when wrapped with TLS (1.0 or later). It does not require setting up a CA or signing keys, but possible if desired. +This extension adds a simple, but secure way to protect against man-in-the-middle attacks against ADC when wrapped with TLS (1.0 or later). It does not require setting up a CA or signing keys, but that is still possible if desired. -The extension introduce a keyprint parameter to the ADCS URI. The keyprint parameter is a hash of either the certificate signing the server certificate (in a CA-style key-signing configuration) or, simply, the server certificate itself (in a self-signed configuration). +The extension introduces a keyprint parameter to the ADCS URI. The keyprint parameter is a hash of the server certificate. -The extension also require that clients should publish their own certificates' keyprint in the KP field in the INF. Assuming one trusts the hub enough not to maliciously change the keyprints en route (a reasonable assumption given the hub's existing position of trust), and given that the connection to the hub has been similarly authenticated (either as above or via a directly downloaded trusted certificate), client-client connections are also protected against attempted man-in-the-middle attacks - without messing around having to get everyone's certificates signed in advance. +The extension also requires clients to publish their own certificates' keyprint in the KP field in the INF. Assuming one trusts the hub enough not to maliciously change the keyprints en route (a reasonable assumption given the hub's existing position of trust), and given that the connection to the hub has been similarly authenticated (either as above or via a directly downloaded trusted certificate), client-client connections are also protected against attempted man-in-the-middle attacks - without messing around with having to get everyone's certificates signed in advance. -The keyprint parameter consist of a hash name, followed by a forward slash ('/'), followed by the Base32-encoded cyrptographic hash of either the certificate directly (which is appropriate in the case of a self-signed certificate), or a certificate providing the base of a valid signature chain (which may be more appropriate a CA-signed certificate). +The keyprint parameter consists of a hash name, followed by a forward slash ('/'), followed by the Base32-encoded cyrptographic hash of the certificate. The hash used shall be SHA256. Other extensions may add other hashes, given sufficient security contemplation. @@ -512,18 +512,15 @@ |===== ==== Keyprint replacement behaviour -If a client receives a KP field in an FINF broadcast via a hub to it is connected using ADCS and a trusted key as above (or otherwise), it should be regarded as the valid and correct keyprint for that client's IP/port/hub combination, replacing any earlier keyprint for that IP/port/hub combination. +If a client receives a KP field in an FINF broadcast via a hub it is connected to using ADCS and a trusted key as above (or otherwise), it should be regarded as the valid and correct keyprint for that client's IP/port/hub combination, replacing any earlier keyprint for that IP/port/hub combination. ==== Keyprint verification -When initiating a TLS handshake with a remote host where the keyprint is known, the client can verify that a man-in-the-middle attack is not occurring by checking if the hash given in the keyprint matches exactly: +When initiating a TLS handshake with a remote host where the keyprint is known, the client can verify that a man-in-the-middle attack is not occurring by checking if the hash given in the keyprint exactly matches that of the certificate presented during the handshake by the remote host. -* a root certificate presented in a valid signature chain which covers the certificate presented during the handshake by the remote host; or -* the entire certificate presented during the handshake by the remote host. - Suppose the client is aware of a remote host's keyprint and is in the process of connecting to that host. A certificate substitution attack is in place if the hub presents itself with a certificate that does not match and where the certificate is not the root of the valid signature chain covering the certificate. -If the client detect such an attack, the client MUST abort the connection with a user-visible, non-modal error stating, for example, "Crypto error: Detected attempted man-in-the-middle attack, aborting". (This error quite possibly represents a real attempted attack that has been foiled; we may try auto-reconnecting but we should NEVER ignore it, or it will succeed. We may wish to avoid stating the keyprint of the certificate that was actually received.) +If the client detects such an attack, the client should abort the connection and notify the user with a message stating, for example, "Crypto error: Detected attempted man-in-the-middle attack, aborting". (This error quite possibly represents a real attempted attack that has been foiled; we may try auto-reconnecting but we should NEVER ignore it, or it will succeed. We may wish to avoid stating the keyprint of the certificate that was actually received.) -Optionally, when receiving a TLS handshake, if the client know what the remote host's keyprint ought to be, the client could also verify this. However, note that only the initiating side needs to check this for the man-in-the-middle protection to be valid; specifically the hub doesn't need to remember, or even understand, clients' keyprints. +Optionally, when receiving a TLS handshake, if the client knows what the remote host's keyprint ought to be, the client could also verify this. However, note that only the initiating side needs to check this for the man-in-the-middle protection to be valid; specifically the hub doesn't need to remember, or even understand, clients' keyprints. ==== Security Considerations ===== General This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-09-27 19:26:14
|
Revision: 33 http://adc.svn.sourceforge.net/adc/?rev=33&view=rev Author: ullner Date: 2010-09-27 19:26:08 +0000 (Mon, 27 Sep 2010) Log Message: ----------- Added "template file" for BASE... Added Paths: ----------- trunk/Templates/ trunk/Templates/ADCMessages.xml Added: trunk/Templates/ADCMessages.xml =================================================================== --- trunk/Templates/ADCMessages.xml (rev 0) +++ trunk/Templates/ADCMessages.xml 2010-09-27 19:26:08 UTC (rev 33) @@ -0,0 +1,214 @@ +<adc> + <commands> + <command name="StatusCodeCommand" id="STA" description="Status code."> + <positionalParameters> + <positionalParameter name="Severity" id="Code" type="enum" description=""> + <enum name="Success" value="0" description="Success" /> + <enum name="Recoverable" value="1" description="Recoverable (error but no disconnect) " /> + <enum name="Fatal" value="2" description="Fatal (disconnect)" /> + </positionalParameter> + <positionalParameter name="ErrorCode" id="Code" type="enum" description=""> + <enum name="Generic" value="0" description="Generic, show description" /> + <enum name="GenericHubError" value="10" description="Generic hub error" /> + <enum name="HubFull" value="11" description="" /> + <enum name="HubDisabled" value="12" description="" /> + <enum name="GenericLoginAccessError" value="20" description="" /> + <enum name="NickInvalid" value="21" description="" /> + <enum name="NickTaken" value="22" description="" /> + <enum name="InvalidPassword" value="23" description="" /> + <enum name="CIDTaken" value="24" description=" " /> + <enum name="AccessDenied" value="25" description="" /> + <enum name="RegisteredUsersOnly" value="26" description="" /> + <enum name="InvalidPID" value="27" description="" /> + <enum name="GenericDisconnect" value="30" description="" /> + <enum name="PermanentlyBanned" value="31" description="" /> + <enum name="TemporarilyBanned" value="32" description="" /> + <enum name="ProtocolError" value="40" description="" /> + <enum name="TransferProtocolUnsupported" value="41" description="" /> + <enum name="DirectConnectionFailed" value="42" description="" /> + <enum name="RequireFieldMessing" value="43" description="" /> + <enum name="InvalidState" value="44" description="" /> + <enum name="RequiredFeatureMissing" value="45" description="" /> + <enum name="InvalidIPSupplied" value="46" description="" /> + <enum name="NoHashSupportClientHub" value="47" description="" /> + <enum name="InvalidFeature" value="48" description="" extension="1" /> + <enum name="ClientClientError" value="50" description="" /> + <enum name="FileNotAvailable" value="51" description="" /> + <enum name="FilePartNotAvailable" value="52" description="" /> + <enum name="SlotsFull" value="53" description="" /> + <enum name="NoHashSupportClientClient" value="54" description="" /> + </positionalParameter> + <positionalParameter name="Description" id="Description" type="string" description="Description"/> + </positionalParameters> + <namedParameters> + <namedParameter name="FourCharacterCode" id="FC" type="stringlist" description="" /> + <namedParameter name="TimeLeft" id="TL" type="int" description="" /> + <namedParameter name="Token" id="TO" type="string" description="" /> + <namedParameter name="Protocol" id="PR" type="string" description="" /> + <namedParameter name="MissingField" id="FM" type="string" description="" /> + <namedParameter name="InvalidField" id="FB" type="string" description="" /> + <namedParameter name="IPv4Address" id="I4" type="IPAddress" description="" /> + <namedParameter name="IPv6Address" id="I6" type="IPAddress" description="" /> + <namedParameter name="ReferenceAddress" id="RF" type="string" description="" extension="1" /> + </namedParameters> + </command> + <command name="FeatureSupportCommand" id="SUP" description="Feature support"> + <positionalParameters /> + <namedParameters> + <namedParameter name="AddFeatureList" id="AD" type="stringitemlist" description="" /> + <namedParameter name="RemoveFeatureList" id="RM" type="stringitemlist" description="" /> + </namedParameters> + </command> + <command name="SIDCommand" id="SID" description="Session ID"> + <positionalParameters> + <positionalParameter name="SessionId" id="SID" type="string" description="SID of user"/> + </positionalParameters> + </command> + <command name="InformationCommand" id="INF" description="Information message"> + <positionalParameters /> + <namedParameters> + <namedParameter name="ClientID" id="ID" type="string" description="The CID of the client" /> + <namedParameter name="PrivateID" id="PD" type="string" description="The PID of the client" /> + <namedParameter name="IPv4Address" id="I4" type="IPAddress" description="IPv4 address without port." /> + <namedParameter name="IPv6Address" id="I6" type="IPAddress" description="IPv6 address without port." /> + <namedParameter name="UDPIPv4Port" id="U4" type="int" description="" /> + <namedParameter name="UDPIPv6Port" id="U6" type="int" description="" /> + <namedParameter name="ShareSize" id="SS" type="int" description="Share size in bytes." /> + <namedParameter name="SharedFiles" id="SF" type="int" description="" /> + <namedParameter name="ClientVersion" id="VE" type="string" description="" /> + <namedParameter name="MaxUploadSpeed" id="US" type="int" description="" /> + <namedParameter name="MaxDownloadSpeed" id="DS" type="int" description="" /> + <namedParameter name="MaxSlots" id="SL" type="int" description="" /> + <namedParameter name="AutoSlotAllocatorSpeed" id="AS" type="int" description="" /> + <namedParameter name="MinAutoSlotAllocator" id="AM" type="int" description="" /> + <namedParameter name="EmailAddress" id="EM" type="string" description="" /> + <namedParameter name="NickName" id="NI" type="string" description="" /> + <namedParameter name="Description" id="DE" type="string" description="" /> + <namedParameter name="HubsNormal" id="HN" type="int" description="" /> + <namedParameter name="HubsRegistered" id="HR" type="int" description="" /> + <namedParameter name="HubsOperator" id="HO" type="int" description="" /> + <namedParameter name="Token" id="TO" type="string" description="" /> + <namedParameter name="ClientType" id="CT" type="combined" description="Client (user) type"> + <combined name="Bot" value="1" description="BOT" /> + <combined name="RegisteredUser" value="2" description="Registered user" /> + <combined name="Operator" value="4" description="Operator" /> + <combined name="SuperUser" value="8" description="Super user" /> + <combined name="HubOwner" value="16" description="Hub owner" /> + <combined name="Hub" value="32" description="Hub" /> + <combined name="Hidden" value="64" description="Hidden" extension="1" /> + </namedParameter> + <namedParameter name="Away" id="AW" type="enum" description=""> + <enum name="Away" value="1" description="" /> + <enum name="ExtendedAway" value="2" description="" /> + </namedParameter> + </namedParameters> + </command> + <command name="MessageCommand" id="MSG" description="Normal message"> + <positionalParameters> + <positionalParameter id="Text" type="string" description="Message"/> + </positionalParameters> + <namedParameters> + <namedParameter name="PrivateMessage" id="PM" type="string" description="" /> + <namedParameter name="ThirdPerson" id="ME" type="enum" description=""> + <enum value="1" description="message should be displayed as /me in IRC ("*nick text")" /> + </namedParameter> + </namedParameters> + </command> + <command name="SearchCommand" id="SCH" description="Search"> + <positionalParameters /> + <namedParameters> + <namedParameter name="IncludedSearchTerms" id="AN" type="stringitemlist" description="Included search terms." /> + <namedParameter name="ExcludedSearchTerms" id="NO" type="stringitemlist" description="Excluded search terms." /> + <namedParameter name="Extensions" id="EX" type="stringitemlist" description="Extensions." /> + <namedParameter name="LessThanEqualBytes" id="LE" type="int" description="Smaller (less) than or equal size in bytes." /> + <namedParameter name="GreaterThanEqualBytes" id="GE" type="int" description="Larger (greater) than or equal size in bytes." /> + <namedParameter name="ExactSize" id="EQ" type="int" description="Exact size in bytes." /> + <namedParameter name="Token" id="TO" type="string" description="Token." /> + </namedParameters> + </command> + <command name="SearchResultCommand" id="RES" description="Search result"> + <positionalParameters /> + <namedParameters> + <namedParameter name="FileName" id="FN" type="string" description="Full filename including path in share." /> + <namedParameter name="Size" id="SI" type="int" description="Size, in bytes." /> + <namedParameter name="SlotsAvailable" id="SL" type="int" description="Slots currently available." /> + <namedParameter name="Token" id="TO" type="string" description="Token." /> + </namedParameters> + </command> + <command name="ConnectToMeCommand" id="CTM" description="Connect to me"> + <positionalParameters> + <positionalParameter name="Protocol" id="Protocol" type="string" description="Protocol version. E.g., "ADC/1.0""/> + <positionalParameter name="Port" id="Port" type="int" description="Port"/> + <positionalParameter name="Token" id="Token" type="string" description="Token." /> + </positionalParameters> + <namedParameters /> + </command> + <command name="ReverseConnectToMeCommand" id="RCM" description="Reverse CTM. Used by passive clients to request a connection token from an active client."> + <positionalParameters> + <positionalParameter name="Protocol" id="Protocol" type="string" description="Protocol version. E.g., "ADC/1.0""/> + <positionalParameter name="Token" id="Token" type="string" description="Token." /> + </positionalParameters> + <namedParameters /> + </command> + <command name="GetPasswordCommand" id="GPA" description="Get password."> + <positionalParameters> + <positionalParameter name="Data" id="Data" type="string" description="Parameter is at least 24 random bytes (base32 encoded)."/> + </positionalParameters> + <namedParameters /> + </command> + <command name="ProvidePasswordCommand" id="PAS" description="Provide password."> + <positionalParameters> + <positionalParameter name="Password" id="Password" type="string" description=" The password (utf-8 encoded bytes), followed by the random data (binary), passed through the session hash algorithm then converted to base32."/> + </positionalParameters> + <namedParameters /> + </command> + <command name="QuitCommand" id="QUI" description="Quit user."> + <positionalParameters> + <positionalParameter name="SessionId" id="SID" type="string" description="Session Id of user to disconnect"/> + </positionalParameters> + <namedParameters> + <namedParameter name="SessionIdInitiator" id="ID" type="string" description="SID of the initiator of the disconnect." /> + <namedParameter name="TimeLeft" id="TL" type="int" description="Time left until reconnect is allowed, in seconds. -1 = forever" /> + <namedParameter name="Message" id="MS" type="string" description="Message" /> + <namedParameter name="RedirectServerURI" id="RD" type="string" description="Redirect server URI." /> + <namedParameter name="DisconnectClient" id="DI" type="enum" description="Any client that has this flag in the QUI message should have its transfers terminated by other clients connected to it, as it is unwanted in the system"> + <enum name="DisconnectAll" value="1" description="" /> + </namedParameter> + </namedParameters> + </command> + <command name="GetFileCommand" id="GET" description="Get file."> + <positionalParameters> + <positionalParameter name="Type" id="Type" type="enumstring" description=""> + <enum name="File" value="file" description="" /> + <enum name="List" value="list" description="" /> + </positionalParameter> + <positionalParameter name="Identifier" id="Identifier" type="string" description="" /> + <positionalParameter name="StartPosition" id="StartPosition" type="int" description="" /> + <positionalParameter name="Bytes" id="Bytes" type="int" description="" /> + </positionalParameters> + <namedParameters /> + </command> + <command name="GetFileInformationCommand" id="GFI" description="Get file information."> + <positionalParameters> + <positionalParameter name="Type" id="Type" type="enumstring" description=""> + <enum name="File" value="file" description="" /> + <enum name="List" value="list" description="" /> + </positionalParameter> + <positionalParameter name="Identifier" id="Identifier" type="string" description="" /> + </positionalParameters> + <namedParameters /> + </command> + <command name="SendFileCommand" id="SND" description="Send file."> + <positionalParameters> + <positionalParameter name="Type" id="Type" type="enumstring" description=""> + <enum name="File" value="file" description="" /> + <enum name="List" value="list" description="" /> + </positionalParameter> + <positionalParameter name="Identifier" id="Identifier" type="string" description="" /> + <positionalParameter name="StartPosition" id="StartPosition" type="int" description="" /> + <positionalParameter name="Bytes" id="Bytes" type="int" description="" /> + </positionalParameters> + <namedParameters /> + </command> + </commands> +</adc> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-09-26 18:06:25
|
Revision: 32 http://adc.svn.sourceforge.net/adc/?rev=32&view=rev Author: ullner Date: 2010-09-26 18:06:19 +0000 (Sun, 26 Sep 2010) Log Message: ----------- Convinced that we don't need to re-create the URI syntax... Modified Paths: -------------- trunk/ADC-EXT.txt Modified: trunk/ADC-EXT.txt =================================================================== --- trunk/ADC-EXT.txt 2010-09-26 17:51:23 UTC (rev 31) +++ trunk/ADC-EXT.txt 2010-09-26 18:06:19 UTC (rev 32) @@ -44,7 +44,6 @@ === Version 1.0.6 UNRELEASED * Added KEYP extension for providing certificate substitution protection in ADCS. -* Added URI specification for ADC == Extensions @@ -552,17 +551,7 @@ ==== Example ==== -adcs://example.com:1234/kp?SHA256/G3PJC4F4MQ5KOXGE2MPYJW5EW63IC6M7RN7OS663JLLWN2M5I6FQ +adcs://example.com:1234/?kp=SHA256/G3PJC4F4MQ5KOXGE2MPYJW5EW63IC6M7RN7OS663JLLWN2M5I6FQ ==== -=== URI specification -ADC URIs shall be specified in the following (extended) form; - -==== -adc://example.com:1234/foo?bar -==== -Where 'foo' is the identifyable or parsable string for the URI and where 'bar' is the content or value. - -Extensions creating a new URI (say, the adcs:// URI), should also adopt this general structure. - // vim: set syntax=asciidoc: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-09-26 17:51:29
|
Revision: 31 http://adc.svn.sourceforge.net/adc/?rev=31&view=rev Author: ullner Date: 2010-09-26 17:51:23 +0000 (Sun, 26 Sep 2010) Log Message: ----------- "Better" URI specification Modified Paths: -------------- trunk/ADC-EXT.txt Modified: trunk/ADC-EXT.txt =================================================================== --- trunk/ADC-EXT.txt 2010-09-26 17:43:50 UTC (rev 30) +++ trunk/ADC-EXT.txt 2010-09-26 17:51:23 UTC (rev 31) @@ -44,6 +44,7 @@ === Version 1.0.6 UNRELEASED * Added KEYP extension for providing certificate substitution protection in ADCS. +* Added URI specification for ADC == Extensions @@ -554,4 +555,14 @@ adcs://example.com:1234/kp?SHA256/G3PJC4F4MQ5KOXGE2MPYJW5EW63IC6M7RN7OS663JLLWN2M5I6FQ ==== +=== URI specification +ADC URIs shall be specified in the following (extended) form; + +==== +adc://example.com:1234/foo?bar +==== +Where 'foo' is the identifyable or parsable string for the URI and where 'bar' is the content or value. + +Extensions creating a new URI (say, the adcs:// URI), should also adopt this general structure. + // vim: set syntax=asciidoc: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ul...@us...> - 2010-09-26 17:43:56
|
Revision: 30 http://adc.svn.sourceforge.net/adc/?rev=30&view=rev Author: ullner Date: 2010-09-26 17:43:50 +0000 (Sun, 26 Sep 2010) Log Message: ----------- Starting 1.0.6; Added KEYP extension; note that the URI is slightly changed from the 'original' KEYP wiki entry; some wording changed to be more simple to grasp. Note that ADCS is not added at this point in time, just yet. ADCS is not needed at this point particularly, since the KEYP spec only relies on a) the URI (which is simply the same as the standard URI with an 's' appended) and b) the general use of "certificates". Modified Paths: -------------- trunk/ADC-EXT.txt Modified: trunk/ADC-EXT.txt =================================================================== --- trunk/ADC-EXT.txt 2010-09-16 19:11:35 UTC (rev 29) +++ trunk/ADC-EXT.txt 2010-09-26 17:43:50 UTC (rev 30) @@ -1,6 +1,6 @@ = ADC Extensions Fredrik Ullner <ul...@gm...> -1.0.5, September 2010 +1.0.6, September 2010 == Abstract These are the official extensions to ADC. This document is based on the @@ -42,6 +42,9 @@ * Added hidden in enumeration of CT field in INF. * Added error code Invalid feature in STA. +=== Version 1.0.6 UNRELEASED +* Added KEYP extension for providing certificate substitution protection in ADCS. + == Extensions === TIGR - Tiger tree hash support @@ -491,4 +494,64 @@ |48 |Invalid feature. Flag "FC" is the FOURCC of the invalid feature(s). If multiple features are invalid, use comma between the features (i.e. FCQWER,ASDF,ZXCV). |===== +=== KEYP - Certificate substitution protection in ADCS (Secure ADC) +This extension adds a simple, but secure way to protect against man-in-the-middle attacks against ADC when wrapped with TLS (1.0 or later). It does not require setting up a CA or signing keys, but possible if desired. + +The extension introduce a keyprint parameter to the ADCS URI. The keyprint parameter is a hash of either the certificate signing the server certificate (in a CA-style key-signing configuration) or, simply, the server certificate itself (in a self-signed configuration). + +The extension also require that clients should publish their own certificates' keyprint in the KP field in the INF. Assuming one trusts the hub enough not to maliciously change the keyprints en route (a reasonable assumption given the hub's existing position of trust), and given that the connection to the hub has been similarly authenticated (either as above or via a directly downloaded trusted certificate), client-client connections are also protected against attempted man-in-the-middle attacks - without messing around having to get everyone's certificates signed in advance. + +The keyprint parameter consist of a hash name, followed by a forward slash ('/'), followed by the Base32-encoded cyrptographic hash of either the certificate directly (which is appropriate in the case of a self-signed certificate), or a certificate providing the base of a valid signature chain (which may be more appropriate a CA-signed certificate). + +The hash used shall be SHA256. Other extensions may add other hashes, given sufficient security contemplation. + +INF field; +[options="autowidth"] +|===== +|KP |The client's own certificate keyprint. +|===== + +==== Keyprint replacement behaviour +If a client receives a KP field in an FINF broadcast via a hub to it is connected using ADCS and a trusted key as above (or otherwise), it should be regarded as the valid and correct keyprint for that client's IP/port/hub combination, replacing any earlier keyprint for that IP/port/hub combination. + +==== Keyprint verification +When initiating a TLS handshake with a remote host where the keyprint is known, the client can verify that a man-in-the-middle attack is not occurring by checking if the hash given in the keyprint matches exactly: + +* a root certificate presented in a valid signature chain which covers the certificate presented during the handshake by the remote host; or +* the entire certificate presented during the handshake by the remote host. + +Suppose the client is aware of a remote host's keyprint and is in the process of connecting to that host. A certificate substitution attack is in place if the hub presents itself with a certificate that does not match and where the certificate is not the root of the valid signature chain covering the certificate. +If the client detect such an attack, the client MUST abort the connection with a user-visible, non-modal error stating, for example, "Crypto error: Detected attempted man-in-the-middle attack, aborting". (This error quite possibly represents a real attempted attack that has been foiled; we may try auto-reconnecting but we should NEVER ignore it, or it will succeed. We may wish to avoid stating the keyprint of the certificate that was actually received.) + +Optionally, when receiving a TLS handshake, if the client know what the remote host's keyprint ought to be, the client could also verify this. However, note that only the initiating side needs to check this for the man-in-the-middle protection to be valid; specifically the hub doesn't need to remember, or even understand, clients' keyprints. + +==== Security Considerations +===== General +The certificates, including the name fields, are sent in the clear during the initial handshake. Therefore it is recommended to avoid identifying marks in the certificates CommonName fields (for example) that would clearly single them out as being TLS keys used by ADCS:, and the CID field most definitely should not appear. Quite possibly no name fields should appear, or they should be blank. + +===== Client-Hub +The keyprint in the ADCS URI prevents a clandestine man-in-the-middle (certificate substitution) attack on the TLS session with the hub, if and only if the kp parameter hasn't been modified by an attacker. + +Suggested countermeasures against this include the following; + +* Even if otherwise unprotected, an attacker would likely only have a maximum of one opportunity to make the substitution (by changing the kp parameter when the URL is first sent to the user); if it's changed later, it will be detected. ("Casual first-use" security, as often used in SSH.) + +* Checking the fingerprint or transferring the hub URL out-of-band (for example by telephone, or in person) could reveal or thwart man-in-the-middle attacks; something's wrong if you don't have the same URL as the hub operator gives out. (PGP-style "sneakernet" security.) + +* We would be protected if the URL were in a file signed by some secure means by a party we have already decided we trust not to change the URLs maliciously. Encryption would not be necessary, only a signature to ensure no untrusted party has modified the KP fields. (A signed hublist, possibly.) + +Finally, we would be protected were the hublist/URL retrieved from an https: site signed by a CA we trust not to issue signatures for any domain to someone who doesn't own that domain, and the owner of that domain trusted not to modify the KP fields. (SSL-style security.) + +===== Client-Client +We are, in particular, trusting the hub not to maliciously modify the KP fields sent by the clients through their INF broadcasts. However; + +* The hub would gain nothing from swapping the keyprints of its users, as it would not gain anything from mounting a man-in-the-middle attack on its own users that it does not already have the ability to do, as it's the hub; and +* If the client do not trust the hub enough not to maliciously modify the data, why is the client choosing to connect to the hub and transmit the client's IP address through the hub? +* It could be detected by cross-checking with other clients/hubs, as connecting through a malicious hub would clearly show to have a different keyprint to any other hub; therefore any hub doing this would obviously be quickly removed from hublists. + +==== Example +==== +adcs://example.com:1234/kp?SHA256/G3PJC4F4MQ5KOXGE2MPYJW5EW63IC6M7RN7OS663JLLWN2M5I6FQ +==== + // vim: set syntax=asciidoc: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |