summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Newson <rnewson@apache.org>2017-05-11 09:28:40 +0100
committerRobert Newson <rnewson@apache.org>2017-05-11 09:48:24 +0100
commite80c3d168c835adea87469ca53dec0d54bab7023 (patch)
tree808bb088412c009b3d77425cd38a9e2ca4f73aa5
parente180555734f84612b3a6df8addf59aa6cfc89f63 (diff)
downloadcouchdb-e80c3d168c835adea87469ca53dec0d54bab7023.tar.gz
add tests for HS384 and HS512
-rw-r--r--src/jwtf.erl28
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.