31 lines
747 B
Python
Executable File
31 lines
747 B
Python
Executable File
#!/usr/bin/env python3
|
|
from __future__ import annotations
|
|
|
|
import argparse
|
|
import base64
|
|
import json
|
|
import secrets
|
|
|
|
|
|
def generate_base64_key() -> str:
|
|
key_bytes = secrets.token_bytes(32)
|
|
return base64.b64encode(key_bytes).decode("utf-8")
|
|
|
|
|
|
def main() -> None:
|
|
parser = argparse.ArgumentParser(description="Generate AES-256-GCM audit keyring values")
|
|
parser.add_argument("--key-id", default="k1", help="Key ID to generate")
|
|
args = parser.parse_args()
|
|
|
|
key_b64 = generate_base64_key()
|
|
keyring = {args.key_id: key_b64}
|
|
|
|
print("# Base64 key (32 bytes decoded):")
|
|
print(key_b64)
|
|
print("\n# JSON for AUDIT_KEYRING_JSON:")
|
|
print(json.dumps(keyring, ensure_ascii=True))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|