Changeset 286 for trunk/CrypPlugins/LFSR


Ignore:
Timestamp:
Apr 13, 2009, 7:25:02 PM (13 years ago)
Author:
Sören Rinne
Message:
  • revised Clock plugin
  • changed some LFSR features
  • added XOR that takes Boolean inputs and fires Output only when both inputs are fresh
Location:
trunk/CrypPlugins/LFSR
Files:
2 edited

Legend:

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

    r285 r286  
    3636        private bool outputBool;
    3737        private bool inputClockBool;
    38         private bool stop = false;
    39         private int outputInt;
    40         //private bool getNewSeed = true;
     38       
    4139        private LFSRPresentation lFSRPresentation;
    4240        private List<CryptoolStream> listCryptoolStreamsOut = new List<CryptoolStream>();
    4341
    4442        #endregion
     43
     44        public bool stop = false;
     45        public bool newSeed = true;
     46        public String seedbuffer = "0";
     47        public String tapSequencebuffer = "1";
     48        public Char outputbuffer = '0';
    4549
    4650        public LFSR()
     
    126130        public CryptoolStream OutputStream
    127131        {
    128             [MethodImpl(MethodImplOptions.Synchronized)]
     132            //[MethodImpl(MethodImplOptions.Synchronized)]
    129133            get
    130134            {
     
    138142                return null;
    139143            }
    140             [MethodImpl(MethodImplOptions.Synchronized)]
     144            //[MethodImpl(MethodImplOptions.Synchronized)]
    141145            set
    142146            {
     
    150154        public bool OutputBool
    151155        {
    152             [MethodImpl(MethodImplOptions.Synchronized)]
    153156            get { return outputBool; }
    154             [MethodImpl(MethodImplOptions.Synchronized)]
    155157            set
    156158            {
    157159                outputBool = (bool)value;
    158160                OnPropertyChanged("OutputBool");
    159             }
    160         }
    161 
    162         [PropertyInfo(Direction.Output, "Int Output", "Int Output.", "", true, false, DisplayLevel.Beginner, QuickWatchFormat.Text, null)]
    163         public int OutputInt
    164         {
    165             [MethodImpl(MethodImplOptions.Synchronized)]
    166             get { return outputInt; }
    167             [MethodImpl(MethodImplOptions.Synchronized)]
    168             set
    169             {
    170                 outputInt = (int)value;
    171                 OnPropertyChanged("OutputInt");
    172161            }
    173162        }
     
    298287                GuiLogMessage("inputTapSequence length [bits]: " + tapSequenceBits.ToString(), NotificationLevel.Debug);
    299288                GuiLogMessage("inputSeed length [bits]: " + seedBits.ToString(), NotificationLevel.Debug);
    300                
    301                 String seedbuffer = "0";
    302                 String tapSequencebuffer;
    303                 Char outputbuffer;
    304 
    305                 //read seed one time until stop of chain
    306                 /*if (getNewSeed)
     289
     290                //read seed only one time until stop of chain
     291                if (newSeed)
    307292                {
    308293                    seedbuffer = inputSeed;
    309                     getNewSeed = false;
    310                 }*/
    311                 seedbuffer = inputSeed;
     294                    newSeed = false;
     295                }
     296                //seedbuffer = inputSeed;
    312297               
    313298                // read tapSequence
     
    375360
    376361                // check if Rounds are given
    377                 int defaultRounds = 4;
     362                int defaultRounds = 1;
    378363                int actualRounds;
    379364
    380365                // check if Rounds in settings are given
    381                 if (settings.Rounds == 0) actualRounds = defaultRounds; else actualRounds = settings.Rounds;
     366                //if (settings.Rounds == 0) actualRounds = defaultRounds; else actualRounds = settings.Rounds;
     367                actualRounds = defaultRounds;
    382368               
    383369                // Here we go!
     
    399385                        StatusChanged((int)LFSRImage.Encode);
    400386
    401                         // make int output
    402                         if (seedCharArray[seedBits - 1] == '0') outputInt = 0;
    403                         else outputInt = 1;
    404 
    405387                        // make bool output
    406388                        if (seedCharArray[seedBits - 1] == '0') outputBool = false;
     
    414396                        // update outputs
    415397                        OnPropertyChanged("OutputBool");
    416                         OnPropertyChanged("OutputInt");
    417398                        OnPropertyChanged("OutputStream");
    418399
     
    454435
    455436                        // write current "seed" back to seedbuffer
    456                         //seedbuffer = seedCharArray.ToString();
     437                        seedbuffer = null;
     438                        foreach (char c in seedCharArray) seedbuffer += c;
    457439
    458440                        //GuiLogMessage("New Bit: " + newBit.ToString(), NotificationLevel.Info);
     
    536518        {
    537519            StatusChanged((int)LFSRImage.Default);
    538             //getNewSeed = true;
    539             this.stop = true;
     520            newSeed = true;
     521            stop = true;
    540522        }
    541523
  • trunk/CrypPlugins/LFSR/LFSRSettings.cs

    r277 r286  
    2222        private bool hasChanges = false;
    2323       
    24         private int rounds = 4; //how many bits will be generated
     24        /*private int rounds = 4; //how many bits will be generated
    2525        //[ContextMenu("Rounds", "How many bits shall be generated?", 1, DisplayLevel.Beginner, ContextMenuControlType.ComboBox, new int[] { 10, 50, 100 }, "10 bits", "50 bits", "100 bits")]
    2626        //[TaskPane("Rounds", "How many bits shall be generated?", null, 1, false, DisplayLevel.Beginner, ControlType.TextBox)]
     
    3434                HasChanges = true;
    3535            }
    36         }
     36        }*/
    3737
    3838        private bool useBoolClock = false;
Note: See TracChangeset for help on using the changeset viewer.