public CkAesCtrParams(ulong counterBits, byte[] cb) { _lowLevelStruct.CounterBits = 0; _lowLevelStruct.Cb = new byte[16]; _lowLevelStruct.CounterBits = counterBits; if (cb == null) throw new ArgumentNullException("cb"); if (cb.Length != 16) throw new ArgumentOutOfRangeException("cb", "Array has to be 16 bytes long"); Array.Copy(cb, _lowLevelStruct.Cb, cb.Length); }