Warn if lines are truncated in algorithm test utilities.

Support for new test files: DRBG and CCM.
diff --git a/fips/aes/fips_gcmtest.c b/fips/aes/fips_gcmtest.c
index 6d0563b..438014f 100644
--- a/fips/aes/fips_gcmtest.c
+++ b/fips/aes/fips_gcmtest.c
@@ -339,8 +339,8 @@
 
 static void ccmtest(FILE *in, FILE *out)
 	{
-	char buf[2048];
-	char lbuf[2048];
+	char buf[200048];
+	char lbuf[200048];
 	char *keyword, *value;
 	long l;
 	unsigned char *Key = NULL, *Nonce = NULL;
@@ -376,6 +376,7 @@
 			{
 			*p = 0;
 			strcpy(buf, p + 1);
+			strcat(buf, "\n");
 			decr = 1;
 			}
 		if (!strcmp(keyword,"Plen"))
diff --git a/fips/fips_utl.h b/fips/fips_utl.h
index 91cbea2..7869a18 100644
--- a/fips/fips_utl.h
+++ b/fips/fips_utl.h
@@ -280,6 +280,9 @@
 	/* Remove trailing space from value */
 	p = value + strlen(value) - 1;
 
+	if (*p != '\n')
+		fprintf(stderr, "Warning: missing EOL\n");
+
 	while (*p == '\n' || isspace((unsigned char)*p))
 		*p-- = 0;
 
diff --git a/fips/fipsalgtest.pl b/fips/fipsalgtest.pl
index 2228592..079b006 100644
--- a/fips/fipsalgtest.pl
+++ b/fips/fipsalgtest.pl
@@ -266,6 +266,30 @@
 
 );
 
+my @fips_aes_ccm_test_list = (
+
+    # AES CCM tests
+
+    "AES CCM",
+
+    [ "DVPT128",  "fips_gcmtest -ccm" ],
+    [ "DVPT192",  "fips_gcmtest -ccm" ],
+    [ "DVPT256",  "fips_gcmtest -ccm" ],
+    [ "VADT128",  "fips_gcmtest -ccm" ],
+    [ "VADT192",  "fips_gcmtest -ccm" ],
+    [ "VADT256",  "fips_gcmtest -ccm" ],
+    [ "VNT128",  "fips_gcmtest -ccm" ],
+    [ "VNT192",  "fips_gcmtest -ccm" ],
+    [ "VNT256",  "fips_gcmtest -ccm" ],
+    [ "VPT128",  "fips_gcmtest -ccm" ],
+    [ "VPT192",  "fips_gcmtest -ccm" ],
+    [ "VPT256",  "fips_gcmtest -ccm" ],
+    [ "VTT128",  "fips_gcmtest -ccm" ],
+    [ "VTT192",  "fips_gcmtest -ccm" ],
+    [ "VTT256",  "fips_gcmtest -ccm" ]
+
+);
+
 # Triple DES tests
 
 my @fips_des3_test_list = (
@@ -348,6 +372,16 @@
 
 );
 
+my @fips_drbg_test_list = (
+
+    # SP800-90 DRBG tests
+    "SP800-90 DRBG",
+    [ "CTR_DRBG",   "fips_drbgvs" ],
+    [ "Hash_DRBG",  "fips_drbgvs" ],
+
+);
+
+
 # Verification special cases.
 # In most cases the output of a test is deterministic and
 # it can be compared to a known good result. A few involve
@@ -384,6 +418,7 @@
 my $list_tests     = 0;
 my $minimal_script = 0;
 my $outfile        = '';
+my $no_warn_missing = 0;
 
 my %fips_enabled = (
     dsa         => 1,
@@ -399,7 +434,9 @@
     aes         => 1,
     "aes-cfb1"  => 0,
     des3        => 1,
-    "des3-cfb1" => 0
+    "des3-cfb1" => 0,
+    drbg	=> 0,
+    ccm		=> 0,
 );
 
 foreach (@ARGV) {
@@ -412,6 +449,10 @@
     elsif ( $_ eq "--debug" ) {
         $debug = 1;
     }
+    elsif ( $_ eq "--quiet-missing" ) {
+        $ignore_missing = 1;
+        $no_warn_missing = 1;
+    }
     elsif ( $_ eq "--ignore-missing" ) {
         $ignore_missing = 1;
     }
@@ -481,6 +522,8 @@
 push @fips_test_list, @fips_aes_cfb1_test_list  if $fips_enabled{"aes-cfb1"};
 push @fips_test_list, @fips_des3_test_list      if $fips_enabled{"des3"};
 push @fips_test_list, @fips_des3_cfb1_test_list if $fips_enabled{"des3-cfb1"};
+push @fips_test_list, @fips_drbg_test_list	if $fips_enabled{"drbg"};
+push @fips_test_list, @fips_aes_ccm_test_list	if $fips_enabled{"aes-ccm"};
 
 if ($list_tests) {
     my ( $test, $en );
@@ -716,7 +759,7 @@
 
         #print STDERR "FILES $tst, $cmd, $req, $resp\n";
         if ( $req eq "" ) {
-            print STDERR "WARNING: missing request file for $tst\n";
+            print STDERR "WARNING: missing request file for $tst\n" unless $no_warn_missing;
             $bad = 1;
             next;
         }
@@ -793,7 +836,7 @@
         }
         if ( $req eq "" ) {
             print STDERR
-              "WARNING: Request file for $tname missing: test skipped\n";
+              "WARNING: Request file for $tname missing: test skipped\n" unless $no_warn_missing;
             $skipcnt++;
             next;
         }