Changeset 1182


Ignore:
Timestamp:
Feb 24, 2010, 6:51:12 PM (12 years ago)
Author:
arnold
Message:

Fixed serialization bug in KeyPattern, so AES bruteforcing will be possible now
Fixed AES Bruteforce Sample (there were wrong Modi settings)

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/KeyPatternJob/DistributableKeyPatternJob.cs

    r1178 r1182  
    9696        }
    9797
     98        #endregion
     99
    98100        public DistributableKeyPatternJob(KeyPattern pattern, BigInteger partSize, byte[] encryptData, byte[] initVector)
    99101        {
     
    109111            this.GlobalResultList = new LinkedList<KeySearcher.KeySearcher.ValueKey>();
    110112        }
    111 
    112         #endregion
    113113
    114114        #region IDistributableJob Members
  • trunk/CrypPlugins/KeySearcher/KeyPattern.cs

    r1137 r1182  
    2222using System.Collections;
    2323using Cryptool.Plugins.PeerToPeer.Jobs;
     24using System.IO;
    2425
    2526namespace KeySearcher
     
    443444                    byte[] byteWildCard = encoder.GetBytes(wildcardKey);
    444445                    byte[] bytePattern = encoder.GetBytes(pattern);
    445                     retByte = new byte[byteWildCard.Length + bytePattern.Length + 2];
    446                     retByte[0] = (byte)byteWildCard.Length;
    447                     Buffer.BlockCopy(byteWildCard, 0, retByte, 1, byteWildCard.Length);
    448                     retByte[byteWildCard.Length + 1] = (byte)bytePattern.Length;
    449                     Buffer.BlockCopy(bytePattern, 0, retByte, byteWildCard.Length + 2, bytePattern.Length);
     446                    byte[] byteWildCardLen = BitConverter.GetBytes(byteWildCard.Length);
     447                    byte[] bytePatternLen = BitConverter.GetBytes(bytePattern.Length);
     448                    MemoryStream memStream = new MemoryStream();
     449                    try
     450                    {
     451                        memStream.Write(byteWildCardLen, 0, byteWildCardLen.Length);
     452                        memStream.Write(byteWildCard, 0, byteWildCard.Length);
     453                        memStream.Write(bytePatternLen, 0, bytePatternLen.Length);
     454                        memStream.Write(bytePattern, 0, bytePattern.Length);
     455                        retByte = memStream.ToArray();
     456                    }
     457                    catch (Exception ex)
     458                    {
     459                        throw ex;
     460                    }
     461                    finally
     462                    {
     463                        memStream.Flush();
     464                        memStream.Close();
     465                        memStream.Dispose();
     466                    }
     467                    //retByte = new byte[byteWildCardLen.Length + byteWildCard.Length + bytePatternLen.Length + bytePattern.Length];
     468                    //Buffer.BlockCopy(byteWildCardLen, 0, retByte, 0, byteWildCardLen.Length);
     469                    //Buffer.BlockCopy(byteWildCard, 0, retByte, byteWildCard.Length, byteWildCard.Length);
     470                    //retByte[byteWildCard.Length + 1] = (byte)bytePattern.Length;
     471                    //Buffer.BlockCopy(bytePattern, 0, retByte, byteWildCard.Length + 2, bytePattern.Length);
    450472                }
    451473                else
     
    473495            string pattern_temp;
    474496
    475             int iWildCardLen = serializedPattern[0];
    476             wildcardKey_temp = encoder.GetString(serializedPattern, 1, iWildCardLen);
    477             int iPatternLen = serializedPattern[iWildCardLen + 1];
    478             pattern_temp = encoder.GetString(serializedPattern, iWildCardLen + 2, iPatternLen);
     497            MemoryStream memStream = new MemoryStream(serializedPattern);
     498            try
     499            {
     500                /* So i always have the same byte length for int32 values */
     501                int iTest = 500;
     502                int int32ByteLen = BitConverter.GetBytes(iTest).Length;
     503
     504                // Wildcard length and value
     505                byte[] byteLen = new byte[int32ByteLen];
     506                memStream.Read(byteLen, 0, byteLen.Length);
     507                byte[] byteWildcard = new byte[BitConverter.ToInt32(byteLen, 0)];
     508                memStream.Read(byteWildcard, 0, byteWildcard.Length);
     509
     510                wildcardKey_temp = encoder.GetString(byteWildcard, 0, byteWildcard.Length);
     511
     512
     513                // Pattern length and value
     514                memStream.Read(byteLen, 0, byteLen.Length);
     515                byte[] bytePattern = new byte[BitConverter.ToInt32(byteLen, 0)];
     516                memStream.Read(bytePattern, 0, bytePattern.Length);
     517
     518                pattern_temp = encoder.GetString(bytePattern, 0, bytePattern.Length);
     519
     520            }
     521            catch (Exception ex)
     522            {
     523                throw ex;
     524            }
     525            finally
     526            {
     527                memStream.Flush();
     528                memStream.Close();
     529                memStream.Dispose();
     530            }
     531
     532            //int iWildCardLen = serializedPattern[0];
     533            //wildcardKey_temp = encoder.GetString(serializedPattern, 1, iWildCardLen);
     534            //int iPatternLen = serializedPattern[iWildCardLen + 1];
     535            //pattern_temp = encoder.GetString(serializedPattern, iWildCardLen + 2, iPatternLen);
    479536
    480537            keyPatternToReturn = new KeyPattern(pattern_temp);
Note: See TracChangeset for help on using the changeset viewer.