xref: /aosp_15_r20/external/tink/python/examples/signature/README.md (revision e7b1675dde1b92d52ec075b0a92829627f2c52a5)
1# Python digital signature example
2
3This example shows how to sign and verify data with Tink using digital
4signatures.
5
6It demonstrates the basic steps of using Tink, namely loading key material,
7obtaining a primitive, and using the primitive to do crypto.
8
9The key material was generated with:
10
11```shell
12$ tinkey create-keyset --key-template ECDSA_P256 --out-format JSON \
13    --out signature_test_private_keyset.json
14$ tinkey create-public-keyset --in signature_test_private_keyset.json \
15    --in-format JSON --out-format JSON --out signature_test_public_keyset.json
16```
17
18## Build and run
19
20### Bazel
21
22Build the examples:
23
24```shell
25$ git clone https://github.com/google/tink
26$ cd tink/python/examples
27$ bazel build ...
28```
29
30Generate a signature:
31
32```shell
33$ echo "some data" > data.txt
34$ touch signature_file.txt
35
36$ ./bazel-bin/signature/signature --mode sign \
37    --keyset_path ./signature/signature_test_private_keyset.json \
38    --data_path data.txt --signature_path signature_file.txt
39```
40
41Verify a signature:
42
43```shell
44$ ./bazel-bin/signature/signature --mode verify \
45    --keyset_path ./signature/signature_test_public_keyset.json \
46    --data_path data.txt --signature_path signature_file.txt
47```
48