summaryrefslogtreecommitdiff
path: root/cs
diff options
context:
space:
mode:
Diffstat (limited to 'cs')
-rw-r--r--cs/arris/.gitignore2
-rw-r--r--cs/arris/arris.sln20
-rw-r--r--cs/arris/arris/AssemblyInfo.cs27
-rw-r--r--cs/arris/arris/Main.cs101
-rw-r--r--cs/arris/arris/arris.csproj60
5 files changed, 210 insertions, 0 deletions
diff --git a/cs/arris/.gitignore b/cs/arris/.gitignore
new file mode 100644
index 0000000..519d212
--- /dev/null
+++ b/cs/arris/.gitignore
@@ -0,0 +1,2 @@
+*pidb
+*/bin/*
diff --git a/cs/arris/arris.sln b/cs/arris/arris.sln
new file mode 100644
index 0000000..e7b32ec
--- /dev/null
+++ b/cs/arris/arris.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arris", "arris\arris.csproj", "{1D3AF72F-01D4-4B4A-A094-50FAA0F1B0D2}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {1D3AF72F-01D4-4B4A-A094-50FAA0F1B0D2}.Debug|x86.ActiveCfg = Debug|x86
+ {1D3AF72F-01D4-4B4A-A094-50FAA0F1B0D2}.Debug|x86.Build.0 = Debug|x86
+ {1D3AF72F-01D4-4B4A-A094-50FAA0F1B0D2}.Release|x86.ActiveCfg = Release|x86
+ {1D3AF72F-01D4-4B4A-A094-50FAA0F1B0D2}.Release|x86.Build.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(MonoDevelopProperties) = preSolution
+ StartupItem = arris\arris.csproj
+ EndGlobalSection
+EndGlobal
diff --git a/cs/arris/arris/AssemblyInfo.cs b/cs/arris/arris/AssemblyInfo.cs
new file mode 100644
index 0000000..6e672bc
--- /dev/null
+++ b/cs/arris/arris/AssemblyInfo.cs
@@ -0,0 +1,27 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following attributes.
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle("arris")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion("1.0.*")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
+
diff --git a/cs/arris/arris/Main.cs b/cs/arris/arris/Main.cs
new file mode 100644
index 0000000..a86d5a6
--- /dev/null
+++ b/cs/arris/arris/Main.cs
@@ -0,0 +1,101 @@
+using System;
+
+namespace ArrisPassword
+{
+ class Program
+ {
+ static void Main (string[] args)
+ {
+ string pw = calculatePasswordOfDay (DateTime.Now);
+ System.Console.WriteLine (pw);
+ }
+ /**
+ * Arris Password of the Day Algorithm
+ **/
+ public static string calculatePasswordOfDay (DateTime beginDate)
+ {
+ string seedeight = "MPSJKMDH";
+ string seedten = "MPSJKMDHAI";
+
+ byte[,] sboxWeekday = new byte[,] { { 15, 15, 0x18, 20, 0x18 }, { 13, 14, 0x1b, 0x20, 10 }, { 0x1d, 14, 0x20, 0x1d, 0x18 }, { 0x17, 0x20, 0x18, 0x1d, 0x1d }, { 14, 0x1d, 10, 0x15, 0x1d }, { 0x22, 0x1b, 0x10, 0x17, 30 }, { 14, 0x16, 0x18, 0x11, 13 } };
+ byte[,] sbox2 = new byte[,] { { 0, 1, 2, 9, 3, 4, 5, 6, 7, 8 }, { 1, 4, 3, 9, 0, 7, 8, 2, 5, 6 }, { 7, 2, 8, 9, 4, 1, 6, 0, 3, 5 }, { 6, 3, 5, 9, 1, 8, 2, 7, 4, 0 }, { 4, 7, 0, 9, 5, 2, 3, 1, 8, 6 }, { 5, 6, 1, 9, 8, 0, 4, 3, 2, 7 } };
+ char[] sboxResult = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
+ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
+ 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
+ 'U', 'V', 'W', 'X', 'Y', 'Z' };
+
+ byte[] bufferWeekday = new byte[8];
+ byte[] bufferSeedEight = new byte[8];
+ byte[] buffer = new byte[10];
+ byte[] buffer6 = new byte[10];
+ byte[] bufferResult = new byte[10];
+
+
+ int year = beginDate.Year % 1000;
+ int month = beginDate.Month;
+ int day = beginDate.Day;
+ int weekday = ((int)beginDate.DayOfWeek) - 1;
+
+ bufferWeekday[0] = sboxWeekday[weekday, 0];
+ bufferWeekday[1] = sboxWeekday[weekday, 1];
+ bufferWeekday[2] = sboxWeekday[weekday, 2];
+ bufferWeekday[3] = sboxWeekday[weekday, 3];
+ bufferWeekday[4] = sboxWeekday[weekday, 4];
+ bufferWeekday[5] = (byte)day;
+ if (((year + month) - day) < 0) {
+ bufferWeekday[6] = (byte)((((year + month) - day) + 0x24) % 0x24);
+ } else {
+ bufferWeekday[6] = (byte)(((year + month) - day) % 0x24);
+ }
+ bufferWeekday[7] = (byte)((((3 + ((year + month) % 12)) * day) % 0x25) % 0x24);
+
+
+ bufferSeedEight[0] = (byte)(seedeight[0] % 0x24);
+ bufferSeedEight[1] = (byte)(seedeight[1] % 0x24);
+ bufferSeedEight[2] = (byte)(seedeight[2] % 0x24);
+ bufferSeedEight[3] = (byte)(seedeight[3] % 0x24);
+ bufferSeedEight[4] = (byte)(seedeight[4] % 0x24);
+ bufferSeedEight[5] = (byte)(seedeight[5] % 0x24);
+ bufferSeedEight[6] = (byte)(seedeight[6] % 0x24);
+ bufferSeedEight[7] = (byte)(seedeight[7] % 0x24);
+
+ buffer[0] = (byte)(((byte)(bufferWeekday[0] + bufferSeedEight[0])) % 0x24);
+ buffer[1] = (byte)(((byte)(bufferWeekday[1] + bufferSeedEight[1])) % 0x24);
+ buffer[2] = (byte)(((byte)(bufferWeekday[2] + bufferSeedEight[2])) % 0x24);
+ buffer[3] = (byte)(((byte)(bufferWeekday[3] + bufferSeedEight[3])) % 0x24);
+ buffer[4] = (byte)(((byte)(bufferWeekday[4] + bufferSeedEight[4])) % 0x24);
+ buffer[5] = (byte)(((byte)(bufferWeekday[5] + bufferSeedEight[5])) % 0x24);
+ buffer[6] = (byte)(((byte)(bufferWeekday[6] + bufferSeedEight[6])) % 0x24);
+ buffer[7] = (byte)(((byte)(bufferWeekday[7] + bufferSeedEight[7])) % 0x24);
+ buffer[8] = (byte)(((byte)(((byte)(((byte)(((byte)(((byte)(((byte)(((byte)(buffer[0] + buffer[1])) + buffer[2])) + buffer[3])) + buffer[4])) + buffer[5])) + buffer[6])) + buffer[7])) % 0x24);
+ byte num8 = (byte)(buffer[8] % 6);
+ buffer[9] = (byte)Math.Round (Math.Pow ((double)num8, 2.0));
+
+ buffer6[0] = buffer[sbox2[num8, 0]];
+ buffer6[1] = buffer[sbox2[num8, 1]];
+ buffer6[2] = buffer[sbox2[num8, 2]];
+ buffer6[3] = buffer[sbox2[num8, 3]];
+ buffer6[4] = buffer[sbox2[num8, 4]];
+ buffer6[5] = buffer[sbox2[num8, 5]];
+ buffer6[6] = buffer[sbox2[num8, 6]];
+ buffer6[7] = buffer[sbox2[num8, 7]];
+ buffer6[8] = buffer[sbox2[num8, 8]];
+ buffer6[9] = buffer[sbox2[num8, 9]];
+
+ bufferResult[0] = (byte)((seedten[0] + buffer6[0]) % 0x24);
+ bufferResult[1] = (byte)((seedten[1] + buffer6[1]) % 0x24);
+ bufferResult[2] = (byte)((seedten[2] + buffer6[2]) % 0x24);
+ bufferResult[3] = (byte)((seedten[3] + buffer6[3]) % 0x24);
+ bufferResult[4] = (byte)((seedten[4] + buffer6[4]) % 0x24);
+ bufferResult[5] = (byte)((seedten[5] + buffer6[5]) % 0x24);
+ bufferResult[6] = (byte)((seedten[6] + buffer6[6]) % 0x24);
+ bufferResult[7] = (byte)((seedten[7] + buffer6[7]) % 0x24);
+ bufferResult[8] = (byte)((seedten[8] + buffer6[8]) % 0x24);
+ bufferResult[9] = (byte)((seedten[9] + buffer6[9]) % 0x24);
+
+ string strOut = "";
+ Array.ForEach<byte> (bufferResult, elem => strOut += (char)sboxResult[elem]);
+ return strOut;
+ }
+ }
+}
diff --git a/cs/arris/arris/arris.csproj b/cs/arris/arris/arris.csproj
new file mode 100644
index 0000000..5766bb2
--- /dev/null
+++ b/cs/arris/arris/arris.csproj
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+ <ProductVersion>8.0.50727</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{1D3AF72F-01D4-4B4A-A094-50FAA0F1B0D2}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <RootNamespace>arris</RootNamespace>
+ <AssemblyName>arris</AssemblyName>
+ <StartupObject>ArrisPassword.Program</StartupObject>
+ <CodePage>65001</CodePage>
+ <AssemblyOriginatorKeyFile>..\..\..\Zeichnung.png</AssemblyOriginatorKeyFile>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <DefineConstants>DEBUG</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <PlatformTarget>x86</PlatformTarget>
+ <Externalconsole>true</Externalconsole>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+ <DebugType>none</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <PlatformTarget>x86</PlatformTarget>
+ <Externalconsole>true</Externalconsole>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="Microsoft.VisualBasic" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Main.cs" />
+ <Compile Include="AssemblyInfo.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <ProjectExtensions>
+ <MonoDevelop>
+ <Properties InternalTargetFrameworkVersion="3.5">
+ <MonoDevelop.Autotools.MakefileInfo RelativeMakefileName="Makefile" SyncReferences="true">
+ <BuildFilesVar Sync="true" Name="FILES" />
+ <DeployFilesVar />
+ <ResourcesVar Sync="true" Name="RESOURCES" />
+ <OthersVar />
+ <GacRefVar Sync="true" Name="REFERENCES" />
+ <AsmRefVar Sync="true" Name="REFERENCES" />
+ <ProjectRefVar Sync="true" Name="REFERENCES" />
+ </MonoDevelop.Autotools.MakefileInfo>
+ </Properties>
+ </MonoDevelop>
+ </ProjectExtensions>
+</Project> \ No newline at end of file