private void checkVectors(
int count,
CcmBlockCipher ccm,
byte[] k,
int macSize,
byte[] n,
byte[] a,
byte[] p,
byte[] t,
byte[] c)
{
ccm.Init(true, new AeadParameters(new KeyParameter(k), macSize, n, a));
byte[] enc = new byte[c.Length];
int len = ccm.ProcessBytes(p, 0, p.Length, enc, 0);
len += ccm.DoFinal(enc, len);
// ccm.Init(true, new CcmParameters(new KeyParameter(k), macSize, n, a));
//
// byte[] enc = ccm.ProcessPacket(p, 0, p.Length);
if (!AreEqual(c, enc))
{
Fail("encrypted stream fails to match in test " + count);
}
// ccm.Init(false, new CcmParameters(new KeyParameter(k), macSize, n, a));
//
// byte[] dec = ccm.ProcessPacket(enc, 0, enc.Length);
ccm.Init(false, new AeadParameters(new KeyParameter(k), macSize, n, a));
byte[] tmp = new byte[enc.Length];
len = ccm.ProcessBytes(enc, 0, enc.Length, tmp, 0);
len += ccm.DoFinal(tmp, len);
byte[] dec = new byte[len];
Array.Copy(tmp, 0, dec, 0, len);
if (!AreEqual(p, dec))
{
Fail("decrypted stream fails to match in test " + count);
}
if (!AreEqual(t, ccm.GetMac()))
{
Fail("MAC fails to match in test " + count);
}
}