Ignore:
Timestamp:
Oct 23, 2010, 7:39:00 PM (11 years ago)
Author:
Sven Rech
Message:

new key finding algorithm for KeySearcher

This update is really huge.

Location:
trunk/CrypPlugins/SDES
Files:
2 edited

Legend:

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

    r1932 r2010  
    2929using System.Windows.Threading;
    3030using System.Runtime.InteropServices;
     31using KeySearcher.KeyPattern;
    3132
    3233namespace Cryptool.Plugins.Cryptography.Encryption
     
    628629        }
    629630
    630         /// <summary>
    631         /// Makes a byte Array out of a String
    632         /// example
    633         /// "10101" -> 1,0,1,0,1
    634         ///
    635         /// A 0 is interpreted as 0
    636         /// any other character as 1
    637         /// </summary>
    638         /// <param name="key"></param>
    639         /// <returns></returns>
    640         public byte[] getKeyFromString(string key)
    641         {
    642             byte[] bkey = new byte[10];
    643             int count = 0;
    644             foreach (char c in key)
    645                 if (c == '*')
    646                     return null;    //blocks not supported yet
    647                 else if (c == '0')
    648                     bkey[count++] = 0;
    649                 else
    650                     bkey[count++] = 1;
    651             return bkey;
    652         }
    653 
    654631        public IControlEncryption clone()
    655632        {
     
    738715        }
    739716
     717        public void changeSettings(string setting, object value)
     718        {
     719
     720        }
     721
     722        public KeyTranslator getKeyTranslator()
     723        {
     724            return new SDESKeyTranslator();
     725        }
     726
    740727        #endregion
    741 
    742         #region IControlEncryption Member
    743 
    744 
    745         public void changeSettings(string setting, object value)
    746         {
    747 
    748         }
     728    }
     729
     730    class SDESKeyTranslator : KeyTranslator
     731    {
     732        private KeyPattern pattern;
     733        private int progress = 0;
     734
     735        #region KeyTranslator Members
     736
     737        public void SetKeys(object keys)
     738        {
     739            if (!(keys is KeyPattern))
     740                throw new Exception("Something went horribly wrong!");
     741
     742            pattern = (KeyPattern)keys;
     743        }
     744
     745        public byte[] GetKey()
     746        {
     747            string key = pattern.getKey();
     748            byte[] bkey = new byte[10];
     749            int count = 0;
     750            foreach (char c in key)
     751                if (c == '0')
     752                    bkey[count++] = 0;
     753                else
     754                    bkey[count++] = 1;
     755            return bkey;
     756        }
     757
     758        public bool NextKey()
     759        {
     760            progress++;           
     761            return pattern.nextKey();
     762        }
     763
     764        public string GetKeyRepresentation()
     765        {
     766            return pattern.getKey();
     767        }
     768
     769        public int GetProgress()
     770        {
     771            int result = progress;
     772            progress = 0;
     773            return result;
     774        }
     775
    749776        #endregion
    750777    }
  • trunk/CrypPlugins/SDES/SDES.csproj

    r1487 r2010  
    137137      <Private>False</Private>
    138138    </ProjectReference>
     139    <ProjectReference Include="..\KeySearcher\KeySearcher.csproj">
     140      <Project>{0579E099-66B2-43C3-B8A0-43CAE4895E68}</Project>
     141      <Name>KeySearcher</Name>
     142    </ProjectReference>
    139143  </ItemGroup>
    140144  <ItemGroup>
Note: See TracChangeset for help on using the changeset viewer.