Ignore:
Timestamp:
Feb 17, 2009, 7:36:05 PM (13 years ago)
Author:
Gerhard Junker
Message:

2FISH - first fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SSCext/SSC2fish.cs

    r160 r226  
    7676      key = rgbKey;
    7777
    78       if (cipherMode == CipherMode.CBC)
    79         iv = rgbIV;
    80 
    81       int kl = rgbKey.Length * 8;
    82       if (ValidKeySize(kl)) keySize = kl;
     78      Array.Clear(iv, 0, iv.Length);
     79
     80      if (null != rgbIV)
     81      {
     82          for (int i = 0; i < iv.Length && i < rgbIV.Length; i++)
     83              iv[i] = rgbIV[i];
     84      }
     85
     86        int kl = rgbKey.Length * 8;
     87        if (ValidKeySize(kl)) keySize = kl;
    8388
    8489      return new TwofishEncryption(keySize, ref key, ref iv, cipherMode,
     
    98103      key = rgbKey; // this appears to make a new copy
    99104
    100       if (cipherMode == CipherMode.CBC)
    101         iv = rgbIV;
     105      Array.Clear(iv, 0, iv.Length);
     106
     107      if (null != rgbIV)
     108      {
     109          for (int i = 0; i < iv.Length && i < rgbIV.Length; i++)
     110              iv[i] = rgbIV[i];
     111      }
    102112
    103113      int kl = rgbKey.Length * 8;
     
    115125    {
    116126      if ((iv == null) || (iv.Length == 0))
    117         iv  = new byte[blockSize / 8]; // zeroed by default
     127        iv  = new byte[16]; // zeroed by default
    118128      else
    119         Array.Clear(iv, 0, IV.Length);
     129        Array.Clear(iv, 0, iv.Length);
    120130    }
    121131
     
    265275      set
    266276      {
    267         iv = value;
     277          Array.Clear(iv, 0, iv.Length);
     278          for (int i = 0; i < iv.Length && i < value.Length; i++ )
     279              iv[i] = value[i];
    268280      }
    269281      get
Note: See TracChangeset for help on using the changeset viewer.