ProcessBlock() 공개 메소드

public ProcessBlock ( byte input, int inOff, byte output, int outOff ) : int
input byte
inOff int
output byte
outOff int
리턴 int
 static byte[] decrypt(byte[] byteArray, BlowfishEngine bf)
 {
     int blockSize = 8;
     List<byte> decrypted = new List<byte>();
     for (int i = 0; i < byteArray.Length; i = i + blockSize)
     {
         byte[] blockBytes = new byte[blockSize];
         byte[] outBytes = new byte[blockSize];
         for (int j = 0; j < blockSize; j++)
         {
             blockBytes[j] = byteArray[i + j];
         }
         bf.ProcessBlock(blockBytes, 0, outBytes, 0);
         decrypted.AddRange(outBytes);
     }
     unpad(decrypted);
     return decrypted.ToArray();
 }
예제 #2
0
 private void decrypt(byte[] value, BlowfishEngine bf)
 {
     int blockSize = bf.GetBlockSize();
     byte[] vector = new byte[blockSize];
     for (int i = 0; i < blockSize; i++)
         vector[i] = 0;
     for (int i = 0; i < value.Length; i += blockSize)
     {
         byte[] tmp = new byte[blockSize];
         bf.ProcessBlock(vector, 0, tmp, 0);
         int chunk = Math.Min(blockSize, value.Length - i);
         for (int j = 0; j < chunk; j++)
         {
             vector[j] = value[i + j];
             value[(i + j)] = (byte)(value[(i + j)] ^ tmp[j]);
         };
     };
 }