Skip to content

Release v1.8.0#63

Merged
msimerson merged 1 commit into
mainfrom
release-1.8.0
May 26, 2026
Merged

Release v1.8.0#63
msimerson merged 1 commit into
mainfrom
release-1.8.0

Conversation

@msimerson
Copy link
Copy Markdown
Collaborator

@msimerson msimerson commented May 26, 2026

  • algo updates for ds, rrsig, compressed names, cjs
  • lib/wire.js — hardened readWireName()
    • new wirePackDomainCompressed() for RFC 1035 §4.1.4 name compression
    • charstrs decoder preserves multi-string boundaries
  • lib/bind.js — fromBind() returns array for charstrs (TXT) when input has multiple quoted strings.
  • rr/rrsig.js — getAlgorithmOptions() extended with DNSSEC algorithms 6, 7, 8, 10, 13, 14, 15, 16.
  • rr/ds.js — setDigestType() now accepts SHA-384 (4)
  • rr/txt.js — getWireRdata() and fromTinydnsGeneric() preserve per-segment boundaries.
  • package.json — engines lowered to >=20
    • new build:cjs script via Rollup.
  • test/wire.js, test/base.js, test/rr/{rrsig,ds,txt}.js — round-trip + negative tests for each fix.

@msimerson msimerson requested a review from Copilot May 26, 2026 04:44
@msimerson msimerson marked this pull request as ready for review May 26, 2026 04:48
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Release v1.8.0 focused on DNSSEC algorithm/digest support and correctness hardening around DNS wire encoding/decoding (name compression + TXT multi-string boundary preservation), alongside packaging updates to ship both ESM and CommonJS builds.

Changes:

  • Harden DNS name decoding (readWireName) and add RFC 1035 name compression support via wirePackDomainCompressed().
  • Preserve multi-string TXT boundaries across wire/BIND/tinydns generic parsing and update DNSSEC DS/RRSIG algorithm + DS digest type options.
  • Add CommonJS build output and update docs/changelog/tests for the release.

Reviewed changes

Copilot reviewed 16 out of 19 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
lib/wire.js Adds readWireName bounds/cycle protections, name compression packer, and charstrs decoding behavior updates.
lib/bind.js Updates BIND parsing to preserve multi-string TXT boundaries (array for charstrs).
rr/txt.js Preserves TXT segment boundaries for tinydns generic import and wire encoding.
rr/rrsig.js Expands accepted DNSSEC algorithm IDs (IANA list) and corrects algorithm label for 3.
rr/ds.js Expands accepted DNSSEC algorithm IDs and adds SHA-384 digest type support.
test/wire.js Adds negative tests for readWireName hardening and tests for wirePackDomainCompressed.
test/base.js Normalizes TXT data comparisons to support string/array storage.
test/rr/txt.js Adds round-trip tests for multi-string TXT boundary preservation.
test/rr/rrsig.js Adds acceptance tests for modern DNSSEC algorithms and invalid-algorithm rejection.
test/rr/ds.js Adds SHA-384 digest + modern algorithm acceptance tests and adjusts invalid fixtures.
README.md Documents dual ESM/CJS usage and default export access in CJS.
package.json Bumps version to 1.8.0, adds CJS build + exports mapping, lowers Node engine to >=20.
dist/dns-rr.min.js Updates bundled/minified browser artifact for the release.
CHANGELOG.md Adds v1.8.0 release notes and tag link.
CONTRIBUTORS.md Updates generated contributors list for the release.
.prettierignore Ignores .release/ in formatting.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread lib/wire.js
Comment thread lib/wire.js
Comment thread lib/wire.js
Comment thread lib/bind.js
Comment thread rr/txt.js
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 21 changed files in this pull request and generated 4 comments.

Comment thread lib/wire.js
Comment thread lib/wire.js
Comment thread rr/txt.js
Comment thread README.md
- lib/wire.js — hardened readWireName()
  - reject truncated pointers (pos+1 past packet end)
  - reject pointer targets past packet end
  - reject truncated labels (declared length exceeds packet)
  - reject reserved label-type codes (top bits 01/10)
  - reject labels > 63 bytes
  - reject unterminated names
  - reject out-of-bounds offset
  - new wirePackDomainCompressed() for RFC 1035 §4.1.4 name compression
  - charstrs decoder preserves multi-string boundaries
- lib/bind.js — fromBind() returns array for charstrs (TXT) when input has multiple quoted strings.
- rr/rrsig.js — getAlgorithmOptions() extended with DNSSEC algorithms 6, 7, 8, 10, 13, 14, 15, 16.
- rr/ds.js — setDigestType() now accepts SHA-384 (4)
- rr/txt.js — getWireRdata() and fromTinydnsGeneric() preserve per-segment boundaries.
- package.json — engines lowered to >=20
  - new build:cjs script via Rollup.
- test/wire.js, test/base.js, test/rr/{rrsig,ds,txt}.js — round-trip + negative tests for each fix.
- rr: add missing setters
@msimerson msimerson merged commit 0eee1e7 into main May 26, 2026
10 checks passed
@msimerson msimerson deleted the release-1.8.0 branch May 26, 2026 06:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants