Downloads · Integrität
Integrität einer Knot-Core-Zip-Datei prüfen
So bestätigen Sie, dass eine von knot.tools/downloads/knot-core/latest heruntergeladene Zip-Datei der veröffentlichten Version entspricht.
Aktuelle Version Knot Core 2.13.24Manifest
releases.json1. Veröffentlichten SHA256 abrufen
Der aktuelle Hash steht auf der Knot-Core-Seite und im Manifest:
curl -sS https://knot.tools/downloads/data/releases.json | jq -r '.latest.zip_sha256'
Oder über die HTTP-Header beim Download:
curl -sI https://knot.tools/downloads/knot-core/latest | grep -i x-knot-sha256
SHA256
8432e7f55eeceef36e055d9d530622984fead0ad4ea657d112c231c8574a3cfb2. Zip-Datei herunterladen
curl -sSL -o knot-core.zip https://knot.tools/downloads/knot-core/latest
3. Lokal vergleichen
macOS / Linux (BSD):
shasum -a 256 knot-core.zip
Linux (GNU):
sha256sum knot-core.zip
Das Ergebnis muss exakt dem veröffentlichten zip_sha256 entsprechen.
4. Ed25519-Signatur (Releases ≥ 2.13.4)
Das Manifest enthält signature_hex und signature_payload. Die Signatur deckt das kanonische JSON der Payload ab (nicht den binären Inhalt der Zip-Datei). Festgelegter öffentlicher Schlüssel: rel-2026-04.
628d5479fee21f70088115ea3dba50264d404d5a82782d6d20c781d3d27e188e
PHP-Beispiel (Erweiterung sodium):
$manifest = json_decode(file_get_contents('https://knot.tools/downloads/data/releases.json'), true);
$payload = $manifest['latest']['signature_payload'];
$sig = sodium_hex2bin($manifest['latest']['signature_hex']);
$pub = sodium_hex2bin('628d5479fee21f70088115ea3dba50264d404d5a82782d6d20c781d3d27e188e');
$sort = function (array &$a) use (&$sort): void {
ksort($a);
foreach ($a as &$v) {
if (is_array($v)) {
$sort($v);
}
}
};
$sort($payload);
$canonical = json_encode($payload, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
var_export(sodium_crypto_sign_verify_detached($sig, $canonical, $pub));