nix(loadtest): refactor key selection

Just a bit simpler.
This commit is contained in:
Wolfgang Walther
2026-06-26 19:33:51 +00:00
parent a079d23de1
commit 32706284f0
+8 -15
View File
@@ -25,7 +25,7 @@ secret_key = "reallyreallyreallyreallyverysafe"
def generate_target( def generate_target(
now: int, now: int,
exp_inc: Optional[int], exp_inc: Optional[int],
rsa_private_key: Optional[jwt.JWK], key: jwt.JWK,
) -> list[str]: ) -> list[str]:
"""Generate a target using an HS256 or RS256 JWT""" """Generate a target using an HS256 or RS256 JWT"""
headers = { headers = {
@@ -40,12 +40,8 @@ def generate_target(
"role": "postgrest_test_author", "role": "postgrest_test_author",
} }
if rsa_private_key is None: headers["alg"] = "RS256" if key.get("kty") == "RSA" else "HS256"
key = jwt.JWK.from_password(secret_key)
headers["alg"] = "HS256"
else:
key = rsa_private_key
headers["alg"] = "RS256"
token = jwt.JWT(headers, claims) token = jwt.JWT(headers, claims)
token.make_signed_token(key) token.make_signed_token(key)
@@ -90,8 +86,9 @@ def main():
nsamples = 500 # per algorithm nsamples = 500 # per algorithm
ntargets = 100000 ntargets = 100000
hs = jwt.JWK.from_password(secret_key)
private_key_data = args.private_key_path.read_text() private_key_data = args.private_key_path.read_text()
rsa_private_key = jwt.JWK.from_json(private_key_data) rsa = jwt.JWK.from_json(private_key_data)
print(f"Generating {ntargets} targets...") print(f"Generating {ntargets} targets...")
@@ -110,17 +107,13 @@ def main():
for i in range(ntargets): for i in range(ntargets):
target = generate_target( target = generate_target(
now, now, run_postgrest_time + i // 1000, rsa if i % 2 == 0 else hs
run_postgrest_time + i // 1000,
rsa_private_key if i % 2 == 0 else None,
) )
lines.extend(target) lines.extend(target)
else: else:
hs_targets = [generate_target(now, None, None) for _ in range(nsamples)] hs_targets = [generate_target(now, None, hs) for _ in range(nsamples)]
rsa_targets = [ rsa_targets = [generate_target(now, None, rsa) for _ in range(nsamples)]
generate_target(now, None, rsa_private_key) for _ in range(nsamples)
]
for i in range(ntargets): for i in range(ntargets):
target = random.choice(hs_targets if i % 2 == 0 else rsa_targets) target = random.choice(hs_targets if i % 2 == 0 else rsa_targets)
lines.extend(target) lines.extend(target)