La clave del procesador de pagos, a salvo
Estás en modo lectura. Crea una cuenta o entra para enviar tu solución y ganar estrellas. Puedes ejecutar código igual.
Así te va a probar Tomás (pruebas de la misión)
test "sellar produce un secreto opaco"
let c be sellar("sk-live-abc123")
assert_eq(text(c), "secret(sealed)")
test "el log nunca contiene la clave"
let c be sellar("sk-live-abc123")
let linea be registro_seguro(c, 555)
assert_eq(json_decode(linea), {"evento": "pago", "monto": 555})
assert(not contains(linea, "sk-live-abc123"), "¡la clave apareció en texto plano!")
assert(not contains(linea, "secret("), "el log no lleva ni el nombre de la clave")
test "codificar la clave es un error"
let c be sellar("sk-live-abc123")
let se_nego be false
try
json_encode({"evento": "pago", "api_key": c})
recover err
set se_nego to true
assert(se_nego, "json_encode tendría que negarse a escribir el secreto")
test "la firma consume la clave sin exponerla"
let c be sellar("sk-live-abc123")
let f be firmar_pedido("pago:555:ARS", c)
assert_eq(length(f), 64)
assert(verify_hmac("pago:555:ARS", f, c))
assert(not verify_hmac("pago:999:ARS", f, c))