private void KdfFeedbackNoCounterTest()
        {
            string    file    = "KDFFeedbackNoCounter_gen.rsp";
            ArrayList vectors = CavpReader.ReadVectorFile(file);

            foreach (Vector vector in vectors)
            {
                IMac prf = CavpReader.CreatePrf(vector);
                KdfFeedbackBytesGenerator gen = new KdfFeedbackBytesGenerator(prf);

                int    count                = vector.ValueAsInt("COUNT");
                int    l                    = vector.ValueAsInt("L");
                byte[] ki                   = vector.ValueAsBytes("KI");
                byte[] iv                   = vector.ValueAsBytes("IV");
                byte[] fixedInputData       = vector.ValueAsBytes("FixedInputData");
                KdfFeedbackParameters param = KdfFeedbackParameters.CreateWithoutCounter(ki, iv, fixedInputData);
                gen.Init(param);

                byte[] koGenerated = new byte[l / 8];
                gen.GenerateBytes(koGenerated, 0, koGenerated.Length);

                byte[] koVectors = vector.ValueAsBytes("KO");
                CompareKO(file, vector, count, koGenerated, koVectors);
            }
        }
        public override void PerformTest()
        {
            string    file    = "KDFCTR_gen.rsp";
            ArrayList vectors = CavpReader.ReadVectorFile(file);

            ProcessVectors(file, vectors);
        }
        private void KdfFeedbackCounterTest()
        {
            string    file    = "KDFFeedbackCounter_gen.rsp";
            ArrayList vectors = CavpReader.ReadVectorFile(file);

            foreach (Vector vector in vectors)
            {
                if (vector.HeaderAsString("CTRLOCATION") != "AFTER_ITER")
                {
                    continue;
                }

                IMac prf = CavpReader.CreatePrf(vector);
                KdfFeedbackBytesGenerator gen = new KdfFeedbackBytesGenerator(prf);
                int r = -1;
                {
                    string rlen = vector.HeaderAsString("RLEN");
                    if (rlen == null)
                    {
                        Fail("No RLEN");
                    }
                    r = Int32.Parse(rlen.Split('_')[0]);
                }
                int    count                = vector.ValueAsInt("COUNT");
                int    l                    = vector.ValueAsInt("L");
                byte[] ki                   = vector.ValueAsBytes("KI");
                byte[] iv                   = vector.ValueAsBytes("IV");
                byte[] fixedInputData       = vector.ValueAsBytes("FixedInputData");
                KdfFeedbackParameters param = KdfFeedbackParameters.CreateWithCounter(ki, iv, fixedInputData, r);
                gen.Init(param);

                byte[] koGenerated = new byte[l / 8];
                gen.GenerateBytes(koGenerated, 0, koGenerated.Length);

                byte[] koVectors = vector.ValueAsBytes("KO");
                CompareKO(file, vector, count, koGenerated, koVectors);
            }
        }