Ignore:
Timestamp:
Dec 2, 2008, 5:20:32 PM (13 years ago)
Author:
Gerhard Junker
Message:

whirpool first working state :-) please test it

Location:
trunk/CrypPlugins/Whirlpool
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/Whirlpool/Whirlpool.csproj

    r102 r105  
    33    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    44    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    5     <ProductVersion>9.0.30729</ProductVersion>
     5    <ProductVersion>9.0.21022</ProductVersion>
    66    <SchemaVersion>2.0</SchemaVersion>
    77    <ProjectGuid>{3A68ECB5-6074-4A8D-A6BD-2413C5A4B243}</ProjectGuid>
     
    5252    <Compile Include="Properties\AssemblyInfo.cs" />
    5353    <Compile Include="WhirlpoolPlugin.cs" />
     54    <Compile Include="WhirlpoolSettings.cs" />
    5455  </ItemGroup>
    5556  <ItemGroup>
  • trunk/CrypPlugins/Whirlpool/WhirlpoolPlugin.cs

    r102 r105  
    4949                };
    5050
     51        WhirlpoolSettings whirlpoolSetting = new WhirlpoolSettings();
    5152
    5253                /// <summary>
     
    6364                public ISettings Settings
    6465                {
    65                         get;
    66                         set;
     66                        get
     67            {
     68                return whirlpoolSetting;
     69            }
    6770                }
    6871
     
    7174
    7275                // Input input
    73                 private byte[] input = { };
     76        private static byte[] empty = {};
     77                private byte[] input = empty;
    7478                private dataCanal inputCanal = dataCanal.none;
    7579
     
    98102                        set
    99103                        {
    100                                 if (null == value)
    101                                         return;
    102 
    103104                                if (inputCanal != dataCanal.none && inputCanal != dataCanal.streamCanal)
    104105                                        GuiLogMessage("Duplicate input key not allowed!", NotificationLevel.Error);
    105106                                inputCanal = dataCanal.streamCanal;
    106107
    107                                 long len = value.Length;
    108                                 input = new byte[len];
    109 
    110                                 for (long i = 0; i < len; i++)
    111                                         input[i] = (byte)value.ReadByte();
    112 
     108                if (null == value)
     109                    input = empty;
     110                else
     111                {
     112                    long len = value.Length;
     113                    input = new byte[len];
     114
     115                    for (long i = 0; i < len; i++)
     116                        input[i] = (byte)value.ReadByte();
     117                }
    113118                                NotifyUpdateInput();
    114119                                GuiLogMessage("InputStream changed.", NotificationLevel.Debug);
     
    133138                                inputCanal = dataCanal.byteCanal;
    134139
    135                                 long len = value.Length;
    136                                 input = new byte[len];
    137 
    138                                 for (long i = 0; i < len; i++)
    139                                         input[i] = value[i];
    140 
     140                if (null == value)
     141                    input = empty;
     142                else
     143                {
     144                                    long len = value.Length;
     145                                    input = new byte[len];
     146
     147                                    for (long i = 0; i < len; i++)
     148                                            input[i] = value[i];
     149                }
    141150                                NotifyUpdateInput();
    142                                 GuiLogMessage("KInputData changed.", NotificationLevel.Debug);
     151                                GuiLogMessage("InputData changed.", NotificationLevel.Debug);
    143152                        }
    144153                }
     
    212221                public void Hash()
    213222                {
    214                         // ToDo
     223            WhirlpoolHash wh = new WhirlpoolHash();
     224
     225            wh.Add(input);
     226            wh.Finish();
     227
     228            outputData = wh.Hash;
     229            wh = null;
     230
     231
    215232                        NotifyUpdateOutput();
    216233                }
  • trunk/CrypPlugins/Whirlpool/whirlpool.cs

    r102 r105  
    6464                }
    6565
     66        /// <summary>
     67        /// Adds the specified source.
     68        /// </summary>
     69        /// <param name="source">The source.</param>
     70        public void Add(byte[] source)
     71        {
     72            ulong bits = 0;
     73            if (null != source)
     74                bits = (ulong)source.Length * 8;
     75            Add(source, bits);
     76        }
    6677
    6778                /// <summary>
     
    208219                        processBuffer();
    209220
    210                         byte[] digest = new byte[DIGESTBYTES];
     221                        digest = new byte[DIGESTBYTES];
    211222
    212223                        for (int i = 0; i < DIGESTBYTES / 8; i++)
Note: See TracChangeset for help on using the changeset viewer.