public SkeinMac(SkeinMac mac)
 {
     this.engine = new SkeinEngine(mac.engine);
 }
		private void runTest(Case dc)
		{
			IMac digest = new SkeinMac(dc.getBlockSize(), dc.getOutputSize());
			digest.Init(new KeyParameter(dc.getKey()));

			byte[] message = dc.getMessage();
			digest.BlockUpdate(message, 0, message.Length);

			byte[] output = new byte[digest.GetMacSize()];
			digest.DoFinal(output, 0);

			if (!AreEqual(output, dc.getDigest()))
			{
				Fail(digest.AlgorithmName + " message " + (dc.getMessage().Length * 8) + " mismatch.\n Message  " + Hex.ToHexString(dc.getMessage())
				     + "\n Key      " + Hex.ToHexString(dc.getKey()) + "\n Expected "
				     + Hex.ToHexString(dc.getDigest()) + "\n Actual   " + Hex.ToHexString(output));
			}

		}
		public SkeinMac(SkeinMac mac)
		{
			this.engine = new SkeinEngine(mac.engine);
		}