xref: /aosp_15_r20/external/tink/java_src/examples/aead/README.md (revision e7b1675dde1b92d52ec075b0a92829627f2c52a5)
1*e7b1675dSTing-Kang Chang# Java AEAD example
2*e7b1675dSTing-Kang Chang
3*e7b1675dSTing-Kang ChangThis example shows how to encrypt data with Tink using Authenticated Encryption
4*e7b1675dSTing-Kang Changwith Associated Data (AEAD).
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 Tinkey:
10*e7b1675dSTing-Kang Chang
11*e7b1675dSTing-Kang Chang```shell
12*e7b1675dSTing-Kang Changtinkey create-keyset --key-template AES128_GCM --out-format JSON \
13*e7b1675dSTing-Kang Chang    --out aead_test_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 Changgit clone https://github.com/google/tink
22*e7b1675dSTing-Kang Changcd tink/examples/java_src
23*e7b1675dSTing-Kang Changbazel build ...
24*e7b1675dSTing-Kang Chang```
25*e7b1675dSTing-Kang Chang
26*e7b1675dSTing-Kang ChangEncrypt a file:
27*e7b1675dSTing-Kang Chang
28*e7b1675dSTing-Kang Chang```shell
29*e7b1675dSTing-Kang Changecho "some data" > testdata.txt
30*e7b1675dSTing-Kang Chang
31*e7b1675dSTing-Kang Chang./bazel-bin/aead/aead_example encrypt \
32*e7b1675dSTing-Kang Chang    ./aead/aead_test_keyset.json \
33*e7b1675dSTing-Kang Chang    testdata.txt testdata.txt.encrypted
34*e7b1675dSTing-Kang Chang```
35*e7b1675dSTing-Kang Chang
36*e7b1675dSTing-Kang ChangDecrypt a file:
37*e7b1675dSTing-Kang Chang
38*e7b1675dSTing-Kang Chang```shell
39*e7b1675dSTing-Kang Chang./bazel-bin/aead/aead_example decrypt \
40*e7b1675dSTing-Kang Chang    ./aead/aead_test_keyset.json \
41*e7b1675dSTing-Kang Chang    testdata.txt.encrypted testdata.txt.decrypted
42*e7b1675dSTing-Kang Chang
43*e7b1675dSTing-Kang Changdiff testdata.txt testdata.txt.decrypted
44*e7b1675dSTing-Kang Chang```
45