System.Security.Cryptography.DESTransform.BSwap C# (CSharp) Метод

BSwap() приватный статический Метод

private static BSwap ( byte byteBuff ) : void
byteBuff byte
Результат void
		private static void BSwap (byte [] byteBuff)
		{
			byte t = byteBuff [0];
			byteBuff [0] = byteBuff [3];
			byteBuff [3] = t;
	
			t = byteBuff [1];
			byteBuff [1] = byteBuff [2];
			byteBuff [2] = t;
	
			t = byteBuff [4];
			byteBuff [4] = byteBuff [7];
			byteBuff [7] = t;
	
			t = byteBuff [5];
			byteBuff [5] = byteBuff [6];
			byteBuff [6] = t;
		}
	

Usage Example

Пример #1
0
        internal static void Permutation(byte[] input, byte[] output, uint[] permTab, bool preSwap)
        {
            if (preSwap && BitConverter.IsLittleEndian)
            {
                DESTransform.BSwap(input);
            }
            int  num  = input[0] >> 4 << 1;
            int  num2 = 32 + ((int)(input[0] & 15) << 1);
            uint num3 = permTab[num++] | permTab[num2++];
            uint num4 = permTab[num] | permTab[num2];
            int  num5 = DESTransform.BLOCK_BYTE_SIZE << 1;
            int  i    = 2;
            int  num6 = 1;

            while (i < num5)
            {
                int num7 = (int)input[num6];
                num   = (i << 5) + (num7 >> 4 << 1);
                num2  = (i + 1 << 5) + ((num7 & 15) << 1);
                num3 |= (permTab[num++] | permTab[num2++]);
                num4 |= (permTab[num] | permTab[num2]);
                i    += 2;
                num6++;
            }
            if (preSwap || !BitConverter.IsLittleEndian)
            {
                output[0] = (byte)num3;
                output[1] = (byte)(num3 >> 8);
                output[2] = (byte)(num3 >> 16);
                output[3] = (byte)(num3 >> 24);
                output[4] = (byte)num4;
                output[5] = (byte)(num4 >> 8);
                output[6] = (byte)(num4 >> 16);
                output[7] = (byte)(num4 >> 24);
            }
            else
            {
                output[0] = (byte)(num3 >> 24);
                output[1] = (byte)(num3 >> 16);
                output[2] = (byte)(num3 >> 8);
                output[3] = (byte)num3;
                output[4] = (byte)(num4 >> 24);
                output[5] = (byte)(num4 >> 16);
                output[6] = (byte)(num4 >> 8);
                output[7] = (byte)num4;
            }
        }