diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-04-05 14:12:03 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-04-06 15:14:59 +0200 |
commit | 6d63a93dd04f7a5bd77e8928e6288154f45171c2 (patch) | |
tree | 24837dd0fd06ecdd2406516380a0bb40d36b0edb | |
parent | 6f94339d4f6750c284abe286ef91dba80bfb35a3 (diff) | |
download | gnutls-6d63a93dd04f7a5bd77e8928e6288154f45171c2.tar.gz |
tests: added unit test for the certtool smime conversion functionality
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
-rw-r--r-- | tests/cert-tests/Makefile.am | 6 | ||||
-rw-r--r-- | tests/cert-tests/data/pkcs7.smime | 42 | ||||
-rwxr-xr-x | tests/cert-tests/smime | 61 |
3 files changed, 107 insertions, 2 deletions
diff --git a/tests/cert-tests/Makefile.am b/tests/cert-tests/Makefile.am index c7ce23231f..2f936e3402 100644 --- a/tests/cert-tests/Makefile.am +++ b/tests/cert-tests/Makefile.am @@ -71,14 +71,16 @@ EXTRA_DIST = data/ca-no-pathlen.pem data/no-ca-or-pathlen.pem data/aki-cert.pem templates/crit-extensions.tmpl data/crit-extensions.pem data/x509-with-zero-version.pem \ data/key-corpus-rc2-1.p12 data/key-corpus-rc2-2.p12 data/key-corpus-rc2-3.p12 \ data/key-corpus-rc2-1.p12.out data/no-salt.p12 data/mac-sha512.p12 data/pbes1-no-salt.p12 \ - templates/inhibit-anypolicy.tmpl data/inhibit-anypolicy.pem data/aes-128.p12 + templates/inhibit-anypolicy.tmpl data/inhibit-anypolicy.pem data/aes-128.p12 \ + data/pkcs7.smime dist_check_SCRIPTS = pathlen aki certtool invalid-sig email \ pkcs7 pkcs7-broken-sigs privkey-import name-constraints certtool-long-cn crl provable-privkey \ provable-dh userid sha2-test sha2-dsa-test provable-privkey-dsa2048 \ provable-privkey-rsa2048 provable-privkey-gen-default pkcs7-constraints \ pkcs7-constraints2 certtool-long-oids pkcs7-cat cert-sanity cert-critical \ - pkcs12 certtool-crl-decoding pkcs12-encode pkcs12-corner-cases inhibit-anypolicy + pkcs12 certtool-crl-decoding pkcs12-encode pkcs12-corner-cases inhibit-anypolicy \ + smime if WANT_TEST_SUITE dist_check_SCRIPTS += provable-dh-default diff --git a/tests/cert-tests/data/pkcs7.smime b/tests/cert-tests/data/pkcs7.smime new file mode 100644 index 0000000000..9f2d6578a9 --- /dev/null +++ b/tests/cert-tests/data/pkcs7.smime @@ -0,0 +1,42 @@ +MIME-Version: 1.0 +Content-Disposition: attachment; filename="smime.p7m" +Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" +Content-Transfer-Encoding: base64 + +MIIGkgYJKoZIhvcNAQcCoIIGgzCCBn8CAQExDzANBglghkgBZQMEAgEFADBGBgkq +hkiG9w0BBwGgOQQ3Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluDQoNCkhlbGxvIHRo +ZXJlLiBIb3cgYXJlIHlvdT8NCqCCA7gwggO0MIICbKADAgECAgRN4LTKMA0GCSqG +SIb3DQEBCwUAMBkxFzAVBgNVBAMTDkdudVRMUyBUZXN0IENBMB4XDTExMDUyODA4 +MzkzOVoXDTM4MTAxMjA4Mzk0MFowLzEtMCsGA1UEAxMkR251VExTIFRlc3QgU2Vy +dmVyIChSU0EgY2VydGlmaWNhdGUpMIIBUjANBgkqhkiG9w0BAQEFAAOCAT8AMIIB +OgKCATEAtGsnmCWvwf8eyrB+9Ni87UOGZ1Rd2rQewpBfgzwCEfwTcoWyiKRlQQt2 +XyO+ip/+eUtzOy7HSzy/FsmXVTUX86FySzDC4CeUEvNWAObOgksRXaQem/r6uRsq +TRi1uqXmDMeoqKFtqoiE3JYOsmwcNarnx5Q9+dXHwqINS7NuevcIX8UJzRWTGveY +3ypMZokk7R/QFmOBZaVYO6HNJWKbmYFUCBcY7HwvCKI7KFcynRdHCob7YrFBmeb7 +3qjqIH7zG+666pohZCmS8q1z5RkFnTdT4hGfGF8iuuKLDQCMni+nhz1AvkqipZII +DC5hwFh8mpnh1qyDOSXPPhvt66NtncvFON7Bx26bNBS+MD6CkB65Spp25O8zDEai +MXL2w2EL+KpnifSl5XY3oSmfgHmqdQIDAQABo4GNMIGKMAwGA1UdEwEB/wQCMAAw +FAYDVR0RBA0wC4IJbG9jYWxob3N0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1Ud +DwEB/wQFAwMHoAAwHQYDVR0OBBYEFHYHWEzqtSn1LYAGjINKgg0J7JPeMB8GA1Ud +IwQYMBaAFE1Wt2oAWPFnkvSmdVUbjlMBA+/PMA0GCSqGSIb3DQEBCwUAA4IBMQB0 +1aZOyHm4h+eDKE5bCbukrb6+BQxjyceAygwUe3TK7G4iZxQxe7ctFLV1lKgIkAIG +lMUaL8ODZTSq84dBwSZzc7A2ocH3RHcsbmNRIK2r9thbuH/oZ30p5YKBlzNodtD0 +g9OMsfV0uzBU+359coHoSHSCBKsYBMT/BFlP9eAMJby3gL7b5OYnxkTO9TzsoA9D +2tQFLX6ncRQBH8V8wCkCmwSKDUhn5kPmOhoYFbvOHUfQH2YQqJ1G8PvK5EnLMBy8 +PbmdPXk0tbRBHd0R5eiwtzvbTHEmXWGHw0ntg6+ffbeY6NH16viLgPqImVeYny28 +329qQJqeRa8HNvumUWfax8xCogIWlFzDTvkPyF1DF+kZ98va0R4pKCPI0ddLvHd0 +WFSk3chCNSLbHh/Z79leMYICYzCCAl8CAQEwITAZMRcwFQYDVQQDEw5HbnVUTFMg +VGVzdCBDQQIETeC0yjANBglghkgBZQMEAgEFAKCB5DAYBgkqhkiG9w0BCQMxCwYJ +KoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNzA0MDUxMTUwMzJaMC8GCSqGSIb3 +DQEJBDEiBCAPxNW8sd688/xuhT3eVSckDRNLIIsANJ00vaOH8y2rxTB5BgkqhkiG +9w0BCQ8xbDBqMAsGCWCGSAFlAwQBKjALBglghkgBZQMEARYwCwYJYIZIAWUDBAEC +MAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUr +DgMCBzANBggqhkiG9w0DAgIBKDANBgkqhkiG9w0BAQEFAASCATBTDhfI4eA44ENY +9bQGbPVABFbrdTh9DwfU05Hqam+XlghWefybu4A5Qu3pm2sfiWz2LQLL5/ogYVmv ++wq4vDYkArhHBk1gxVZ5ydZBaMBtne9rYNxNigzE0eziwco/OvyDG1Xg4wKZHNf8 +/PYpe98yJH0BgDWCMMSqsOZEC4q97eDFsIgRuuZm6Rgd+pXIwEWcelTdmJ5nfftP +e7uWoJZo1eBMsqUUREChw9SnPWCOysONCCTgdfvVOKPb1DZmmzGiK6CS6GfVgrJw +LvAjaBb3l3B9UssS/w+Sp44BwfCeFkntv8U0FiA/Cgg2sGT3illmguvCzBQon9t5 +c4Eg07LRVt1WP2tt/BbFRVhiHa+8zCOr5bCN1cOs+c17yhYqCYHz3RGGTMWWYAX1 +dFnWPDtb + diff --git a/tests/cert-tests/smime b/tests/cert-tests/smime new file mode 100755 index 0000000000..dd5514f687 --- /dev/null +++ b/tests/cert-tests/smime @@ -0,0 +1,61 @@ +#!/bin/sh + +# Copyright (C) 2017 Red Hat, Inc. +# +# This file is part of GnuTLS. +# +# GnuTLS 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. +# +# GnuTLS 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 GnuTLS; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +#set -e + +srcdir="${srcdir:-.}" +CERTTOOL="${CERTTOOL:-../../src/certtool${EXEEXT}}" +DIFF="${DIFF:-diff -b -B}" + +if ! test -x "${CERTTOOL}"; then + exit 77 +fi + +if ! test -z "${VALGRIND}"; then + VALGRIND="${LIBTOOL:-libtool} --mode=execute ${VALGRIND} --error-exitcode=15" +fi + +OUTFILE=out-pkcs7.$$.tmp + +. ${srcdir}/../scripts/common.sh + +check_for_datefudge + +# test the --smime-to-p7 functionality +${VAGRLIND} "${CERTTOOL}" --smime-to-p7 --infile "${srcdir}/data/pkcs7.smime" --outfile ${OUTFILE} +rc=$? +if test "${rc}" != "0"; then + echo "SMIME to pkcs7 transformation failed" + exit ${rc} +fi + + +datefudge -s "2017-4-6" \ +${VALGRIND} "${CERTTOOL}" --p7-verify --load-certificate "${srcdir}/../../doc/credentials/x509/cert-rsa.pem" <"${OUTFILE}" +rc=$? + +if test "${rc}" != "0"; then + echo "PKCS7 verification failed" + exit ${rc} +fi + +rm -f "${OUTFILE}" + +exit 0 |