Changeset 327


Ignore:
Timestamp:
May 28, 2009, 12:16:36 AM (13 years ago)
Author:
Sören Rinne
Message:
  • changed some icons
  • added short description for BerlekampMassey
Location:
trunk/CrypPlugins
Files:
5 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/BerlekampMassey/BerlekampMassey.cs

    r304 r327  
    220220{
    221221    [Author("Soeren Rinne", "soeren.rinne@cryptool.de", "Ruhr-Universitaet Bochum, Chair for System Security", "http://www.trust.rub.de/")]
    222     [PluginInfo(false, "BerlekampMassey", "Berlekamp-Massey-Algorithm", "BerlekampMassey/DetailedDescription/Description.xaml", "BerlekampMassey/Images/icon.png", "BerlekampMassey/Images/icon.png", "BerlekampMassey/Images/icon.png")]
     222    [PluginInfo(false, "BerlekampMassey", "Berlekamp-Massey-Algorithm", "BerlekampMassey/DetailedDescription/Description.xaml", "BerlekampMassey/Images/icon2.png", "BerlekampMassey/Images/icon2.png", "BerlekampMassey/Images/icon2.png")]
    223223    public class BerlekampMassey : IThroughput
    224224    {
  • trunk/CrypPlugins/BerlekampMassey/BerlekampMassey.csproj

    r304 r327  
    6565  </ItemGroup>
    6666  <ItemGroup>
    67     <Resource Include="Images\icon.png" />
    68   </ItemGroup>
    69   <ItemGroup>
    7067    <ProjectReference Include="..\..\CrypPluginBase\CrypPluginBase.csproj">
    7168      <Project>{25DB2B47-A457-4EC2-960B-395CE07AE093}</Project>
     
    7875      <SubType>Designer</SubType>
    7976    </Resource>
     77    <Resource Include="Images\icon2.png" />
    8078  </ItemGroup>
    8179  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  • trunk/CrypPlugins/BerlekampMassey/DetailedDescription/Description.xaml

    r304 r327  
    55  <Paragraph>
    66      <Run FontWeight="Bold" FontSize="14" FontFamily="Calibri" xml:lang="de-de">
    7         XOR (Exclusive Or)
     7        Berlekamp-Massey algorithm
    88      </Run>
    99  </Paragraph>
    1010  <Paragraph>
    11       <Run FontSize="11" FontFamily="Cambria" xml:lang="de-de">Simple binary XOR.</Run>
     11      <Run FontSize="11" FontFamily="Cambria" xml:lang="de-de">
     12      The Berlekamp–Massey algorithm is an algorithm for finding the shortest linear feedback shift register (LFSR) with length L for a given output sequence. Equivalently, it is an algorithm for finding the minimal polynomial C(D) of a linearly recurrent sequence.
     13      The algorithm was invented by Elwyn Berlekamp in 1968. Its connection to linear codes was observed by James Massey the following year. It became the key to practical application of the now ubiquitous Reed–Solomon code.
     14      </Run>
    1215  </Paragraph>
    1316</FlowDocument>
  • trunk/CrypPlugins/BinaryFunctionParser/BinaryFunctionParser.cs

    r318 r327  
    2020{
    2121    [Author("Soeren Rinne", "soeren.rinne@cryptool.de", "Ruhr-Universitaet Bochum, Chair for System Security", "http://www.trust.rub.de/")]
    22     [PluginInfo(false, "BinaryFunctionParser", "Binary Function Parser", null, "BinaryFunctionParser/Images/icon.png")]
     22    [PluginInfo(false, "Binary Function Parser", "Binary Function Parser. Computes the result of a boolean function f(i).", null, "BinaryFunctionParser/Images/icon2.png")]
    2323    public class BinaryFunctionParser : IThroughput
    2424    {
     
    2929        private bool inputVariableOne;
    3030        private bool inputVariableTwo;
    31         private bool inputVariableThree;
     31        private bool[] inputVariableThree;
    3232        private bool output;
    3333
     
    5353        }
    5454
    55         [PropertyInfo(Direction.Input, "BooleanFunction", "Boolean function to compute.", "", true, false, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
     55        [PropertyInfo(Direction.Input, "Boolean Function f(i)", "Boolean function f(i) to compute.", "", true, false, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
    5656        public String InputFunction
    5757        {
     
    6666        }
    6767
    68         [PropertyInfo(Direction.Input, "Function Variable One", "Input a boolean value to be processed by the function", "", false, true, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
     68        [PropertyInfo(Direction.Input, "Function Variable One (i_1)", "Input a boolean value to be processed by the function", "", false, true, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
    6969        public bool InputOne
    7070        {
     
    8989        }
    9090
    91         [PropertyInfo(Direction.Input, "Function Variable Two", "Input a boolean value to be processed by the function", "", false, true, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
     91        [PropertyInfo(Direction.Input, "Function Variable Two (i_2)", "Input a boolean value to be processed by the function", "", false, true, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
    9292        public bool InputTwo
    9393        {
     
    113113        }
    114114
    115         [PropertyInfo(Direction.Input, "Function Variable Three", "Input a boolean value to be processed by the function", "", false, true, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
    116         public bool InputThree
     115        [PropertyInfo(Direction.Input, "Function Variable Three (i_3j)", "Input a boolean value to be processed by the function", "", true, true, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
     116        public bool[] InputThree
    117117        {
    118118            [MethodImpl(MethodImplOptions.Synchronized)]
     
    226226        {
    227227            string strExpression;
    228             string strInputVariableOne, strInputVariableTwo, strInputVariableThree;
     228            string strInputVariableOne, strInputVariableTwo;
     229            char[] strInputVariableThree = new char[inputVariableThree.Length];
    229230
    230231            // get numeric values from bool inputs
    231232            if (inputVariableOne) strInputVariableOne = "1"; else strInputVariableOne = "0";
    232233            if (inputVariableTwo) strInputVariableTwo = "1"; else strInputVariableTwo = "0";
    233             if (inputVariableThree) strInputVariableThree = "1"; else strInputVariableThree = "0";
     234            //if (inputVariableThree) strInputVariableThree = "1"; else strInputVariableThree = "0";
     235            for (int i = 0; i < inputVariableThree.Length; i++)
     236            {
     237                strInputVariableThree[i] = inputVariableThree[i] ? '1' : '0';
     238            }
    234239
    235240            // replace variables with value
    236241            strExpression = strExpressionWithVariables.Replace("i_1", strInputVariableOne);
    237242            strExpression = strExpression.Replace("i_2", strInputVariableTwo);
    238             strExpression = strExpression.Replace("i_3", strInputVariableThree);
     243            for (int i = 0; i < inputVariableThree.Length; i++)
     244            {
     245                string replacement = "i_3" + i;
     246                strExpression = strExpression.Replace(replacement, strInputVariableThree[i].ToString());
     247            }
     248            //strExpression = strExpression.Replace("i_3", strInputVariableThree);
     249
     250            // replace AND, NAND, OR, NOR, XOR, NXOR with symbols
     251            // NAND => -
     252            strExpression = strExpression.Replace("NAND", "-");
     253            // AND => +
     254            strExpression = strExpression.Replace("AND", "+");
     255
     256            // NOR => _
     257            strExpression = strExpression.Replace("NOR", "_");
     258
     259            // NXOR => °
     260            strExpression = strExpression.Replace("NXOR", "°");
     261            // XOR => *
     262            strExpression = strExpression.Replace("XOR", "*");
     263
     264            // OR => |
     265            strExpression = strExpression.Replace("OR", "|");
     266
     267            // replace ^ and v with symbols
     268            // ^ => AND => +
     269            strExpression = strExpression.Replace("^", "+");
     270
     271            // v => OR => |
     272            strExpression = strExpression.Replace("v", "|");
    239273
    240274            return strExpression;
     
    247281
    248282            // test expression
    249             Regex objBoolExpression = new Regex("([0-1]([\\*]|[\\+]|[v])+[0-1]{1})");
     283            Regex objBoolExpression = new Regex("([0-1]([\\*]|[\\+]|[\\|]|[\\-]|[_]|[°]|[v]|[\\^])+[0-1]{1})");
    250284            if (!objBoolExpression.IsMatch(strExpression))
    251285            {
     
    261295        {
    262296            // fill tree
    263             //char[] charPolynomial = { '0', '*', '1', '+', '0', '*', '1', '+', '1' };
     297            //char[] charPolynomial = { '0', '*', '1', '+', '0', '*', '1', '+', '1' }; // sample for debug
    264298            char[] charPolynomial = strExpression.ToCharArray();
    265299            int i;
     
    328362                    break;
    329363
     364                case "-":
     365                    X = !(EvaluateTree(X, NodePointer.LeftChild) && EvaluateTree(X, NodePointer.RightChild));
     366                    break;
     367
    330368                case "*":
    331369                    X = EvaluateTree(X, NodePointer.LeftChild) ^ EvaluateTree(X, NodePointer.RightChild);
    332370                    break;
    333371
    334                 case "v":
     372                case "°":
     373                    X = !(EvaluateTree(X, NodePointer.LeftChild) ^ EvaluateTree(X, NodePointer.RightChild));
     374                    break;
     375
     376                case "|":
    335377                    X = EvaluateTree(X, NodePointer.LeftChild) | EvaluateTree(X, NodePointer.RightChild);
     378                    break;
     379
     380                case "_":
     381                    X = !(EvaluateTree(X, NodePointer.LeftChild) | EvaluateTree(X, NodePointer.RightChild));
    336382                    break;
    337383
  • trunk/CrypPlugins/BinaryFunctionParser/BinaryFunctionParser.csproj

    r318 r327  
    7171    <Resource Include="Images\icon.png" />
    7272  </ItemGroup>
     73  <ItemGroup>
     74    <Resource Include="Images\icon2.png" />
     75  </ItemGroup>
    7376  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    7477  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
  • trunk/CrypPlugins/TextInput/TextInput.cs

    r232 r327  
    266266      OnPropertyChanged("StreamOutput");
    267267      OnPropertyChanged("ByteArrayOutput");
     268      OnPropertyChanged("BoolArrayOutput");
    268269    }
    269270
     
    342343    public byte[] GetByteArray(bool showMessage)
    343344    {
    344       string data = (string)this.textInputPresentation.Dispatcher.Invoke(DispatcherPriority.Normal, (DispatcherOperationCallback)delegate
    345       {
    346         return textInputPresentation.textBoxInputText.Text;
    347       }, null);
    348 
    349       if ((data != null) && (data.Length != 0))
    350       {
    351         // here conversion happens       
    352         switch (settings.Encoding)
    353         {
    354           case TextInputSettings.EncodingTypes.Default:
    355             byteArrayOutput = Encoding.Default.GetBytes(data.ToCharArray());
    356             break;
    357           case TextInputSettings.EncodingTypes.Unicode:
    358             byteArrayOutput = Encoding.Unicode.GetBytes(data.ToCharArray());
    359             break;
    360           case TextInputSettings.EncodingTypes.UTF7:
    361             byteArrayOutput = Encoding.UTF7.GetBytes(data.ToCharArray());
    362             break;
    363           case TextInputSettings.EncodingTypes.UTF8:
    364             byteArrayOutput = Encoding.UTF8.GetBytes(data.ToCharArray());
    365             break;
    366           case TextInputSettings.EncodingTypes.UTF32:
    367             byteArrayOutput = Encoding.UTF32.GetBytes(data.ToCharArray());
    368             break;
    369           case TextInputSettings.EncodingTypes.ASCII:
    370             byteArrayOutput = Encoding.ASCII.GetBytes(data.ToCharArray());
    371             break;
    372           case TextInputSettings.EncodingTypes.BigEndianUnicode:
    373             byteArrayOutput = Encoding.BigEndianUnicode.GetBytes(data.ToCharArray());
    374             break;
    375           default:
    376             byteArrayOutput = Encoding.Default.GetBytes(data.ToCharArray());
    377             break;
     345        string data = (string)this.textInputPresentation.Dispatcher.Invoke(DispatcherPriority.Normal, (DispatcherOperationCallback)delegate
     346        {
     347            return textInputPresentation.textBoxInputText.Text;
     348        }, null);
     349
     350        if ((data != null) && (data.Length != 0))
     351        {
     352            // here conversion happens       
     353            switch (settings.Encoding)
     354            {
     355                case TextInputSettings.EncodingTypes.Default:
     356                    byteArrayOutput = Encoding.Default.GetBytes(data.ToCharArray());
     357                    break;
     358                case TextInputSettings.EncodingTypes.Unicode:
     359                    byteArrayOutput = Encoding.Unicode.GetBytes(data.ToCharArray());
     360                    break;
     361                case TextInputSettings.EncodingTypes.UTF7:
     362                    byteArrayOutput = Encoding.UTF7.GetBytes(data.ToCharArray());
     363                    break;
     364                case TextInputSettings.EncodingTypes.UTF8:
     365                    byteArrayOutput = Encoding.UTF8.GetBytes(data.ToCharArray());
     366                    break;
     367                case TextInputSettings.EncodingTypes.UTF32:
     368                    byteArrayOutput = Encoding.UTF32.GetBytes(data.ToCharArray());
     369                    break;
     370                case TextInputSettings.EncodingTypes.ASCII:
     371                    byteArrayOutput = Encoding.ASCII.GetBytes(data.ToCharArray());
     372                    break;
     373                case TextInputSettings.EncodingTypes.BigEndianUnicode:
     374                    byteArrayOutput = Encoding.BigEndianUnicode.GetBytes(data.ToCharArray());
     375                    break;
     376                default:
     377                    byteArrayOutput = Encoding.Default.GetBytes(data.ToCharArray());
     378                    break;
     379            }
     380            return byteArrayOutput;
    378381        }
    379         return byteArrayOutput;
    380       }
    381 
    382       return null;
     382
     383        return null;
     384    }
     385
     386    private bool[] boolArrayOutput;
     387    [PropertyInfo(Direction.Output, "BoolArray", "The text input converted to bool array ('0' char equals false, else true).", "", true, false, DisplayLevel.Beginner, QuickWatchFormat.None, null)]
     388    public bool[] BoolArrayOutput
     389    {
     390        [MethodImpl(MethodImplOptions.Synchronized)]
     391        get
     392        {
     393            // GuiLogMessage("Got request for BoolArray...", NotificationLevel.Debug);
     394            boolArrayOutput = GetBoolArray(true);
     395            if (boolArrayOutput == null)
     396            {
     397                GuiLogMessage("BoolArray: No input provided. Returning null", NotificationLevel.Warning);
     398                return null;
     399            }
     400            return boolArrayOutput;
     401        }
     402        set { } // readonly
     403    }
     404
     405    public bool[] GetBoolArray(bool showMessage)
     406    {
     407        string data = (string)this.textInputPresentation.Dispatcher.Invoke(DispatcherPriority.Normal, (DispatcherOperationCallback)delegate
     408        {
     409            return textInputPresentation.textBoxInputText.Text;
     410        }, null);
     411
     412        if ((data != null) && (data.Length != 0))
     413        {
     414            // convert data into char array
     415            char[] dataCharArray = data.ToCharArray();
     416
     417            boolArrayOutput = new bool[data.Length];
     418
     419            for (int i = 0; i < data.Length; i++)
     420            {
     421               boolArrayOutput[i] = (Convert.ToInt64(dataCharArray[i]) == 48) ? false : true;
     422               //if (Convert.ToInt64(dataCharArray[i]) == 48) boolArrayOutput[i] = false; else boolArrayOutput[i] = true;
     423            }
     424
     425            return boolArrayOutput;
     426        }
     427
     428        return null;
    383429    }
    384430
Note: See TracChangeset for help on using the changeset viewer.