diff options
author | Robert Newson <rnewson@apache.org> | 2017-05-11 09:28:40 +0100 |
---|---|---|
committer | Robert Newson <rnewson@apache.org> | 2017-05-11 09:48:24 +0100 |
commit | e80c3d168c835adea87469ca53dec0d54bab7023 (patch) | |
tree | 808bb088412c009b3d77425cd38a9e2ca4f73aa5 | |
parent | e180555734f84612b3a6df8addf59aa6cfc89f63 (diff) | |
download | couchdb-e80c3d168c835adea87469ca53dec0d54bab7023.tar.gz |
add tests for HS384 and HS512
-rw-r--r-- | src/jwtf.erl | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/jwtf.erl b/src/jwtf.erl index 18f84deb7..ae8239a9a 100644 --- a/src/jwtf.erl +++ b/src/jwtf.erl @@ -377,17 +377,40 @@ malformed_token_test() -> ?assertEqual({error, malformed_token}, decode(<<"a.b.c.d">>, [], nil)). +%% jwt.io generated hs256_test() -> EncodedToken = <<"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEyMzQ1Ni" "J9.eyJpc3MiOiJodHRwczovL2Zvby5jb20iLCJpYXQiOjAsImV4cCI" "6MTAwMDAwMDAwMDAwMDAsImtpZCI6ImJhciJ9.iS8AH11QHHlczkBn" "Hl9X119BYLOZyZPllOVhSBZ4RZs">>, KS = fun(<<"123456">>) -> <<"secret">> end, - Checks = [{iss, <<"https://foo.com">>}, iat, exp, sig, typ, alg, kid], + Checks = [{iss, <<"https://foo.com">>}, iat, exp, typ, alg, kid], ?assertMatch({ok, _}, catch decode(EncodedToken, Checks, KS)). -%% jwt.io example +%% pip install PyJWT +%% > import jwt +%% > jwt.encode({'foo':'bar'}, 'secret', algorithm='HS384') +hs384_test() -> + EncodedToken = <<"eyJhbGciOiJIUzM4NCIsInR5cCI6IkpXVCJ9.eyJmb28iOiJiYXIif" + "Q.2quwghs6I56GM3j7ZQbn-ASZ53xdBqzPzTDHm_CtVec32LUy-Ezy" + "L3JjIe7WjL93">>, + KS = fun(_) -> <<"secret">> end, + ?assertMatch({ok, {[{<<"foo">>,<<"bar">>}]}}, catch decode(EncodedToken, [], KS)). + + +%% pip install PyJWT +%% > import jwt +%% > jwt.encode({'foo':'bar'}, 'secret', algorithm='HS512') +hs512_test() -> + EncodedToken = <<"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJmb28iOiJiYX" + "IifQ.WePl7achkd0oGNB8XRF_LJwxlyiPZqpdNgdKpDboAjSTsW" + "q-aOGNynTp8TOv8KjonFym8vwFwppXOLoLXbkIaQ">>, + KS = fun(_) -> <<"secret">> end, + ?assertMatch({ok, {[{<<"foo">>,<<"bar">>}]}}, catch decode(EncodedToken, [], KS)). + + +%% jwt.io generated rs256_test() -> EncodedToken = <<"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0N" "TY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.Ek" @@ -407,4 +430,5 @@ rs256_test() -> ?assertMatch({ok, ExpectedPayload}, decode(EncodedToken, Checks, KS)). + -endif. |