[test suite] added a few OS compatibility tests
authorMichael Rash <mbr@cipherdyne.org>
Wed, 12 Jun 2013 02:01:23 +0000 (22:01 -0400)
committerMichael Rash <mbr@cipherdyne.org>
Wed, 12 Jun 2013 02:01:23 +0000 (22:01 -0400)
Makefile.am
test/test-fwknop.pl
test/tests/os_compatibility.pl [new file with mode: 0644]

index 7b76ee4..1e31e68 100644 (file)
@@ -264,6 +264,7 @@ EXTRA_DIST = \
     test/tests/basic_operations.pl \
     test/tests/rijndael_hmac.pl \
     test/tests/rijndael_backwards_compatibility.pl \
+    test/tests/os_compatibility.pl \
     test/tests/gpg_hmac.pl \
     test/tests/gpg_no_pw.pl \
     test/tests/gpg_no_pw_hmac.pl \
index 5a18a3d..a345ca9 100755 (executable)
@@ -193,6 +193,7 @@ my @test_files = (
     "$tests_dir/rijndael_fuzzing.pl",
     "$tests_dir/rijndael_backwards_compatibility.pl",
     "$tests_dir/rijndael_hmac.pl",
+    "$tests_dir/os_compatibility.pl",
     "$tests_dir/perl_FKO_module.pl",
     "$tests_dir/python_fko.pl",
     "$tests_dir/gpg_no_pw.pl",
@@ -218,6 +219,7 @@ our @gpg                     = ();  ### from tests/gpg.pl
 our @gpg_hmac                = ();  ### from tests/gpg_hmac.pl
 our @perl_FKO_module         = ();  ### from tests/perl_FKO_module.pl
 our @python_fko              = ();  ### from tests/python_fko.pl
+our @os_compatibility        = ();  ### from tests/os_compatibility.pl
 our @rijndael_backwards_compatibility = ();  ### from tests/rijndael_backwards_compatibility.pl
 
 my $passed = 0;
@@ -510,6 +512,7 @@ my @tests = (
     @rijndael_backwards_compatibility,
     @rijndael_fuzzing,
     @rijndael_hmac,
+    @os_compatibility,
     @perl_FKO_module,
     @python_fko,
     @gpg_no_pw,
@@ -3607,6 +3610,12 @@ sub altered_non_base64_spa_data() {
     return $rv;
 }
 
+sub os_compatibility() {
+    my $test_hr = shift;
+
+    return &backwards_compatibility($test_hr);
+}
+
 sub backwards_compatibility() {
     my $test_hr = shift;
 
diff --git a/test/tests/os_compatibility.pl b/test/tests/os_compatibility.pl
new file mode 100644 (file)
index 0000000..2d7cddb
--- /dev/null
@@ -0,0 +1,159 @@
+@os_compatibility = (
+
+    ### Ubuntu 12.04
+    {
+        'category' => 'Rijndael',
+        'subcategory' => 'client->server OS compatibility',
+        'detail'   => 'v2.5 Ubuntu-12.04',
+        'function' => \&os_compatibility,
+        'no_ip_check' => 1,
+        'pkt' =>
+            '97qvmEEOJyCJk6eLpTpqG+7nx4Is+Ruh2ppeaVMkWB/hLpUEE/Znah9RF5JCbB' .
+            'lAZNE2O1w83mout+oyWSj4payd0yuWckikoZYjc7tSSgHIFikOhTm9CHi8ERe9' .
+            'jLEYw1wvqE2B7Vvz7XyefNILZdHa+Vx5zYM0o',
+        'server_positive_output_matches' => [qr/with expire time/],
+        'fwknopd_cmdline'  => "LD_LIBRARY_PATH=$lib_dir $valgrind_str " .
+            "$fwknopdCmd -c $cf{'disable_aging'} -a $cf{'def_access'} " .
+            "-d $default_digest_file -p $default_pid_file $intf_str",
+        'fw_rule_created' => $NEW_RULE_REQUIRED,
+        'fw_rule_removed' => $NEW_RULE_REMOVED,
+        'fatal'    => $NO
+    },
+    {
+        'category' => 'Rijndael+HMAC',
+        'subcategory' => 'client->server OS compatibility',
+        'detail'   => 'v2.5 Ubuntu-12.04',
+        'function' => \&os_compatibility,
+        'no_ip_check' => 1,
+        'pkt' =>
+            '97UwsN9v6iQxs9/hrSnbRKDF8byw+niI0PDx0AvuhLP2NmAaz4qktRjl1p7lUA' .
+            'GBzLi+4o58wJCkHs3QUluHBcMAS6hqIT7qMc/aQlcJzNsQWEfPCkAE0m1zLnjG' .
+            'GE3C9u943F+0csrZs+ysKKca+sVBcAKhsTNsMjT9HojVMdk+r9RhJqUa2JJz7f' .
+            'ZIZauvBrygBVg0yh6o',
+        'server_positive_output_matches' => [qr/with expire time/],
+        'fwknopd_cmdline'  => "LD_LIBRARY_PATH=$lib_dir $valgrind_str " .
+            "$fwknopdCmd -c $cf{'disable_aging'} -a $cf{'hmac_access'} " .
+            "-d $default_digest_file -p $default_pid_file $intf_str",
+        'fw_rule_created' => $NEW_RULE_REQUIRED,
+        'fw_rule_removed' => $NEW_RULE_REMOVED,
+        'fatal'    => $NO
+    },
+
+    ### Ubuntu 13.04
+    {
+        'category' => 'Rijndael',
+        'subcategory' => 'client->server OS compatibility',
+        'detail'   => 'v2.5 Ubuntu-13.04',
+        'function' => \&os_compatibility,
+        'no_ip_check' => 1,
+        'pkt' =>
+            '/gNh7EXXyg23dcrYz0g+KaWJWvTwuPuP349YzrwcLVvVSc5RVJdakdx9Qv0xAWe' .
+            'GsZJPmv2e1U31SMrdgF+o7/f2qRDH2hwPU8XLKS73rXpAhZKVAF/crt00HDmaH0' .
+            'p+hc3ngPtmE/j0PKeUD+GM81YQPO9NdZu4s',
+        'server_positive_output_matches' => [qr/with expire time/],
+        'fwknopd_cmdline'  => "LD_LIBRARY_PATH=$lib_dir $valgrind_str " .
+            "$fwknopdCmd -c $cf{'disable_aging'} -a $cf{'def_access'} " .
+            "-d $default_digest_file -p $default_pid_file $intf_str",
+        'fw_rule_created' => $NEW_RULE_REQUIRED,
+        'fw_rule_removed' => $NEW_RULE_REMOVED,
+        'fatal'    => $NO
+    },
+    {
+        'category' => 'Rijndael+HMAC',
+        'subcategory' => 'client->server OS compatibility',
+        'detail'   => 'v2.5 Ubuntu-13.04',
+        'function' => \&os_compatibility,
+        'no_ip_check' => 1,
+        'pkt' =>
+            '/+pXmgSat9BUrGQLUFFELlOSqVAHSzY/BhPC2eP/gYfW5OrLplejpwh7MYoU06G' .
+            'PHRx4vqMBYjxzOcrWp0rFC1rrPzP16nFnRUo5P3jxg1FMjMLI48RrSwCcx8G1qk' .
+            'mknUjmg4+8maPhus2x7YhoPTMfMZijWKOaMWhX1G0khDqFfGU8GuehpQdwuGdX/' .
+            'oGZnheeQyczK4pY',
+        'server_positive_output_matches' => [qr/with expire time/],
+        'fwknopd_cmdline'  => "LD_LIBRARY_PATH=$lib_dir $valgrind_str " .
+            "$fwknopdCmd -c $cf{'disable_aging'} -a $cf{'hmac_access'} " .
+            "-d $default_digest_file -p $default_pid_file $intf_str",
+        'fw_rule_created' => $NEW_RULE_REQUIRED,
+        'fw_rule_removed' => $NEW_RULE_REMOVED,
+        'fatal'    => $NO
+    },
+
+    ### OpenBSD 4.9
+    {
+        'category' => 'Rijndael',
+        'subcategory' => 'client->server OS compatibility',
+        'detail'   => 'v2.5 OpenBSD-4.9',
+        'function' => \&os_compatibility,
+        'no_ip_check' => 1,
+        'pkt' =>
+            '+HNnKhqILxDz1IhEeJnWIQF2v/7H7yZ3TZegUeNltMdUP7SYAHxWg8WD2N4LF3g' .
+            'dejv3UxC/FRlHgJz4UeRkloFCQQ0tkQLx6MSoCQHKPlNxATKsfLL3UfHpKbhRG8' .
+            'a8S9q8lojKxiWuLZU64h5LXjhH7rR7riyds',
+        'server_positive_output_matches' => [qr/with expire time/],
+        'fwknopd_cmdline'  => "LD_LIBRARY_PATH=$lib_dir $valgrind_str " .
+            "$fwknopdCmd -c $cf{'disable_aging'} -a $cf{'def_access'} " .
+            "-d $default_digest_file -p $default_pid_file $intf_str",
+        'fw_rule_created' => $NEW_RULE_REQUIRED,
+        'fw_rule_removed' => $NEW_RULE_REMOVED,
+        'fatal'    => $NO
+    },
+    {
+        'category' => 'Rijndael+HMAC',
+        'subcategory' => 'client->server OS compatibility',
+        'detail'   => 'v2.5 OpenBSD-4.9',
+        'function' => \&os_compatibility,
+        'no_ip_check' => 1,
+        'pkt' =>
+            '9LnU3Tlrn7tpcOxviTD5DHlXZ9T0Sj9R92yvm319zB1xzhMYuwB18C4qgScj5q' .
+            'Vop4zyz0L1LQYMZ1/O3S2dqafGLIqSwk7j6YiH0ENVafQvuFVFG8ooeBRxFqzw' .
+            'YnywR5R9Drrw+hMxpl40HDb1O07xN7WBOSvNgU2vi8MHT7MSZVh02PKRF8aReL' .
+            'cQTD2sxRsn5tGfehC8',
+        'server_positive_output_matches' => [qr/with expire time/],
+        'fwknopd_cmdline'  => "LD_LIBRARY_PATH=$lib_dir $valgrind_str " .
+            "$fwknopdCmd -c $cf{'disable_aging'} -a $cf{'hmac_access'} " .
+            "-d $default_digest_file -p $default_pid_file $intf_str",
+        'fw_rule_created' => $NEW_RULE_REQUIRED,
+        'fw_rule_removed' => $NEW_RULE_REMOVED,
+        'fatal'    => $NO
+    },
+
+    ### FreeBSD 8.2
+    {
+        'category' => 'Rijndael',
+        'subcategory' => 'client->server OS compatibility',
+        'detail'   => 'v2.5 FreeBSD-8.2',
+        'function' => \&os_compatibility,
+        'no_ip_check' => 1,
+        'pkt' =>
+            '9oprfzL5On8uyH5qJ0JQGLGddfGMI8j9YSafjFth2hiJrYG75FqBJNVvnsvetTA' .
+            '46kFmbdXHZCUx5iom9jOtpQnMvZJGex65vV4bSFdVwaoJ/ICkiRHbbzSTZo8qmp' .
+            'FTLSYWVhTWQddj4j80Ne6GH0h3zXomg9fJU',
+        'server_positive_output_matches' => [qr/with expire time/],
+        'fwknopd_cmdline'  => "LD_LIBRARY_PATH=$lib_dir $valgrind_str " .
+            "$fwknopdCmd -c $cf{'disable_aging'} -a $cf{'def_access'} " .
+            "-d $default_digest_file -p $default_pid_file $intf_str",
+        'fw_rule_created' => $NEW_RULE_REQUIRED,
+        'fw_rule_removed' => $NEW_RULE_REMOVED,
+        'fatal'    => $NO
+    },
+    {
+        'category' => 'Rijndael+HMAC',
+        'subcategory' => 'client->server OS compatibility',
+        'detail'   => 'v2.5 FreeBSD-8.2',
+        'function' => \&os_compatibility,
+        'no_ip_check' => 1,
+        'pkt' =>
+            '8au7bGF/FL3EwjMVtTQpAtrzW4JvYAlAtbuEHGdxYS0E0vo18t9dpKoYA/hCLMu' .
+            'XqFYIH6zINNYUYjplvL9+zFeygIxiT9dm6PIjjossOIRRNOwdwbS8oeBzsckqMn' .
+            'BDo3d0K5I4mhwuWVHyTZUg441+kfm7O8TesDhUoy2ftqTGR3+GHi52/NIVctEAp' .
+            'WR6NZowCcHElB9E',
+        'server_positive_output_matches' => [qr/with expire time/],
+        'fwknopd_cmdline'  => "LD_LIBRARY_PATH=$lib_dir $valgrind_str " .
+            "$fwknopdCmd -c $cf{'disable_aging'} -a $cf{'hmac_access'} " .
+            "-d $default_digest_file -p $default_pid_file $intf_str",
+        'fw_rule_created' => $NEW_RULE_REQUIRED,
+        'fw_rule_removed' => $NEW_RULE_REMOVED,
+        'fatal'    => $NO
+    },
+
+);