private static RecoveryState InnerReduceB0(RecoveryState state, int index, IEnumerable <Block> blocks) { var b0s = blocks .Select(block => state.PartialKey.PartialDecrypt(index, block)) .Where(decryptedBlock => Block.IsB0Part((uint)decryptedBlock.Values[index])); return(b0s.Any() ? RecoveryState.CreateFromB0Blocks(state, b0s) : null); }
private static RecoveryState InnerReduceSequential(RecoveryState state, int index, IEnumerable <Block> blocks) { var sequences = blocks .Select(block => state.PartialKey.PartialDecrypt(index, block)) .Where(decryptedBlock => Block.IsSequencePart(decryptedBlock.Values[index])); return(sequences.Any() ? RecoveryState.CreateFromSequentialBlocks(state, sequences) : null); }