-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update implementation of DNSSEC03 #1304
Conversation
"Not in MANIFEST: t/Test-dnssec03.t" |
Follows specifiation update (zonemaster/zonemaster#1189). Note that Prefix Suffix List check (step 13.2.2.1) is not yet implemented, as this service is not yet provided by Zonemaster. Also note that this commit does not update unit tests yet.
Unit test data will be recorded and added in a later commit.
42bf972
to
3da5d46
Compare
|
|
|
|
--> Missing DS03_NSEC3_OPT_OUT_DISABLED |
In two cases |
Must be updated:
|
Indeed, there was a bug in the implementation of
See my comments first: zonemaster/zonemaster#1218 (comment) and zonemaster/zonemaster#1218 (comment).
Done in commit b006d92. |
Commit c027a61 updates the implementation assuming the specification is correct. See zonemaster/zonemaster#1218 (comment). |
This PR will then require updatd Zonemaster-LDNS? Will that affect Engine elsewhere? |
No,
|
From scenario UNASSIGNED-FLAG-USED:
The value of the flag integer is 2, but the flag, in this case, is 6, isn't it? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks fine except maybe a detail from scenario UNASSIGNED-FLAG-USED (see my comment).
I have not checked why the two tests in t/Test-dnssec.t
fails. Can they just be removed?
This commit corrects the implementation of step 13 (NSEC3 Flags) from the specification.
Ah yes, an oversight on my end. Thing is, Zonemaster::LDNS::RR::NSEC3::flags() returns "the native uint8_t representation from the rdf" (rdf: resource record data field). See ldns_nsec3_flags() definition and code. I have just changed the code in Engine to make a bit comparison from the decimal representation instead. See commit 38ecf00.
Mainly it is because I forgot to re-record unit test data for that Please re-review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Besides that the unit tests for DNSSEC03 seem to crash, I am fine with the PR.
It depends on the fix from zonemaster/zonemaster-ldns#177 which is not yet merged in develop. If you prefer we can wait for that first, and then merge this PR. |
@tgreenx, please approve zonemaster/zonemaster-ldns#177 and ask @marc-vanderwal to merge. I have approved this PR so for me it is fine, but I do not think it should be merged before we can see that CI passes. |
Alright, zonemaster/zonemaster-ldns#177 is merged, and I’m glad to see that all is well. |
Done; it has been merged and now unit tests in this PR have passed too. |
@tgreenx, zonemaster/zonemaster#1189 has been updated and all review comments should be taken care of. The test scenarios and test zones have been updated in zonemaster/zonemaster#1218 to match the added test tags. Please note that all scenarios have been updated when it comes to "forbidden" tags, i.e. the new tags have been added to all old scenarios as "forbidden". Three new scenarios have been created and also test zones for them. As far as I can see the new test zones are correct. |
Implementation and unit tests should now be up to date. See commits 045acc6 and 4ca02b6, respectively. |
Purpose
This PR proposes an update to the implementation of DNSSEC03 following an update to the specification (zonemaster/zonemaster#1189).
Note that Prefix Suffix List check (step 13.2.2.1) is not yet implemented, as this service is not yet provided by Zonemaster.
Requires a fix to Zonemaster::LDNS::RR::NSEC3 to work: zonemaster/zonemaster-ldns#177
Context
Test Case specification: zonemaster/zonemaster#1189
Test Zones specification: zonemaster/zonemaster#1218
Requires zonemaster/zonemaster-ldns#177
Changes
lib/Zonemaster/Engine/Test/DNSSEC.pm
share/profile.json
andshare/profile.yaml
t/Test-dnssec03.t
andt/Test-dnssec03.data
How to test this PR
Unit tests are updated and should pass.
Manual testing: