Hver gang Puls regnes, skrives én kvittering. Den kan ikke endres, og den gjør at du kan sjekke at tallene på siden er de som ble regnet.
Dette beviser at tallene kommer uendret fra maskinen som regnet dem, og når. Det beviser ikke at det jernbanen meldte var riktig, og ikke at metoden er riktig. Metoden står på Puls.
Henter kvitteringene …
| Tall for | Regnet | Sjekket | Fingeravtrykk (sha256) | Signatur |
|---|
Du trenger en datamaskin med curl og openssl (Mac og Linux har begge). Hent tallfila og signaturen, og sjekk dem mot kontrollnøkkelen:
curl -s -H "X-TrainRadar-Client: sjekk" -D hoder.txt -o puls.json https://api.trainhub.no/v1/puls-signert
sha256sum puls.json # skal være lik fingeravtrykket i kvitteringen
grep -i x-trainhub-signatur: hoder.txt | cut -d' ' -f2 | tr -d '\r' | base64 -d > sig.bin
echo "KONTROLLNØKKEL" | base64 -d > nokkel.der # nøkkelen under
openssl pkeyutl -verify -pubin -keyform DER -inkey nokkel.der -rawin -in puls.json -sigfile sig.bin
Svarer openssl «Signature Verified Successfully», er fila den maskinen regnet. Endres én byte i fila, feiler sjekken.
Kontrollnøkkel (Ed25519, offentlig; den kan sjekke signaturer, ikke lage dem):