Ignore:
Timestamp:
Dec 5, 2008, 10:55:45 AM (13 years ago)
Author:
Gerhard Junker
Message:

pkcs5: change of hmac changes length now

Location:
trunk/CrypPlugins/PKCS5
Files:
3 edited

Legend:

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

    r119 r121  
    2525namespace PKCS5
    2626{
    27     [Author("Gerhard Junker", null, "private project member", null)]
     27        [Author("Gerhard Junker", null, "private project member", "http://www.uni-siegen.de")]
    2828    [PluginInfo(false, "PKCS#5", "PKCS#5 V2.1 Hash", "", "PKCS5/PKCS5.png")]
    2929    public class PKCS5 : IHash
     
    7676                settings = (PKCS5Settings)value;
    7777                OnPropertyChanged("Settings");
    78                 NotifyUpdateKey();
    7978                GuiLogMessage("Settings changed.", NotificationLevel.Debug);
    8079            }
     
    278277        /// </summary>
    279278        /// <value>The output data stream.</value>
    280         [PropertyInfo(Direction.Output, "Hashed Stream", "Output stream of the hashed value", "", true, false, DisplayLevel.Beginner, QuickWatchFormat.Hex, null)]
     279        [PropertyInfo(Direction.Output, "Hashed Stream", "Output stream of the hashed value", "",
     280                                        true, false, DisplayLevel.Beginner, QuickWatchFormat.Hex, null)]
    281281        public CryptoolStream HashOutputStream
    282282        {
     
    302302        /// </summary>
    303303        /// <value>The output data.</value>
    304         [PropertyInfo(Direction.Output, "Hashed Data", "Output data of the hashed value", "", true, false, DisplayLevel.Beginner, QuickWatchFormat.Hex, null)]
     304        [PropertyInfo(Direction.Output, "Hashed Data", "Output data of the hashed value", "",
     305                                        true, false, DisplayLevel.Beginner, QuickWatchFormat.Hex, null)]
    305306        public byte[] HashOutputData
    306307        {
     
    325326        public void Hash()
    326327        {
    327             System.Security.Cryptography.PKCS5MaskGenerationMethod pkcs5Hash = new System.Security.Cryptography.PKCS5MaskGenerationMethod();
    328 
    329             pkcs5Hash.SelectedShaFunction = (PKCS5MaskGenerationMethod.ShaFunction)settings.SHAFunction;
    330 
    331             outputData = pkcs5Hash.GenerateMask(this.key, this.salt, settings.Count, settings.Length >> 3);
     328            System.Security.Cryptography.PKCS5MaskGenerationMethod pkcs5Hash =
     329                                                        new System.Security.Cryptography.PKCS5MaskGenerationMethod();
     330
     331            pkcs5Hash.SelectedShaFunction =
     332                                                        (PKCS5MaskGenerationMethod.ShaFunction)settings.SHAFunction;
     333
     334            outputData =
     335                                                        pkcs5Hash.GenerateMask(this.key, this.salt, settings.Count, settings.Length >> 3);
    332336
    333337            NotifyUpdateOutput();
     
    467471        private void GuiLogMessage(string message, NotificationLevel logLevel)
    468472        {
    469             EventsHelper.GuiLogMessage(OnGuiLogNotificationOccured, this, new GuiLogEventArgs(message, this, logLevel));
     473            EventsHelper.GuiLogMessage(OnGuiLogNotificationOccured, this,
     474                                                        new GuiLogEventArgs(message, this, logLevel));
    470475        }
    471476
  • trunk/CrypPlugins/PKCS5/PKCS5Settings.cs

    r119 r121  
    4141                        /// selected internal hash HMAC function
    4242                        /// </summary>
    43                           private PKCS5MaskGenerationMethod.ShaFunction selectedShaFunction = PKCS5MaskGenerationMethod.ShaFunction.SHA256;
     43                          private PKCS5MaskGenerationMethod.ShaFunction selectedShaFunction
     44                                        = PKCS5MaskGenerationMethod.ShaFunction.SHA256;
    4445
    45         [ContextMenu("SHA Function", "Select the hash function (MD5, SHA1 or one out of the SHA2 family)", 0, DisplayLevel.Beginner, ContextMenuControlType.ComboBox, null, new string[] {"MD5", "SHA1", "SHA256", "SHA384", "SHA512"})]
    46         [TaskPane("Select hash function", "Select the hash function (MD2, SHA1 or one out of the SHA2 family)", "", 0, true, DisplayLevel.Beginner, ControlType.ComboBox, new string[] { "MD5", "SHA1", "SHA256", "SHA384", "SHA512" })]
     46        [ContextMenu("SHA Function",
     47                                        "Select the hash function (MD5, SHA1 or one out of the SHA2 family)", 0,
     48                                        DisplayLevel.Beginner, ContextMenuControlType.ComboBox, null,
     49                                        new string[] {"MD5", "SHA1", "SHA256", "SHA384", "SHA512"})]
     50        [TaskPane("Select hash function",
     51                                        "Select the hash function (MD2, SHA1 or one out of the SHA2 family)", "", 0, true,
     52                                        DisplayLevel.Beginner, ControlType.ComboBox,
     53                                        new string[] { "MD5", "SHA1", "SHA256", "SHA384", "SHA512" })]
    4754        public int SHAFunction
    4855        {
     
    5461            {
    5562                this.selectedShaFunction = (PKCS5MaskGenerationMethod.ShaFunction)value;
    56                 hasChanges = true;
    57                 OnPropertyChanged("Settings");
     63                                                                //CheckLength();
     64                                                                // set to max hash length
     65                                                                length = PKCS5MaskGenerationMethod.GetHashLength(selectedShaFunction) * 8;
     66                                                                hasChanges = true;
     67                                                                OnPropertyChanged("SHAFunction");
     68                                                                OnPropertyChanged("Length");
    5869            }
    5970        }
     
    6374                        /// </summary>
    6475                                private int count = 1000;
    65         [TaskPane("Number of iterations (counter)", "The counter determines how often the hash function is applied. A value bigger than 1000 is recommended.", "", 1, false, DisplayLevel.Beginner, ControlType.TextBox, ValidationType.RangeInteger, 1, 9999)]
     76        [TaskPane("Number of iterations (counter)",
     77                                        "The counter determines how often the hash function is applied." +
     78                                        " A value bigger than 1000 is recommended.", "", 1, false,     
     79                                        DisplayLevel.Beginner, ControlType.TextBox, ValidationType.RangeInteger, 1, 9999)]
    6680        public int Count
    6781        {
     
    7690                    count = 1000;
    7791                hasChanges = true;
    78                 OnPropertyChanged("Settings");
     92                OnPropertyChanged("Count");
    7993            }
    8094        }
     
    8498                        /// </summary>
    8599                                private int length = 256;
    86         [TaskPane("Length of output key", "The length of the output in bits must be a multiple of 8.", "", 2, false, DisplayLevel.Beginner, ControlType.TextBox, ValidationType.RangeInteger, -64, 2048)]
     100        [TaskPane("Length of output key",
     101                                        "The length of the output in bits must be a multiple of 8.", "", 2, false,
     102                                        DisplayLevel.Beginner, ControlType.TextBox, ValidationType.RangeInteger, -64, 2048)]
    87103                                public int Length
    88104                                {
     
    100116                                                        length++;
    101117
     118                                                //CheckLength();
     119
    102120                                                hasChanges = true;
    103                                                 OnPropertyChanged("Settings");
     121                                                OnPropertyChanged("Length");
    104122                                        }
    105123                                }
    106124
    107 
     125                                /// <summary>
     126                                /// Checks the length.
     127                                /// </summary>
     128                                private void CheckLength()
     129                                {
     130                                        // get max length of this hash
     131                                        int newlen = PKCS5MaskGenerationMethod.GetHashLength(selectedShaFunction) * 8;
     132                                        if (newlen < length)
     133                                        {
     134                                                length = newlen; // reduce it to max length
     135                                                hasChanges = true;
     136                                        }
     137                                }
    108138
    109139        /// <summary>
  • trunk/CrypPlugins/PKCS5/SSCpkcs5.cs

    r38 r121  
    6060        }
    6161
    62         /// <summary>
    63         /// Gets the length of the hash.
    64         /// </summary>
    65         /// <param name="shaf">The shaf.</param>
    66         /// <returns></returns>
    67         private int GetHashLength()
    68         {
    69             switch (this.SelectedShaFunction)
     62
     63                                /// <summary>
     64                                /// Gets the length of the hash.
     65                                /// </summary>
     66                                /// <param name="SelectedShaFunction">The selected sha function.</param>
     67                                /// <returns></returns>
     68                                public static int GetHashLength(ShaFunction SelectedShaFunction)
     69        {
     70            switch (SelectedShaFunction)
    7071            {
    7172                case ShaFunction.MD5:
     
    226227                count = 1;
    227228
    228             int hLen = GetHashLength();
     229                                                int hLen = GetHashLength(this.SelectedShaFunction);
    229230
    230231            // Let blockCount be the number of hLen-bytes blocks in the derived key, rounding up,
Note: See TracChangeset for help on using the changeset viewer.