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

dnsimple / dns_erlang / 30161651760
92%

Build:
DEFAULT BRANCH: main
Ran 25 Jul 2026 02:28PM 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

25 Jul 2026 02:22PM UTC coverage: 91.875% (+0.7%) from 91.225%
30161651760

push

github

NelsonVides
Keep non-canonically encoded RSA public keys opaque (RFC 3110 §2)

RFC 3110 §2 lays an RSA key out as an exponent length -- one octet, or
zero followed by two -- then the exponent and the modulus. Decoding turned
those into the integer pair [E, M], which cannot represent a zero-length
field, a leading zero byte, or which of the two length forms was used; and
encoding strips leading zeros and always picks the one-octet form below
256. Any key relying on those therefore came back a different size:

    all-zero key            28 bytes in, 5 out
    zero-length exponent    truncated
    leading-zero modulus    shortened
    long form, e=65537      re-encoded in the short form

dnssec builds signature input by re-encoding decoded records, so this
changed the canonical RDATA an RRSIG covers -- and RSA is the common
DNSSEC algorithm, so it is the worst place for that to happen.

Keys that are canonically encoded still parse to [E, M], since real ones
always are: an RSA modulus has its top bit set, and 65537 starts 0x01.
Anything else is left as an opaque binary, which the generic encode clause
emits verbatim, so the bytes survive untouched. Rejecting instead was the
first attempt and is worse: it turns one odd DNSKEY into a formerr for the
whole message, and it broke two existing tests that use short filler keys.

Found by prop_rrdata_wire_fidelity, which is also why the RFC 3110 title
joins the generator's table.

7 of 8 new or added lines in 1 file covered. (87.5%)

25 existing lines in 1 file now uncovered.

2974 of 3237 relevant lines covered (91.88%)

11679.76 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
96.63
0.05% src/dns_decode.erl

Coverage Regressions

Lines Coverage ∆ File
25
93.17
5.11% src/dns_encode.erl
Jobs
ID Job ID Ran Files Coverage
1 30161651760.1 25 Jul 2026 02:27PM UTC 12
91.88
GitHub Action Run
Source Files on build 30161651760
  • Tree
  • List 12
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30161651760
  • 51bd563f on github
  • Prev Build on main (#30160754950)
  • Next Build on main (#30253944014)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc