processBlock method

  1. @override
int processBlock(
  1. List<int> M,
  2. int offset
)
override

Implementation

@override
int processBlock(List<int> M, int offset) {
  final DESEngine des1 = DESEngine();
  final DESEngine des2 = DESEngine();
  final DESEngine des3 = DESEngine();
  if (forEncryption) {
    des1.init(true, key!.sublist(0, 2));
    des1.processBlock(M, offset);
    des2.init(false, key!.sublist(2, 4));
    des2.processBlock(M, offset);
    des3.init(true, key!.sublist(4, 6));
    des3.processBlock(M, offset);
  } else {
    des3.init(false, key!.sublist(4, 6));
    des3.processBlock(M, offset);
    des2.init(true, key!.sublist(2, 4));
    des2.processBlock(M, offset);
    des1.init(false, key!.sublist(0, 2));
    des1.processBlock(M, offset);
  }
  return blockSize;
}