Added fko context dumper change to ChangeLog, updated test suite to account for singl...
authorMichael Rash <mbr@cipherdyne.org>
Mon, 12 Aug 2013 02:07:02 +0000 (22:07 -0400)
committerMichael Rash <mbr@cipherdyne.org>
Mon, 12 Aug 2013 02:07:02 +0000 (22:07 -0400)
ChangeLog
lib/fko_util.c
test/test-fwknop.pl

index a5903b7..a7a60dd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,10 @@
 fwknop-2.5.2 (//2013):
+    - [libfko] (Franck Joncourt) Consolidated FKO context dumping function into
+      lib/fko_util.c. In addition to adding a shared utility function for
+      printing an FKO context, this change also makes the FKO context output
+      slightly easier to parse by printing each FKO attribute on a single line
+      (this change affected the printing of the final SPA packet data).  The
+      test suite has been updated to account for this change as well.
     - [test suite] added --gdb-test to allow a previously executed fwknop
       or fwknopd command to be sent through gdb with the same command line
       args as the test suite used.  This is for convenience to rapidly allow
index 1f8c6b5..40b45c2 100644 (file)
@@ -93,7 +93,6 @@ constant_runtime_cmp(const char *a, const char *b, int len)
         return 0 - bad;
 }
 
-
 /* Validate encoded message length
 */
 int
@@ -494,7 +493,7 @@ append_msg_to_buf(char *buf, size_t buf_size, const char* msg, ...)
     va_list ap;
 
     /* Check if the buffer is valid */
-    if (buf_size != 0)
+    if (buf_size > 0)
     {
         va_start(ap, msg);
 
@@ -622,11 +621,7 @@ dump_ctx_to_buffer(fko_ctx_t ctx, char *dump_buf, size_t dump_buf_len)
         cp += append_msg_to_buf(dump_buf+cp, dump_buf_len-cp, "   Encoded Data: %s\n", enc_data == NULL ? NULL_STRING : enc_data);
         cp += append_msg_to_buf(dump_buf+cp, dump_buf_len-cp, "SPA Data Digest: %s\n", spa_digest == NULL ? NULL_STRING : spa_digest);
         cp += append_msg_to_buf(dump_buf+cp, dump_buf_len-cp, "           HMAC: %s\n", hmac_data == NULL ? NULL_STRING : hmac_data);
-
-        if (enc_data != NULL && spa_digest != NULL)
-            cp += append_msg_to_buf(dump_buf+cp, dump_buf_len-cp, "      Plaintext: %s:%s\n", enc_data, spa_digest);
-
-        cp += append_msg_to_buf(dump_buf+cp, dump_buf_len-cp, "\nFinal Packed/Encrypted/Encoded Data:\n\n%s\n", spa_data);
+        cp += append_msg_to_buf(dump_buf+cp, dump_buf_len-cp, " Final SPA Data: %s\n", spa_data);
 
         err = FKO_SUCCESS;
     }
index 15ad18f..2b8a758 100755 (executable)
@@ -1208,7 +1208,7 @@ sub client_rc_file() {
             $cmd_out_tmp, $curr_test_file);
 
     unless ($test_hr->{'cmdline'} =~ /key\-gen/ or $test_hr->{'cmdline'} =~ /\-k/) {
-        $rv = 0 unless &file_find_regex([qr/final\spacked/i],
+        $rv = 0 unless &file_find_regex([qr/Final\sSPA\sData/i],
             $MATCH_ALL, $NO_APPEND_RESULTS, $curr_test_file);
     }
 
@@ -1287,7 +1287,7 @@ sub validate_fko_decode() {
             next;
         }
         next unless $found_fko_field_values;
-        if (/Final\sPacked/) {
+        if (/Final\sSPA\sData/) {
             $found_fko_field_values = 0;
             last if $finished_first_section;
             $finished_first_section = 1;
@@ -1359,7 +1359,7 @@ sub client_send_spa_packet() {
 
             $rv = 0 unless &run_cmd($test_hr->{'cmdline'},
                     $cmd_out_tmp, $curr_test_file);
-            $rv = 0 unless &file_find_regex([qr/final\spacked/i],
+            $rv = 0 unless &file_find_regex([qr/Final\sSPA\sData/],
                 $MATCH_ALL, $NO_APPEND_RESULTS, $curr_test_file);
 
             last if $server_receive_check == $NO_SERVER_RECEIVE_CHECK;
@@ -1370,7 +1370,7 @@ sub client_send_spa_packet() {
     } else {
         $rv = 0 unless &run_cmd($test_hr->{'cmdline'},
                 $cmd_out_tmp, $curr_test_file);
-        $rv = 0 unless &file_find_regex([qr/final\spacked/i],
+        $rv = 0 unless &file_find_regex([qr/Final\sSPA\sData/i],
             $MATCH_ALL, $NO_APPEND_RESULTS, $curr_test_file);
     }
 
@@ -4363,18 +4363,9 @@ sub get_spa_packet_from_file() {
     my $file = shift;
 
     my $spa_pkt = '';
-
-    my $found_trigger_line = 0;
     open F, "< $file" or die "[*] Could not open file $file: $!";
     while (<F>) {
-        if (/final\spacked/i) {
-            $found_trigger_line = 1;
-            next;
-        }
-        next unless $found_trigger_line;
-
-        ### the next line with non whitespace is the SPA packet
-        if (/(\S+)/) {
+        if (/Final\sSPA\sData\:\s(\S+)/) {
             $spa_pkt = $1;
             last;
         }