summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2017-05-30 12:53:40 +0200
committerNikos Mavrogiannopoulos <nmav@redhat.com>2017-07-17 17:08:01 +0200
commitf9d196b026780a27ed295f3cbeb90b980ee518c5 (patch)
treee3107f0da2ccd25fff1ad15d8b20871be5edc00d /tests
parent82cb4b7c8d939717a3695faf224564dc2919f5d3 (diff)
downloadgnutls-f9d196b026780a27ed295f3cbeb90b980ee518c5.tar.gz
tests: parse and interpret an EdDSA public key
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/cert-tests/Makefile.am2
-rwxr-xr-xtests/cert-tests/certtool-eddsa17
-rw-r--r--tests/cert-tests/data/pubkey-eddsa.pem18
3 files changed, 35 insertions, 2 deletions
diff --git a/tests/cert-tests/Makefile.am b/tests/cert-tests/Makefile.am
index c5b270f06b..8c1b508827 100644
--- a/tests/cert-tests/Makefile.am
+++ b/tests/cert-tests/Makefile.am
@@ -74,7 +74,7 @@ EXTRA_DIST = data/ca-no-pathlen.pem data/no-ca-or-pathlen.pem data/aki-cert.pem
data/mem-leak.p12 data/alt-chain-new-ca.pem data/alt-chain-old-ca.pem \
data/alt-chain.pem data/pkcs7-chain.pem data/pkcs7-chain-root.pem \
data/pkcs7-chain-endcert-key.pem data/cert-rsa-pss.pem data/openssl-invalid-time-format.pem \
- data/cert-eddsa.pem
+ data/cert-eddsa.pem data/pubkey-eddsa.pem
dist_check_SCRIPTS = pathlen aki certtool invalid-sig email \
pkcs7 pkcs7-broken-sigs privkey-import name-constraints certtool-long-cn crl provable-privkey \
diff --git a/tests/cert-tests/certtool-eddsa b/tests/cert-tests/certtool-eddsa
index 83326427f3..cd3c43ee5a 100755
--- a/tests/cert-tests/certtool-eddsa
+++ b/tests/cert-tests/certtool-eddsa
@@ -38,7 +38,7 @@ if test "${GNUTLS_FORCE_FIPS_MODE}" = 1;then
exit 77
fi
-# Test certificate in internet draft
+# Test certificate in draft-ietf-curdle-pkix-04
${VALGRIND} "${CERTTOOL}" -i --infile "${srcdir}/data/cert-eddsa.pem" --outfile "${TMPFILE}"
rc=$?
@@ -53,6 +53,20 @@ if test $? != 0;then
exit 1
fi
+# Test public key in draft-ietf-curdle-pkix-04
+${VALGRIND} "${CERTTOOL}" --pubkey-info --infile "${srcdir}/data/pubkey-eddsa.pem" --outfile "${TMPFILE}"
+rc=$?
+if test "${rc}" != "0"; then
+ echo "Could not read an EdDSA public key"
+ exit 1
+fi
+
+$DIFF ${TMPFILE} "${srcdir}/data/pubkey-eddsa.pem"
+if test $? != 0;then
+ echo "Error in parsing EdDSA public key"
+ exit 1
+fi
+
# Create an RSA-PSS private key, restricted to the use with RSA-PSS
${VALGRIND} "${CERTTOOL}" --generate-privkey --pkcs8 --password '' \
@@ -71,6 +85,7 @@ if test "${rc}" != "0"; then
exit 1
fi
+
# Create an EdDSA certificate from an EdDSA private key
${VALGRIND} "${CERTTOOL}" --generate-self-signed \
--pkcs8 --load-privkey "$KEYFILE" --password '' \
diff --git a/tests/cert-tests/data/pubkey-eddsa.pem b/tests/cert-tests/data/pubkey-eddsa.pem
new file mode 100644
index 0000000000..dbcca224dc
--- /dev/null
+++ b/tests/cert-tests/data/pubkey-eddsa.pem
@@ -0,0 +1,18 @@
+Public Key Information:
+ Public Key Algorithm: EdDSA (Ed25519)
+ Algorithm Security Level: High (256 bits)
+ Curve: Ed25519
+ 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 ID:
+ sha1:3a04967761a552db7e9e18c6dba4bd4aae119908
+ sha256:a1e9156054e04fac899ae9f275132cdc07a5dbc4ea2c2ad3a1ffc6e0d253681f
+Public Key PIN:
+ pin-sha256:oekVYFTgT6yJmunydRMs3Ael28TqLCrTof/G4NJTaB8=
+
+
+-----BEGIN PUBLIC KEY-----
+MCowBQYDK2VwAyEAGb9ECWmEzf6FQbrBZ9w7lshQhqowtrbLDFw4rXAxZuE=
+-----END PUBLIC KEY-----