blob: f04ec6acb39ba64ee038a9e2ea664b91d6de0048 [file] [log] [blame]
import argparse
import base64
import os
import subprocess
import sys
os.environ["BUILDKITE_ORGANIZATION_SLUG"] = "bazel"
import bazelci
def encrypt(value, kms_key):
return subprocess.check_output(
[
"gcloud",
"kms",
"encrypt",
"--project",
"bazel-untrusted",
"--location",
"global",
"--keyring",
"buildkite",
"--key",
kms_key,
"--ciphertext-file",
"-",
"--plaintext-file",
"-",
],
input=value.encode("utf-8"),
env=os.environ,
)
def main(argv=None):
if argv is None:
argv = sys.argv[1:]
parser = argparse.ArgumentParser(description="Bazel Continuous Integration Encryption Tool")
parser.add_argument("--key_name", type=str)
parser.add_argument("--value", type=str)
args = parser.parse_args(argv)
if not args.key_name or not args.value:
print("Both --key_name and --value must be specified", file=sys.stderr)
exit(1)
print("Original: %s" % args.value)
enc = encrypt(args.value, args.key_name)
enc = base64.b64encode(enc).decode("utf-8").strip()
print("Encoded: %s" % enc)
dec = bazelci.decrypt_token(enc, args.key_name)
print("Decoded: %s" % dec)
if __name__ == "__main__":
sys.exit(main())