Exemple #1
0
 internal static void ThrowOnBadKey(BitArray key, KeySize keysize)
 {
     if (key.Length % keysize.ConvertToInt() != 0)
     {
         throw new MismatchedKeySizeException();
     }
 }
        internal static List <BitArray> ExpandKey(BitArray key, KeySize keySize)
        {
            int rounds = keySize.NumRounds();
            int length = keySize.ConvertToInt();
            var keys   = new BitArray(rounds * length);

            var prev = key;

            for (int i = 0; i < rounds; i++)
            {
                var next = prev.Next(i + 1);
                next.CopyTo(keys, length * i);
            }

            return(keys.SeparateBlocks());
        }