xref: /aosp_15_r20/external/tink/java_src/examples/jwt/README.md (revision e7b1675dde1b92d52ec075b0a92829627f2c52a5)
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