Changeset 744 for trunk/CrypPlugins/SDES


Ignore:
Timestamp:
Oct 19, 2009, 3:39:58 PM (12 years ago)
Author:
kopal
Message:
  • KeySearcher now has a first QuickWatchPresentation
  • SDES now works with KeySearcher
  • actualized sample for KeySearcher
File:
1 edited

Legend:

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

    r743 r744  
    282282                listCryptoolStreamsOut.Clear();
    283283
    284                 if (controlSlave != null)
    285                     controlSlave.Dispose();
    286 
    287284            }
    288285            catch (Exception ex)
     
    527524            {
    528525                GuiLogMessage(exception.Message, NotificationLevel.Error);
     526                GuiLogMessage(exception.StackTrace, NotificationLevel.Error);
    529527            }
    530528            finally
     
    546544        private SDES plugin;
    547545        private byte[] input;
    548         private List<CryptoolStream> listCryptoolStreams = new List<CryptoolStream>();
    549546        ElectronicCodeBook ecb;
    550547        CipherBlockChaining cbc;
     
    586583        public byte[] Encrypt(byte[] key, int blocksize)
    587584        {
    588             ((SDESSettings)plugin.Settings).Action = 0;
    589             return execute(key, blocksize);
     585            return execute(key, blocksize, 0);
    590586        }
    591587
     
    598594        public byte[] Decrypt(byte[] key, int blocksize)
    599595        {
    600             ((SDESSettings)plugin.Settings).Action = 1;
    601             return execute(key, blocksize);
     596            return execute(key, blocksize, 1);
    602597        }
    603598
     
    631626                    bkey[count++] = 1;
    632627            return bkey;
    633         }
    634 
    635         /// <summary>
    636         /// Called by the SDES plugin if it is disposing
    637         /// closes all privaet streams
    638         /// </summary>
    639         public void Dispose()
    640         {
    641             foreach (CryptoolStream cs in listCryptoolStreams)
    642                 cs.Close();
    643         }
     628        }       
    644629
    645630        #endregion
     
    653638        /// <param name="blocksize">blocksize</param>
    654639        /// <returns>encrypted/decrypted text</returns>
    655         private byte[] execute(byte[] key, int blocksize)
     640        private byte[] execute(byte[] key, int blocksize, int action)
    656641        {
    657642            byte[] output;
     
    678663         
    679664            System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
    680             if (((SDESSettings)plugin.Settings).Mode == 0)
     665            if (((SDESSettings)plugin.Settings).Mode == 0 && action == 0)
    681666            {                               
    682                 output = ecb.decrypt(input, key, blocksize);
    683             }
    684             else
     667                output = ecb.encrypt(input, key, blocksize);
     668            }
     669            else if(((SDESSettings)plugin.Settings).Mode == 1 && action == 0)
    685670            {               
    686                 output = cbc.decrypt(input, key, Tools.stringToBinaryByteArray(enc.GetString(plugin.InputIV)),blocksize);
     671                output = cbc.encrypt(input, key, Tools.stringToBinaryByteArray(enc.GetString(plugin.InputIV)),blocksize);
    687672            }           
    688            
     673            else if(((SDESSettings)plugin.Settings).Mode == 0 && action == 1)
     674            {
     675                output = ecb.decrypt(input, key,blocksize);
     676            }
     677            else if (((SDESSettings)plugin.Settings).Mode == 1 && action == 1)
     678            {
     679                output = cbc.decrypt(input, key, Tools.stringToBinaryByteArray(enc.GetString(plugin.InputIV)), blocksize);
     680            }   
    689681            return output;
    690682        }
     
    17651757            int position = 0;
    17661758
    1767             while ((inputstream.Read(buffer, 0, 1)) > 0 && !this.mSdes.getStop())
     1759            while (!this.mSdes.getStop() && (inputstream.Read(buffer, 0, 1)) > 0)
    17681760            {
    17691761                //Step 1 get plaintext symbol
     
    18231815            int position = 0;
    18241816
    1825             while ((inputstream.Read(buffer, 0, 1)) > 0 && !this.mSdes.getStop())
     1817            while (!this.mSdes.getStop() && (inputstream.Read(buffer, 0, 1)) > 0)
    18261818            {
    18271819                //Step 1 get Symbol of Ciphertext
     
    19001892            int position = 0;
    19011893
    1902             while ((inputstream.Read(buffer, 0, 1)) > 0 && !this.mSdes.getStop())
     1894            while (!this.mSdes.getStop() && (inputstream.Read(buffer, 0, 1)) > 0)
    19031895            {
    19041896                //Step 1 get plaintext symbol
     
    19551947            int position = 0;
    19561948
    1957             while ((inputstream.Read(buffer, 0, 1)) > 0 && !this.mSdes.getStop())
     1949            while (!this.mSdes.getStop() && (inputstream.Read(buffer, 0, 1)) > 0)
    19581950            {
    19591951                //Step 1 get plaintext symbol
Note: See TracChangeset for help on using the changeset viewer.