From 36b0a98e8637db78911194af8fe02df4a9075388 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Tue, 5 Apr 2016 15:50:00 +0200 Subject: tests: enhance the test suite with more invalid X.509 input The input was provided by Pascal Cuoq. --- tests/Makefile.am | 22 ++++++++++++++++++++-- tests/decoding-inf | 34 ---------------------------------- tests/decoding-invalid-x509 | 39 +++++++++++++++++++++++++++++++++++++++ tests/invalid-x509/id-000000.der | Bin 0 -> 704 bytes tests/invalid-x509/id-000001.der | Bin 0 -> 429 bytes tests/invalid-x509/id-000002.der | Bin 0 -> 709 bytes tests/invalid-x509/id-000003.der | Bin 0 -> 783 bytes tests/invalid-x509/id-000004.der | Bin 0 -> 1608 bytes tests/invalid-x509/id-000005.der | Bin 0 -> 1608 bytes tests/invalid-x509/id-000006.der | Bin 0 -> 686 bytes tests/invalid-x509/id-000007.der | Bin 0 -> 372 bytes tests/invalid-x509/id-000008.der | Bin 0 -> 585 bytes tests/invalid-x509/id-000009.der | Bin 0 -> 443 bytes tests/invalid-x509/id-000010.der | Bin 0 -> 470 bytes tests/invalid-x509/id-000011.der | Bin 0 -> 412 bytes tests/invalid-x509/id-000012.der | Bin 0 -> 374 bytes tests/invalid-x509/id-000013.der | Bin 0 -> 434 bytes tests/invalid-x509/id-000014.der | Bin 0 -> 567 bytes tests/invalid-x509/id-000015.der | Bin 0 -> 720 bytes tests/invalid-x509/id-000016.der | Bin 0 -> 698 bytes tests/invalid-x509/id-000017.der | Bin 0 -> 718 bytes tests/invalid-x509/id-000018.der | Bin 0 -> 551 bytes tests/invalid-x509/id-000019.der | Bin 0 -> 524 bytes tests/invalid-x509/id-000020.der | Bin 0 -> 568 bytes tests/invalid-x509/id-000021.der | Bin 0 -> 625 bytes tests/invalid-x509/id-000022.der | Bin 0 -> 483 bytes tests/invalid-x509/id-000023.der | Bin 0 -> 360 bytes tests/invalid-x509/id-000024.der | Bin 0 -> 360 bytes tests/invalid-x509/id-000025.der | Bin 0 -> 630 bytes tests/invalid-x509/id-000026.der | Bin 0 -> 445 bytes tests/invalid-x509/id-000027.der | Bin 0 -> 457 bytes tests/invalid-x509/id-000028.der | Bin 0 -> 430 bytes tests/invalid-x509/id-000029.der | Bin 0 -> 439 bytes tests/invalid-x509/id-000030.der | Bin 0 -> 703 bytes tests/invalid-x509/id-000031.der | Bin 0 -> 703 bytes tests/invalid-x509/id-000032.der | Bin 0 -> 469 bytes tests/invalid-x509/id-000033.der | Bin 0 -> 718 bytes tests/invalid-x509/id-000034.der | Bin 0 -> 712 bytes tests/invalid-x509/id-000035.der | Bin 0 -> 704 bytes tests/invalidPKIX.der | Bin 704 -> 0 bytes 40 files changed, 59 insertions(+), 36 deletions(-) delete mode 100755 tests/decoding-inf create mode 100755 tests/decoding-invalid-x509 create mode 100644 tests/invalid-x509/id-000000.der create mode 100644 tests/invalid-x509/id-000001.der create mode 100644 tests/invalid-x509/id-000002.der create mode 100644 tests/invalid-x509/id-000003.der create mode 100644 tests/invalid-x509/id-000004.der create mode 100644 tests/invalid-x509/id-000005.der create mode 100644 tests/invalid-x509/id-000006.der create mode 100644 tests/invalid-x509/id-000007.der create mode 100644 tests/invalid-x509/id-000008.der create mode 100644 tests/invalid-x509/id-000009.der create mode 100644 tests/invalid-x509/id-000010.der create mode 100644 tests/invalid-x509/id-000011.der create mode 100644 tests/invalid-x509/id-000012.der create mode 100644 tests/invalid-x509/id-000013.der create mode 100644 tests/invalid-x509/id-000014.der create mode 100644 tests/invalid-x509/id-000015.der create mode 100644 tests/invalid-x509/id-000016.der create mode 100644 tests/invalid-x509/id-000017.der create mode 100644 tests/invalid-x509/id-000018.der create mode 100644 tests/invalid-x509/id-000019.der create mode 100644 tests/invalid-x509/id-000020.der create mode 100644 tests/invalid-x509/id-000021.der create mode 100644 tests/invalid-x509/id-000022.der create mode 100644 tests/invalid-x509/id-000023.der create mode 100644 tests/invalid-x509/id-000024.der create mode 100644 tests/invalid-x509/id-000025.der create mode 100644 tests/invalid-x509/id-000026.der create mode 100644 tests/invalid-x509/id-000027.der create mode 100644 tests/invalid-x509/id-000028.der create mode 100644 tests/invalid-x509/id-000029.der create mode 100644 tests/invalid-x509/id-000030.der create mode 100644 tests/invalid-x509/id-000031.der create mode 100644 tests/invalid-x509/id-000032.der create mode 100644 tests/invalid-x509/id-000033.der create mode 100644 tests/invalid-x509/id-000034.der create mode 100644 tests/invalid-x509/id-000035.der delete mode 100644 tests/invalidPKIX.der diff --git a/tests/Makefile.am b/tests/Makefile.am index 62d5160..729a78e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -25,7 +25,25 @@ LDADD = ../lib/libtasn1.la ../gl/libgnu.la EXTRA_DIST = Test_parser.asn Test_tree.asn Test_tree_asn1_tab.c \ Test_encoding.asn pkix.asn TestIndef.p12 choice.asn coding-decoding2.asn \ TestIndef2.p12 TestIndef3.der TestCertOctetOverflow.der invalidPKIX.der \ - libtasn1.supp + libtasn1.supp \ + invalid-x509/id-000000.der invalid-x509/id-000001.der \ + invalid-x509/id-000002.der invalid-x509/id-000003.der \ + invalid-x509/id-000004.der invalid-x509/id-000005.der \ + invalid-x509/id-000006.der invalid-x509/id-000007.der \ + invalid-x509/id-000008.der invalid-x509/id-000009.der \ + invalid-x509/id-000010.der invalid-x509/id-000011.der \ + invalid-x509/id-000012.der invalid-x509/id-000013.der \ + invalid-x509/id-000014.der invalid-x509/id-000015.der \ + invalid-x509/id-000016.der invalid-x509/id-000017.der \ + invalid-x509/id-000018.der invalid-x509/id-000019.der \ + invalid-x509/id-000020.der invalid-x509/id-000021.der \ + invalid-x509/id-000022.der invalid-x509/id-000023.der \ + invalid-x509/id-000024.der invalid-x509/id-000025.der \ + invalid-x509/id-000026.der invalid-x509/id-000027.der \ + invalid-x509/id-000028.der invalid-x509/id-000029.der \ + invalid-x509/id-000030.der invalid-x509/id-000031.der \ + invalid-x509/id-000032.der invalid-x509/id-000033.der \ + invalid-x509/id-000034.der invalid-x509/id-000035.der # For crlf. EXTRA_DIST += crlf.cer crl.der ocsp.der @@ -40,7 +58,7 @@ check_PROGRAMS = Test_parser Test_tree Test_encoding Test_indefinite \ TESTS = Test_parser Test_tree Test_encoding Test_indefinite \ Test_errors Test_simple Test_overflow crlf threadsafety \ Test_strings Test_choice Test_encdec copynode coding-decoding2 \ - strict-der Test_choice_ocsp decoding decoding-inf + strict-der Test_choice_ocsp decoding decoding-invalid-x509 TESTS_ENVIRONMENT = \ ASN1PARSER=$(srcdir)/Test_parser.asn \ diff --git a/tests/decoding-inf b/tests/decoding-inf deleted file mode 100755 index d3d4bee..0000000 --- a/tests/decoding-inf +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh - -# Copyright (C) 2016 Free Software Foundation, Inc. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -if ! test -z "${VALGRIND}";then -VALGRIND="${LIBTOOL:-libtool} --mode=execute ${VALGRIND} --error-exitcode=7 --leak-check=no" -fi - -ASN1DECODING="${ASN1DECODING:-../src/asn1Decoding$EXEEXT}" -ASN1PKIX="${ASN1PKIX:-pkix.asn}" - -# This tests an invalid input which caused an infinite recursion -# to certain libtasn1 versions. - -$VALGRIND $ASN1DECODING -ds $ASN1PKIX invalidPKIX.der PKIX1.Certificate -if test $? != 1;then - echo "Decoding failed" - exit 1 -fi - -exit 0 diff --git a/tests/decoding-invalid-x509 b/tests/decoding-invalid-x509 new file mode 100755 index 0000000..510a27e --- /dev/null +++ b/tests/decoding-invalid-x509 @@ -0,0 +1,39 @@ +#!/bin/sh + +# Copyright (C) 2016 Free Software Foundation, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +srcdir="${srcdir:-.}" + +if ! test -z "${VALGRIND}";then +VALGRIND="${LIBTOOL:-libtool} --mode=execute ${VALGRIND} --error-exitcode=7 --leak-check=no" +fi + +ASN1DECODING="${ASN1DECODING:-../src/asn1Decoding$EXEEXT}" +ASN1PKIX="${ASN1PKIX:-pkix.asn}" + +# This tests an invalid input which caused an infinite recursion +# to certain libtasn1 versions. + +for i in "${srcdir}/invalid-x509/"*.der;do +$VALGRIND $ASN1DECODING -ds "$ASN1PKIX" "$i" PKIX1.Certificate >/dev/null 2>&1 +if test $? != 1;then + echo "Decoding failed" + exit 1 +fi +echo "$(basename $i): ok" +done + +exit 0 diff --git a/tests/invalid-x509/id-000000.der b/tests/invalid-x509/id-000000.der new file mode 100644 index 0000000..6fb540a Binary files /dev/null and b/tests/invalid-x509/id-000000.der differ diff --git a/tests/invalid-x509/id-000001.der b/tests/invalid-x509/id-000001.der new file mode 100644 index 0000000..371a2a0 Binary files /dev/null and b/tests/invalid-x509/id-000001.der differ diff --git a/tests/invalid-x509/id-000002.der b/tests/invalid-x509/id-000002.der new file mode 100644 index 0000000..7e3b13c Binary files /dev/null and b/tests/invalid-x509/id-000002.der differ diff --git a/tests/invalid-x509/id-000003.der b/tests/invalid-x509/id-000003.der new file mode 100644 index 0000000..a8e3b43 Binary files /dev/null and b/tests/invalid-x509/id-000003.der differ diff --git a/tests/invalid-x509/id-000004.der b/tests/invalid-x509/id-000004.der new file mode 100644 index 0000000..22f4f28 Binary files /dev/null and b/tests/invalid-x509/id-000004.der differ diff --git a/tests/invalid-x509/id-000005.der b/tests/invalid-x509/id-000005.der new file mode 100644 index 0000000..fb491cd Binary files /dev/null and b/tests/invalid-x509/id-000005.der differ diff --git a/tests/invalid-x509/id-000006.der b/tests/invalid-x509/id-000006.der new file mode 100644 index 0000000..56380db Binary files /dev/null and b/tests/invalid-x509/id-000006.der differ diff --git a/tests/invalid-x509/id-000007.der b/tests/invalid-x509/id-000007.der new file mode 100644 index 0000000..e788a77 Binary files /dev/null and b/tests/invalid-x509/id-000007.der differ diff --git a/tests/invalid-x509/id-000008.der b/tests/invalid-x509/id-000008.der new file mode 100644 index 0000000..172eb85 Binary files /dev/null and b/tests/invalid-x509/id-000008.der differ diff --git a/tests/invalid-x509/id-000009.der b/tests/invalid-x509/id-000009.der new file mode 100644 index 0000000..178c8c3 Binary files /dev/null and b/tests/invalid-x509/id-000009.der differ diff --git a/tests/invalid-x509/id-000010.der b/tests/invalid-x509/id-000010.der new file mode 100644 index 0000000..9879226 Binary files /dev/null and b/tests/invalid-x509/id-000010.der differ diff --git a/tests/invalid-x509/id-000011.der b/tests/invalid-x509/id-000011.der new file mode 100644 index 0000000..dffe303 Binary files /dev/null and b/tests/invalid-x509/id-000011.der differ diff --git a/tests/invalid-x509/id-000012.der b/tests/invalid-x509/id-000012.der new file mode 100644 index 0000000..cdbcfa0 Binary files /dev/null and b/tests/invalid-x509/id-000012.der differ diff --git a/tests/invalid-x509/id-000013.der b/tests/invalid-x509/id-000013.der new file mode 100644 index 0000000..d28df0e Binary files /dev/null and b/tests/invalid-x509/id-000013.der differ diff --git a/tests/invalid-x509/id-000014.der b/tests/invalid-x509/id-000014.der new file mode 100644 index 0000000..5886113 Binary files /dev/null and b/tests/invalid-x509/id-000014.der differ diff --git a/tests/invalid-x509/id-000015.der b/tests/invalid-x509/id-000015.der new file mode 100644 index 0000000..aa78dbe Binary files /dev/null and b/tests/invalid-x509/id-000015.der differ diff --git a/tests/invalid-x509/id-000016.der b/tests/invalid-x509/id-000016.der new file mode 100644 index 0000000..93c221d Binary files /dev/null and b/tests/invalid-x509/id-000016.der differ diff --git a/tests/invalid-x509/id-000017.der b/tests/invalid-x509/id-000017.der new file mode 100644 index 0000000..ff2d6a1 Binary files /dev/null and b/tests/invalid-x509/id-000017.der differ diff --git a/tests/invalid-x509/id-000018.der b/tests/invalid-x509/id-000018.der new file mode 100644 index 0000000..1482e61 Binary files /dev/null and b/tests/invalid-x509/id-000018.der differ diff --git a/tests/invalid-x509/id-000019.der b/tests/invalid-x509/id-000019.der new file mode 100644 index 0000000..8760ec6 Binary files /dev/null and b/tests/invalid-x509/id-000019.der differ diff --git a/tests/invalid-x509/id-000020.der b/tests/invalid-x509/id-000020.der new file mode 100644 index 0000000..59238f8 Binary files /dev/null and b/tests/invalid-x509/id-000020.der differ diff --git a/tests/invalid-x509/id-000021.der b/tests/invalid-x509/id-000021.der new file mode 100644 index 0000000..93e9b9d Binary files /dev/null and b/tests/invalid-x509/id-000021.der differ diff --git a/tests/invalid-x509/id-000022.der b/tests/invalid-x509/id-000022.der new file mode 100644 index 0000000..6d5a977 Binary files /dev/null and b/tests/invalid-x509/id-000022.der differ diff --git a/tests/invalid-x509/id-000023.der b/tests/invalid-x509/id-000023.der new file mode 100644 index 0000000..288f69b Binary files /dev/null and b/tests/invalid-x509/id-000023.der differ diff --git a/tests/invalid-x509/id-000024.der b/tests/invalid-x509/id-000024.der new file mode 100644 index 0000000..69c9e61 Binary files /dev/null and b/tests/invalid-x509/id-000024.der differ diff --git a/tests/invalid-x509/id-000025.der b/tests/invalid-x509/id-000025.der new file mode 100644 index 0000000..0e5dce4 Binary files /dev/null and b/tests/invalid-x509/id-000025.der differ diff --git a/tests/invalid-x509/id-000026.der b/tests/invalid-x509/id-000026.der new file mode 100644 index 0000000..ffe5d9f Binary files /dev/null and b/tests/invalid-x509/id-000026.der differ diff --git a/tests/invalid-x509/id-000027.der b/tests/invalid-x509/id-000027.der new file mode 100644 index 0000000..dfe00cc Binary files /dev/null and b/tests/invalid-x509/id-000027.der differ diff --git a/tests/invalid-x509/id-000028.der b/tests/invalid-x509/id-000028.der new file mode 100644 index 0000000..88bd1e3 Binary files /dev/null and b/tests/invalid-x509/id-000028.der differ diff --git a/tests/invalid-x509/id-000029.der b/tests/invalid-x509/id-000029.der new file mode 100644 index 0000000..4fdd0e9 Binary files /dev/null and b/tests/invalid-x509/id-000029.der differ diff --git a/tests/invalid-x509/id-000030.der b/tests/invalid-x509/id-000030.der new file mode 100644 index 0000000..cd22250 Binary files /dev/null and b/tests/invalid-x509/id-000030.der differ diff --git a/tests/invalid-x509/id-000031.der b/tests/invalid-x509/id-000031.der new file mode 100644 index 0000000..78e606a Binary files /dev/null and b/tests/invalid-x509/id-000031.der differ diff --git a/tests/invalid-x509/id-000032.der b/tests/invalid-x509/id-000032.der new file mode 100644 index 0000000..107964e Binary files /dev/null and b/tests/invalid-x509/id-000032.der differ diff --git a/tests/invalid-x509/id-000033.der b/tests/invalid-x509/id-000033.der new file mode 100644 index 0000000..b0db73f Binary files /dev/null and b/tests/invalid-x509/id-000033.der differ diff --git a/tests/invalid-x509/id-000034.der b/tests/invalid-x509/id-000034.der new file mode 100644 index 0000000..35d7079 Binary files /dev/null and b/tests/invalid-x509/id-000034.der differ diff --git a/tests/invalid-x509/id-000035.der b/tests/invalid-x509/id-000035.der new file mode 100644 index 0000000..6fb540a Binary files /dev/null and b/tests/invalid-x509/id-000035.der differ diff --git a/tests/invalidPKIX.der b/tests/invalidPKIX.der deleted file mode 100644 index 6fb540a..0000000 Binary files a/tests/invalidPKIX.der and /dev/null differ -- cgit v1.2.1