Clave de firma
Foruster no genera ni guarda claves: la clave es del laboratorio y se crea una sola vez.
# Privada. Custódiala: quien la tenga puede firmar.
openssl genpkey -algorithm ed25519 -out laboratorio.key
chmod 600 laboratorio.key
# Pública, para quien deba verificar.
openssl pkey -in laboratorio.key -pubout -out laboratorio.pub
Firmar un expediente ya cerrado:
foruster-cli sign /casos/EXP-1-2026 --key laboratorio.key \
--signer "Nombre Apellidos" --signer-id "ID-0001"
La clave pública se reparte por fuera del expediente: por diligencia, en el pie del informe o desde el registro del laboratorio.
Una clave pública que venga dentro del expediente no sirve de raíz de confianza. Quien pueda alterar el expediente puede cambiarla y volver a firmar. Tienes que aportar por tu cuenta la clave en la que confías; sin ella, Foruster declara que la firma está presente pero sin comprobar, nunca que sea válida.
Verificación
Foruster revisa el manifiesto, la cadena de auditoría y el hash de
cada elemento; con --public-key, también la firma. Sale
con código distinto de cero si algo no concuerda. Añade
--json y obtendrás un campo pass, para no
tener que leer la prosa desde un script.
foruster-cli verify /casos/EXP-1-2026 --public-key laboratorio.pub
Por un tercero
La firma se calcula sobre los bytes del manifiesto tal y como están guardados. Por eso se comprueba sin ejecutar Foruster:
openssl pkeyutl -verify -pubin -inkey laboratorio.pub \
-rawin -in manifest.json -sigfile manifest.sig
Custodia
Cada traspaso se añade al final de la misma cadena. Si vuelves a comprobar el expediente, verás que ese añadido no la rompió.
foruster-cli custody /casos/EXP-1-2026 --to "Secretaría" \
--operator "Nombre Apellidos" --operator-id "ID-0001"