summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2017-05-26 17:26:34 +0200
committerNikos Mavrogiannopoulos <nmav@redhat.com>2017-07-17 17:08:01 +0200
commitcf7c61ba849937f3d9bbd62bcac78e6f728f3790 (patch)
treeeacad7528959261bdfa4753e30abed5de523e227
parent90d07b2834651c2e4a341a5d78a9996422b9a23d (diff)
downloadgnutls-cf7c61ba849937f3d9bbd62bcac78e6f728f3790.tar.gz
tests: Added unit test on EdDSA key parsing
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
-rw-r--r--tests/key-tests/Makefile.am7
-rw-r--r--tests/key-tests/data/pkcs8-eddsa.pem3
-rw-r--r--tests/key-tests/data/pkcs8-eddsa.pem.txt25
-rwxr-xr-xtests/key-tests/pkcs8-eddsa64
4 files changed, 96 insertions, 3 deletions
diff --git a/tests/key-tests/Makefile.am b/tests/key-tests/Makefile.am
index 1ff28b5863..888b613189 100644
--- a/tests/key-tests/Makefile.am
+++ b/tests/key-tests/Makefile.am
@@ -31,11 +31,12 @@ EXTRA_DIST = data/key-ca.pem data/key-user.pem \
data/bad-key.pem data/p8key-illegal.pem data/key-illegal.pem data/pkcs8-pbes2-sha256.pem \
data/pkcs8-pbes1-des-md5.pem data/pkcs8-invalid8.der data/key-invalid1.der \
data data/pkcs8-invalid9.der data/key-invalid2.der data/pkcs8-invalid10.der \
- data/key-invalid3.der
+ data/key-invalid3.der data/pkcs8-eddsa.pem data/pkcs8-eddsa.pem.txt
-dist_check_SCRIPTS = key-id pkcs8 pkcs8-decode dsa ecdsa illegal-rsa pkcs8-invalid key-invalid
+dist_check_SCRIPTS = key-id pkcs8 pkcs8-decode dsa ecdsa illegal-rsa pkcs8-invalid key-invalid \
+ pkcs8-eddsa
-TESTS = key-id ecdsa pkcs8-invalid key-invalid pkcs8-decode pkcs8
+TESTS = key-id ecdsa pkcs8-invalid key-invalid pkcs8-decode pkcs8 pkcs8-eddsa
if !WITH_OLD_NETTLE
TESTS += illegal-rsa
diff --git a/tests/key-tests/data/pkcs8-eddsa.pem b/tests/key-tests/data/pkcs8-eddsa.pem
new file mode 100644
index 0000000000..e447080ae2
--- /dev/null
+++ b/tests/key-tests/data/pkcs8-eddsa.pem
@@ -0,0 +1,3 @@
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VwBCIEINTuctv5E1hK1bbY8fdp+K06/nwoy/HU++CXqI9EdVhC
+-----END PRIVATE KEY-----
diff --git a/tests/key-tests/data/pkcs8-eddsa.pem.txt b/tests/key-tests/data/pkcs8-eddsa.pem.txt
new file mode 100644
index 0000000000..665124de2c
--- /dev/null
+++ b/tests/key-tests/data/pkcs8-eddsa.pem.txt
@@ -0,0 +1,25 @@
+Public Key Info:
+ Public Key Algorithm: EdDSA (Ed25519)
+ Key Security Level: High (256 bits)
+
+curve: Ed25519
+private key:
+ d4:ee:72:db:f9:13:58:4a:d5:b6:d8:f1:f7:69:f8:ad
+ 3a:fe:7c:28:cb:f1:d4:fb:e0:97:a8:8f:44:75:58:42
+
+
+x:
+ 19:bf:44:09:69:84:cd:fe:85:41:ba:c1:67:dc:3b:96
+ c8:50:86:aa:30:b6:b6:cb:0c:5c:38:ad:70:31:66:e1
+
+
+
+Public Key PIN:
+ pin-sha256:oekVYFTgT6yJmunydRMs3Ael28TqLCrTof/G4NJTaB8=
+Public Key ID:
+ sha256:a1e9156054e04fac899ae9f275132cdc07a5dbc4ea2c2ad3a1ffc6e0d253681f
+ sha1:3a04967761a552db7e9e18c6dba4bd4aae119908
+
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VwBCIEINTuctv5E1hK1bbY8fdp+K06/nwoy/HU++CXqI9EdVhC
+-----END PRIVATE KEY-----
diff --git a/tests/key-tests/pkcs8-eddsa b/tests/key-tests/pkcs8-eddsa
new file mode 100755
index 0000000000..7474078ff6
--- /dev/null
+++ b/tests/key-tests/pkcs8-eddsa
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+# Copyright (C) 2004-2006, 2010, 2012 Free Software Foundation, Inc.
+#
+# Author: Simon Josefsson
+#
+# 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.
+
+srcdir="${srcdir:-.}"
+CERTTOOL="${CERTTOOL:-../../src/certtool${EXEEXT}}"
+DIFF="${DIFF:-diff -b -B}"
+TMPFILE=pkcs8-eddsa.$$.tmp
+
+if ! test -x "${CERTTOOL}"; then
+ exit 77
+fi
+
+if test "${GNUTLS_FORCE_FIPS_MODE}" = 1;then
+ echo "Cannot run in FIPS140-2 mode"
+ exit 77
+fi
+
+if ! test -z "${VALGRIND}"; then
+ VALGRIND="${LIBTOOL:-libtool} --mode=execute ${VALGRIND}"
+fi
+
+for p8 in "pkcs8-eddsa.pem"; do
+ set -- ${p8}
+ file="$1"
+ ${VALGRIND} "${CERTTOOL}" --key-info --pkcs8 --password "" \
+ --infile "${srcdir}/data/${file}" --outfile $TMPFILE
+ rc=$?
+ if test ${rc} != 0; then
+ echo "PKCS8 FATAL ${p8}"
+ exit 1
+ fi
+
+ echo ""
+ ${DIFF} -u "${srcdir}/data/${p8}.txt" $TMPFILE
+ rc=$?
+ if test ${rc} != 0; then
+ cat $TMPFILE
+ echo "PKCS8 FATAL TXT ${p8}"
+ exit 1
+ fi
+done
+rm -f $TMPFILE
+
+echo "PKCS8 DONE"
+exit 0