Repository navigation
Ratesight 3.12.1 — multiple pinned control-plane keys
Ratesight WordPress plugin 3.12.1.
Multiple pinned control-plane keys. PUBLIC_KEY (single const) becomes PUBLIC_KEYS, an ordered
list, and verify_control_plane_signature() accepts a signature that verifies against any pinned
key. Only the existing primary key is pinned in this release; the intent is that a replacement signing
key can be published to the fleet in a later release without touching sites by hand again.
- The primary pin is byte-identical to the key it replaces (SHA-256 over the DER SPKI,
3e5ce75718941d9cab45d2b181ad53d5e45a17f39e6a1e1200b3327b20b7e79f), so a site verifying today's
signatures is unaffected. - Every pin is checked rather than returning on the first match, so pin count does not change how long
a rejection takes. - The
ratesight_pairing_public_keyfilter accepts a single PEM string (the historical shape) or a
list; empty or unparsable pins are skipped rather than fatal. Update URI: https://ratesight.comadded, so WordPress cannot treatratesightas a wordpress.org
slug.README.txtnow declaresRequires PHP: 8.0andTested up to: 7.1. (Tested up tois the
WordPress version in the readme spec — it previously said7.0, which is not a WordPress version
and was being used as a PHP field.)
Verification: full plugin suite — 22/22 tests/test-*.php pass, including the 10 new pairing checks
(primary pin verifies, unpinned key refused, differing bytes refused, malformed base64 refused,
single-string filter still verifies and still refuses an unpinned key, unparsable pin skipped, shipped
primary pin parses as EC P-256).
Asset ratesight-3.12.1-06c103aa.zip
sha256 0dff7e50a71f5558050b904ffc77a98c87e6397b4f4a8dd74a8d56de8092f270
Built deterministically by scripts/build-release-package.sh from tag v3.12.1 (82 entries,
timestamps pinned to 2020-01-01).
Not done, deliberately: no manifest registered, no site enrolled, no rollout. Nothing was installed
on any site.