1load("@rules_python//python:defs.bzl", "py_binary") 2load("@pip_deps//:requirements.bzl", "requirement") 3 4package(default_visibility = ["//visibility:private"]) 5 6licenses(["notice"]) 7 8exports_files([ 9 "jwt_test_private_keyset.json", 10 "jwt_test_public_keyset.json", 11]) 12 13py_binary( 14 name = "jwt_sign", 15 srcs = ["jwt_sign.py"], 16 python_version = "PY3", 17 deps = [ 18 requirement("absl-py"), 19 "@tink_py//tink:cleartext_keyset_handle", 20 "@tink_py//tink:tink_python", 21 "@tink_py//tink/jwt", 22 ], 23) 24 25py_binary( 26 name = "jwt_generate_public_jwk_set", 27 srcs = ["jwt_generate_public_jwk_set.py"], 28 python_version = "PY3", 29 deps = [ 30 requirement("absl-py"), 31 "@tink_py//tink:tink_python", 32 "@tink_py//tink/jwt", 33 ], 34) 35 36py_binary( 37 name = "jwt_verify", 38 srcs = ["jwt_verify.py"], 39 python_version = "PY3", 40 deps = [ 41 requirement("absl-py"), 42 "@tink_py//tink:tink_python", 43 "@tink_py//tink/jwt", 44 ], 45) 46 47sh_test( 48 name = "jwt_signature_test", 49 size = "small", 50 srcs = ["jwt_signature_test.sh"], 51 args = [ 52 "$(rootpath :jwt_sign)", 53 "$(rootpath :jwt_generate_public_jwk_set)", 54 "$(rootpath :jwt_verify)", 55 "$(rootpath :jwt_test_private_keyset.json)", 56 "$(rootpath :jwt_test_public_keyset.json)", 57 ], 58 data = [ 59 ":jwt_generate_public_jwk_set", 60 ":jwt_sign", 61 ":jwt_test_private_keyset.json", 62 ":jwt_test_public_keyset.json", 63 ":jwt_verify", 64 ], 65) 66 67# This runs the previous test assuming the Tink python package has been 68# installed previously with pip3 install. 69sh_test( 70 name = "jwt_signature_test_package", 71 size = "small", 72 srcs = ["jwt_signature_test.sh"], 73 args = [ 74 "'python3 $(rootpath :jwt_sign.py)'", 75 "'python3 $(rootpath :jwt_generate_public_jwk_set.py)'", 76 "'python3 $(rootpath :jwt_verify.py)'", 77 "$(rootpath :jwt_test_private_keyset.json)", 78 "$(rootpath :jwt_test_public_keyset.json)", 79 ], 80 data = [ 81 ":jwt_generate_public_jwk_set.py", 82 ":jwt_sign.py", 83 ":jwt_test_private_keyset.json", 84 ":jwt_test_public_keyset.json", 85 ":jwt_verify.py", 86 ], 87) 88