123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/bin/bash -ex
- tmpdir=`mktemp -d 2>/dev/null || mktemp -d -t jose`
- function onexit() {
- rm -rf $tmpdir
- }
- trap exit ERR
- trap onexit EXIT
- for T in '{"alg":"ECDH"}' '{"alg":"ECDH","crv":"P-256"}' '{"kty":"EC","crv":"P-256"}'; do
- jose jwk gen -i "$T" -o $tmpdir/exc_a.jwk
- jose jwk gen -i "$T" -o $tmpdir/exc_b.jwk
- jose jwk pub -i $tmpdir/exc_a.jwk -o $tmpdir/exc_a.pub.jwk
- jose jwk pub -i $tmpdir/exc_b.jwk -o $tmpdir/exc_b.pub.jwk
- a=`jose jwk exc -l $tmpdir/exc_a.jwk -r $tmpdir/exc_b.pub.jwk`
- b=`jose jwk exc -l $tmpdir/exc_b.jwk -r $tmpdir/exc_a.pub.jwk`
- c=`jose jwk exc -l $tmpdir/exc_a.jwk -r $tmpdir/exc_b.jwk`
- d=`jose jwk exc -l $tmpdir/exc_b.jwk -r $tmpdir/exc_a.jwk`
- test "$a" == "$b"
- test "$c" == "$d"
- test "$a" == "$c"
- ! jose jwk exc -l $tmpdir/exc_a.pub.jwk -r $tmpdir/exc_b.jwk
- ! jose jwk exc -l $tmpdir/exc_b.pub.jwk -r $tmpdir/exc_a.jwk
- ! jose jwk exc -l $tmpdir/exc_a.pub.jwk -r $tmpdir/exc_b.pub.jwk
- ! jose jwk exc -l $tmpdir/exc_b.pub.jwk -r $tmpdir/exc_a.pub.jwk
- done
- jose jwk gen -i '{"alg":"ECDH","crv":"P-384"}' -o $tmpdir/exc_c.jwk
- ! jose jwk exc -l $tmpdir/exc_c.jwk -r $tmpdir/exc_a.pub.jwk
- jose jwk gen -i '{"kty":"EC","crv":"P-384"}' -o $tmpdir/exc_c.jwk
- ! jose jwk exc -l $tmpdir/exc_c.jwk -r $tmpdir/exc_a.pub.jwk
- jose jwk gen -i '{ "alg": "ES256" }' -o $tmpdir/exc_c.jwk
- ! jose jwk exc -l $tmpdir/exc_c.jwk -r $tmpdir/exc_a.pub.jwk
- srv=`jose jwk gen -i '{"alg":"ECMR"}'`
- clt=`jose jwk gen -i '{"alg":"ECMR"}'`
- eph=`jose jwk gen -i '{"alg":"ECMR"}'`
- spb=`echo "$srv" | jose jwk pub -i-`
- cpb=`echo "$clt" | jose jwk pub -i-`
- key=`echo "$clt$spb" | jose jwk exc -l- -r-`
- sub=`echo "$eph$spb" | jose jwk exc -l- -r- -i '{"alg":"ECMR"}'`
- req=`echo "$cpb$eph" | jose jwk exc -l- -r- -i '{"alg":"ECMR"}'`
- rep=`echo "$srv$req" | jose jwk exc -l- -r- -i '{"alg":"ECMR"}'`
- rec=`echo "$rep$sub" | jose jwk exc -l- -r-`
- echo "$key$rec" | jose fmt -j- -Oj- -OE
|