1*e7b1675dSTing-Kang Chang# Java JWT signature example 2*e7b1675dSTing-Kang Chang 3*e7b1675dSTing-Kang ChangThis is an example showing how to sign and verify JSON Web Tokens (JWT) with 4*e7b1675dSTing-Kang ChangTink. 5*e7b1675dSTing-Kang Chang 6*e7b1675dSTing-Kang ChangIt demonstrates the basic steps of using Tink, namely loading key material, 7*e7b1675dSTing-Kang Changobtaining a primitive, and using the primitive to do crypto. 8*e7b1675dSTing-Kang Chang 9*e7b1675dSTing-Kang ChangThe key material was generated with: 10*e7b1675dSTing-Kang Chang 11*e7b1675dSTing-Kang Chang```shell 12*e7b1675dSTing-Kang Chang$ tinkey create-keyset --key-template JWT_ES256 --out-format JSON \ 13*e7b1675dSTing-Kang Chang --out jwt_signature_test_private_keyset.json 14*e7b1675dSTing-Kang Chang``` 15*e7b1675dSTing-Kang Chang 16*e7b1675dSTing-Kang Chang## Build and Run 17*e7b1675dSTing-Kang Chang 18*e7b1675dSTing-Kang Chang### Bazel 19*e7b1675dSTing-Kang Chang 20*e7b1675dSTing-Kang Chang```shell 21*e7b1675dSTing-Kang Chang$ git clone https://github.com/google/tink 22*e7b1675dSTing-Kang Chang$ cd tink/examples/java_src 23*e7b1675dSTing-Kang Chang$ bazel build ... 24*e7b1675dSTing-Kang Chang$ touch token.txt 25*e7b1675dSTing-Kang Chang 26*e7b1675dSTing-Kang Chang$ ./bazel-bin/jwt/jwt_sign \ 27*e7b1675dSTing-Kang Chang ./jwt/jwt_signature_test_private_keyset.json example_audience token.txt 28*e7b1675dSTing-Kang Chang 29*e7b1675dSTing-Kang Chang$ ./bazel-bin/jwt/jwt_generate_public_jwk_set \ 30*e7b1675dSTing-Kang Chang ./jwt/jwt_signature_test_private_keyset.json public_jwk_set.json 31*e7b1675dSTing-Kang Chang 32*e7b1675dSTing-Kang Chang$ ./bazel-bin/jwt/jwt_verify \ 33*e7b1675dSTing-Kang Chang public_jwk_set.json example_audience token.txt 34*e7b1675dSTing-Kang Chang``` 35