·
9 commits
to main
since this release
= 1.17.6 =
- Fixed broken saves for JSON-LD / W3C Data Integrity, DANE / DNS Key Corroboration, and ECDSA signing settings: all 19 AJAX calls in those sections referenced
archivioPostAdmin.ajaxUrlandarchivioPostAdmin.nonce, butarchivioPostAdminwas never defined viawp_localize_script. The undefined object caused a silent JavaScript error before any request could fire, leaving the save button permanently stuck on "Saving…". All references corrected toarchivioPostData, which is properly localized and carries the correct nonce.
= 1.17.5 =
- Fixed version mismatch: plugin header
VersionandMDSM_VERSIONconstant were stuck at 1.16.0 across the 1.17.x release series. Both now correctly read 1.17.5 and match the readmeStable tag. - Fixed PHP notice and cascading header errors on WordPress 6.7+:
load_plugin_textdomain()was never called despite theText Domain: archiviomdheader declaration. WordPress 6.7 introduced stricter enforcement of translation-loading timing; the missing call caused an early-load notice that output text before headers were sent, triggeringCannot modify header informationwarnings on admin pages. Translation loading is now correctly deferred to theinitaction.
= 1.17.3 =
- Added
/.well-known/archiviomd-dns-spec.json— a machine-readable, self-contained specification for theamd1TXT record format, the TLSA profile, the canonical message format, and the end-to-end verification flow. archiviomd-dns.jsonnow includes aspec_urlfield pointing to the spec endpoint.
= 1.17.2 =
- Added TLSA cert-expiry staleness warning (≤ 30 days warns, expired errors).
- Added
ARCHIVIOMD_DANE_TTLconstant; TTL now configurable and used consistently across rotation threshold, admin UI, andCache-Controlheaders. - Added ETag /
If-None-Match/ 304 conditional response support to the discovery endpoint. - Fixed discovery endpoint returning HTTP 404 when DANE disabled — now returns HTTP 200 with
{"enabled":false}so verifiers can distinguish module-off from a wrong URL. - Fixed DoH network timeout surfacing as a false "DNSSEC not validated" admin notice.
= 1.17.1 =
- Added TLSA / DANE-EE support (RFC 6698) for the ECDSA P-256 certificate. Selector=1 (SubjectPublicKeyInfo) so the record survives certificate renewal without a key change.
- Added copy-to-clipboard buttons for all DNS TXT record values in the admin UI.
- Fixed
Cache-Controlbug in the discovery endpoint that overwrote the intendedpublic, max-age=3600header. - Added
--enableand--disableflags towp archiviomd dane-check.
= 1.17.0 =
- Added DANE / DNS Key Corroboration. Publishes Ed25519, SLH-DSA, ECDSA P-256, and RSA public keys as DNSSEC-protected DNS TXT records in the custom
amd1format. DoH-based health checks, weekly passive cron, key rotation workflow, machine-readable discovery endpoint at/.well-known/archiviomd-dns.json, JSON-LD integration, and WP-CLIwp archiviomd dane-check.
= 1.16.0 =
- Added RSA Compatibility Signing (Extended Format). RSA-PSS/SHA-256 (recommended) and PKCS#1 v1.5/SHA-256. Minimum key size 2048 bits enforced. Public key published at
/.well-known/rsa-pubkey.pem. - Added CMS / PKCS#7 Detached Signatures (Extended Format). DER blob importable directly into Adobe Acrobat and enterprise DMS platforms as
.p7s. Reuses existing ECDSA or RSA key. - Added JSON-LD / W3C Data Integrity Proofs (Extended Format). Cryptosuites
eddsa-rdfc-2022andecdsa-rdfc-2019. DID document at/.well-known/did.json. - All three new methods are opt-in, disabled by default, and sign the same canonical message as all other methods.
= 1.15.0 =
- Added ECDSA P-256 document signing (Enterprise / Compliance Mode). Nonce generation delegated entirely to OpenSSL. Certificate validated on every signing operation. Private keys stored outside
DOCUMENT_ROOT, chmod 0600. Leaf certificate published at/.well-known/ecdsa-cert.pem.
= 1.14.0 =
- Added SLH-DSA (SPHINCS+) post-quantum document signing — NIST FIPS 205, pure PHP, no extensions or Composer dependencies. Four parameter sets: SHA2-128s (default), SHA2-128f, SHA2-192s, SHA2-256s. Hybrid mode with Ed25519 via shared DSSE envelope.
= 1.13.1 =
- Fixed SSRF in the URL decoder (
ajax_decode_url()): hostname now resolved viadns_get_record()with full private/loopback range rejection and cURL IP pinning to prevent TOCTOU. - Fixed rate limiter bypass via
X-Forwarded-For: now uses rightmost IP with private-range validation, falls back toREMOTE_ADDR. - Fixed evidence receipts signed over arbitrary POST data: handler now fetches the authoritative server-written log row by ID.
- Fixed key rotation warning that could not be dismissed (wrong option key names in delete calls).
- Fixed three canary option keys missing from the site-specific obfuscation map (fell through to a site-agnostic fallback, defeating the scheme).
- Fixed ReDoS in
extract_main_content(): input capped at 2 MB;DOMDocumentused as primary extractor; regex fallback uses bounded quantifiers. - Removed
sslverify => falsefrom all outbound fetches. - Added persistent admin notice when
ARCHIVIOMD_HMAC_KEYis not defined inwp-config.php.
= 1.13.0 =
- Added Ch.13 (Sentence-count parity) and Ch.14 (Word-count parity) structural fingerprinting channels — CDN-proof, survive Unicode normalisation.
- Added
Cache-Control: no-transformheader on all fingerprinted responses. - Renamed REST endpoints from
archiviomd/v1/canary-checktocontent/v1/verifyto reduce plugin fingerprinting via API enumeration. - Added
.htaccessto plugin root blocking direct HTTP access to.php,.txt,.json, and other source files. - Added key-derived pair selection for Ch.5/6/8/9: active dictionary subset is site-specific, making adversarial reversal equivalent to key brute-force.
- Added
wp_optionskey obfuscation for all Canary Token settings.
= 1.12.0 =
- Added Cache Compatibility Layer. Detects and repairs Unicode fingerprint stripping by WP Super Cache, W3 Total Cache, LiteSpeed Cache, WP Rocket, and other HTML-minifying caching plugins — no caching plugin configuration required.
= 1.11.0 =
- Added Canary Token channels Ch.8–Ch.12: Spelling Variants (60+ British/American pairs), Hyphenation Choices (30+ compound pairs), Number/Date Style, Punctuation Style II, Citation/Title Style.
= 1.10.0 =
- Added REST API fingerprinting (closes WP REST API scraping path).
- Added rate limiting on public verification endpoint (60 req/min; HTTP 429).
- Added Key Health Monitor with persistent admin notice on HMAC key change.
- Added Discovery Log (
wp_archivio_canary_log) with CSV export. - Added Signed Evidence Package —
.sig.jsonreceipt with SHA-256 + optional Ed25519 signature for each decode event. - Added Re-fingerprint All Posts bulk action (single atomic SQL upsert).
- Added Canary Coverage meta box on the post edit screen.
- Added Ch.7 (Punctuation Choice: Oxford comma, em-dash/parentheses).
- Added URL Decoder and DMCA Notice Generator tabs.
= 1.9.0 =
- Added Ch.5 (Contraction Encoding) and Ch.6 (Synonym Substitution) to the Canary Token semantic layer. Both opt-in, disabled by default.
= 1.8.0 =
- Added Canary Token steganographic content fingerprinting (opt-in, disabled by default). 112-bit HMAC-authenticated payload across four Unicode channels with majority-vote redundancy.