1*e7b1675dSTing-Kang Chang# Python example: working with cleartext keysets 2*e7b1675dSTing-Kang Chang 3*e7b1675dSTing-Kang ChangThis example shows how to generate or load a cleartext keyset, obtain a 4*e7b1675dSTing-Kang Changprimitive, and use the primitive to do crypto. 5*e7b1675dSTing-Kang Chang 6*e7b1675dSTing-Kang ChangWARNING: this is not recommended, consider protecting your keysets with a key 7*e7b1675dSTing-Kang Changmanagement system. 8*e7b1675dSTing-Kang Chang 9*e7b1675dSTing-Kang Chang## Build and run 10*e7b1675dSTing-Kang Chang 11*e7b1675dSTing-Kang Chang### Bazel 12*e7b1675dSTing-Kang Chang 13*e7b1675dSTing-Kang Chang```shell 14*e7b1675dSTing-Kang Chang$ git clone https://github.com/google/tink 15*e7b1675dSTing-Kang Chang$ cd tink/python/examples 16*e7b1675dSTing-Kang Chang$ bazel build ... 17*e7b1675dSTing-Kang Chang``` 18*e7b1675dSTing-Kang Chang 19*e7b1675dSTing-Kang ChangYou can generate a cleartext keyset: 20*e7b1675dSTing-Kang Chang 21*e7b1675dSTing-Kang Chang```shell 22*e7b1675dSTing-Kang Chang$ ./bazel-bin/cleartext_keyset/cleartext_keyset --mode generate \ 23*e7b1675dSTing-Kang Chang --keyset_path aes128_gcm_test_keyset.json 24*e7b1675dSTing-Kang Chang``` 25*e7b1675dSTing-Kang Chang 26*e7b1675dSTing-Kang ChangYou can then encrypt a file with the resulting keyset: 27*e7b1675dSTing-Kang Chang 28*e7b1675dSTing-Kang Chang```shell 29*e7b1675dSTing-Kang Chang$ echo "some data" > testdata.txt 30*e7b1675dSTing-Kang Chang$ ./bazel-bin/cleartext_keyset/cleartext_keyset --mode encrypt \ 31*e7b1675dSTing-Kang Chang --keyset_path aes128_gcm_test_keyset.json \ 32*e7b1675dSTing-Kang Chang --input_path testdata.txt --output_path testdata.txt.encrypted 33*e7b1675dSTing-Kang Chang``` 34*e7b1675dSTing-Kang Chang 35*e7b1675dSTing-Kang ChangOr decrypt a file with: 36*e7b1675dSTing-Kang Chang 37*e7b1675dSTing-Kang Chang```shell 38*e7b1675dSTing-Kang Chang$ ./bazel-bin/cleartext_keyset/cleartext_keyset --mode decrypt \ 39*e7b1675dSTing-Kang Chang --keyset_path aes128_gcm_test_keyset.json \ 40*e7b1675dSTing-Kang Chang --input_path testdata.txt.encrypted --output_path testdata.txt.decrypted 41*e7b1675dSTing-Kang Chang 42*e7b1675dSTing-Kang Chang$ diff testdata.txt testdata.txt.decrypted 43*e7b1675dSTing-Kang Chang``` 44