diff --git a/test.sh b/test.sh index 0e31e89..e7fc864 100755 --- a/test.sh +++ b/test.sh @@ -1,13 +1,14 @@ #!/bin/bash + +# cause errors to hard-fail +# (and diff non-0 exit status will cause failure) set -e pemtojwk() { keyid=$1 if [ -z "$keyid" ]; then - echo "" echo "" echo "Testing PEM-to-JWK PKCS#1" - echo "" fi # node bin/rasha.js ./fixtures/privkey-rsa-2048.pkcs1.${keyid}pem \ @@ -17,13 +18,14 @@ pemtojwk() { node bin/rasha.js ./fixtures/pub-rsa-2048.pkcs1.${keyid}pem \ > ./fixtures/pub-rsa-2048.jwk.1.json diff ./fixtures/pub-rsa-2048.jwk.${keyid}json ./fixtures/pub-rsa-2048.jwk.1.json + if [ -z "$keyid" ]; then + echo "Pass" + fi if [ -z "$keyid" ]; then - echo "" echo "" echo "Testing PEM-to-JWK PKCS#8" - echo "" fi # node bin/rasha.js ./fixtures/privkey-rsa-2048.pkcs8.${keyid}pem \ @@ -33,15 +35,16 @@ pemtojwk() { node bin/rasha.js ./fixtures/pub-rsa-2048.spki.${keyid}pem \ > ./fixtures/pub-rsa-2048.jwk.1.json diff ./fixtures/pub-rsa-2048.jwk.${keyid}json ./fixtures/pub-rsa-2048.jwk.1.json + if [ -z "$keyid" ]; then + echo "Pass" + fi } jwktopem() { keyid=$1 if [ -z "$keyid" ]; then - echo "" echo "" echo "Testing JWK-to-PEM PKCS#1" - echo "" fi # node bin/rasha.js ./fixtures/privkey-rsa-2048.jwk.${keyid}json pkcs1 \ @@ -51,13 +54,13 @@ jwktopem() { node bin/rasha.js ./fixtures/pub-rsa-2048.jwk.${keyid}json pkcs1 \ > ./fixtures/pub-rsa-2048.pkcs1.1.pem diff ./fixtures/pub-rsa-2048.pkcs1.${keyid}pem ./fixtures/pub-rsa-2048.pkcs1.1.pem - + if [ -z "$keyid" ]; then + echo "Pass" + fi if [ -z "$keyid" ]; then - echo "" echo "" echo "Testing JWK-to-PEM PKCS#8" - echo "" fi # node bin/rasha.js ./fixtures/privkey-rsa-2048.jwk.${keyid}json pkcs8 \ @@ -67,13 +70,13 @@ jwktopem() { node bin/rasha.js ./fixtures/pub-rsa-2048.jwk.${keyid}json spki \ > ./fixtures/pub-rsa-2048.spki.1.pem diff ./fixtures/pub-rsa-2048.spki.${keyid}pem ./fixtures/pub-rsa-2048.spki.1.pem - + if [ -z "$keyid" ]; then + echo "Pass" + fi if [ -z "$keyid" ]; then - echo "" echo "" echo "Testing JWK-to-SSH" - echo "" fi # node bin/rasha.js ./fixtures/privkey-rsa-2048.jwk.${keyid}json ssh > ./fixtures/pub-rsa-2048.ssh.1.pub @@ -81,6 +84,9 @@ jwktopem() { # node bin/rasha.js ./fixtures/pub-rsa-2048.jwk.${keyid}json ssh > ./fixtures/pub-rsa-2048.ssh.1.pub diff ./fixtures/pub-rsa-2048.ssh.${keyid}pub ./fixtures/pub-rsa-2048.ssh.1.pub + if [ -z "$keyid" ]; then + echo "Pass" + fi } rndkey() { @@ -117,7 +123,7 @@ jwktopem "" echo "" echo "" -echo "Testing different size random keys" +echo "Re-running tests with random keys of varying sizes" echo "" rndkey 32 # minimum key size rndkey 64 @@ -127,11 +133,14 @@ rndkey 512 rndkey 768 rndkey 1024 rndkey 2048 # first secure key size -rndkey 3072 -rndkey 4096 # largest reasonable key size +#rndkey 3072 +#rndkey 4096 # largest reasonable key size + if [ -z "$keyid" ]; then + echo "Pass" + fi echo "" echo "Note:" -echo "Keys larger than 4096 work as well, but they take minutes to generate, so we stop here." +echo "Keys larger than 2048 have been tested and work, but are omitted from automated tests to save time." rm fixtures/*.1.* @@ -141,4 +150,4 @@ echo "" echo "PASSED:" echo "• All inputs produced valid outputs" echo "• All outputs matched known-good values" -echo "" +echo "• All random tests passed reciprosity"