Changeset 315


Ignore:
Timestamp:
May 19, 2009, 11:57:12 AM (13 years ago)
Author:
Gerhard Junker
Message:

Trac Ticket #52

Overflow etc..?? in buffer padding

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SSCext/TwofishEncryption.cs

    r226 r315  
    134134        {
    135135          outputBuffer = new byte[16]; // blocksize
    136           byte[] tmp = new byte[16];
    137136          uint[] x=new uint[4];
    138137
    139        
    140           // Padding
    141           Array.Clear(tmp, 0, tmp.Length);
    142           for (int i = 0; i < inputCount; i++)
    143               tmp[i] = inputBuffer[inputOffset + i];
    144 
    145        
    146138          // load it up
    147139          for (int i=0; i < 4; i++) // should be okay as we have already said to pad with zeros
    148140          {
    149141            x[i] =
    150               (uint)(tmp[i * 4 + 3] << 24) |
    151               (uint)(tmp[i * 4 + 2] << 16) |
    152               (uint)(tmp[i * 4 + 1] <<  8) |
    153               (uint)(tmp[i * 4 + 0]      );
     142              (uint)(inputBuffer[i * 4 + 3 + inputOffset] << 24) |
     143              (uint)(inputBuffer[i * 4 + 2 + inputOffset] << 16) |
     144              (uint)(inputBuffer[i * 4 + 1 + inputOffset] <<  8) |
     145              (uint)(inputBuffer[i * 4 + 0 + inputOffset]      );
    154146
    155147          }
     
    178170        }
    179171
    180         if (encryptionDirection == EncryptionDirection.Encrypting)
    181             return outputBuffer;
    182 
    183         int len = 15;
    184         while(len >= 0 && outputBuffer[len] == 0) len--;
    185 
    186         byte[] erg = new byte[len + 1];
    187 
    188         Array.Copy(outputBuffer, erg, len + 1);
    189         return erg;
     172        return outputBuffer;
    190173      }
    191174
Note: See TracChangeset for help on using the changeset viewer.