• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dnsimple / dns_erlang / 22874211896
89%

Build:
DEFAULT BRANCH: main
Ran 09 Mar 2026 08:52PM UTC
Jobs 1
Files 12
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

09 Mar 2026 08:51PM UTC coverage: 88.654% (+0.09%) from 88.564%
22874211896

push

github

web-flow
fix(dnssec): convert ECDSA signatures between DER and RFC 6605 format (#118)

* fix(dnssec): convert ECDSA signatures between DER and RFC 6605 format

Erlang's `crypto:sign/4` for ECDSA returns DER-encoded ASN.1 (`SEQUENCE
{ INTEGER r, INTEGER s }`), which is variable-length (~70-72 bytes for
P-256, ~102-104 for P-384) due to ASN.1 framing: type tags, length
prefixes, and leading zero bytes for sign-bit padding.

RFC 6605 §4 requires DNSSEC RRSIG signatures to be fixed-size `r || s`
concatenation: exactly 64 bytes for P-256 (32+32) and 96 bytes for P-384
(48+48).

Without this conversion, signatures produced by `dns_erlang` are rejected
by external resolvers (BIND, Unbound, Google DNS). The bug was masked in
end-to-end tests because both sign and verify used DER, cancelling out
the format mismatch.

Uses OTP's `public_key:der_decode/2` and `public_key:der_encode/2` with
the `'ECDSA-Sig-Value'` ASN.1 type for the DER conversion, matching how
the existing DSA code already handled the same problem via
`'Dss-Sig-Value'`.

Adds regression tests that assert exact signature sizes (64 and 96
bytes) which would have caught this — DER signatures never hit those
sizes due to the ASN.1 overhead.

* Correct the number of octecs comment for ed448

* Update CHANGELOG.md

17 of 19 new or added lines in 1 file covered. (89.47%)

2680 of 3023 relevant lines covered (88.65%)

3529.38 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
95.32
0.77% src/dnssec.erl
Jobs
ID Job ID Ran Files Coverage
1 22874211896.1 09 Mar 2026 08:52PM UTC 12
88.65
GitHub Action Run
Source Files on build 22874211896
  • Tree
  • List 12
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #22874211896
  • 78c3df83 on github
  • Prev Build on main (#22863374908)
  • Next Build on main (#22897812464)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc