private void DivideAndAdd(PassItem pass) { var passPart1Bytes = new byte[MaxPassLength]; _rngCsp.GetBytes(passPart1Bytes); var realPassBytes = pass.GetBytes(); var passPart2Bytes = XORArrays(passPart1Bytes, realPassBytes); if (!CheckCorrect(passPart1Bytes, passPart2Bytes, realPassBytes)) throw new Exception("WTF? Xor worked funny.."); var part1Pass = pass.GetCopy(); part1Pass.Pass = passPart1Bytes; Part1List.Add(part1Pass.Id.Value, part1Pass); var part2Pass = pass.GetCopy(); part2Pass.Pass = passPart2Bytes; Part2List.Add(part2Pass.Id.Value, part2Pass); }