Skip to content

Initial support for set tsig-store-path and set publication-nameserver.#166

Merged
ximon18 merged 16 commits intomainfrom
156-keyset-add-support-for-tsig
Apr 9, 2026
Merged

Initial support for set tsig-store-path and set publication-nameserver.#166
ximon18 merged 16 commits intomainfrom
156-keyset-add-support-for-tsig

Conversation

@ximon18
Copy link
Copy Markdown
Member

@ximon18 ximon18 commented Mar 31, 2026

Based on NLnetLabs/cascade#301 (comment).

To support use of TSIG with dnst keyset when invoked by Cascade, specifically in combination with the dnst keyset ability to do zone transfers to verify the content of published zones.

Adds two "keys" to the key/vaiue pairs supported by the existing dnst keyset set subcommand:

  • dnst keyset set tsig-store-path </PATH/TO/TSIG/KEYSTORE/FILE>
  • dnst keyset set publication-nameservers [<NAMESERVER> [<NAMESERVER>...]]

This PR does NOT contain manual page updates as the functionality is intended to work with TSIG key store files produced by Cascade and does not (at least not in this PR) add support for creating key store files via dnst keyset. Update: @Philip-NLnetLabs and I decided it should be documented, but state the lack of support for actual creating the keystore file if you are using only dnst keyset and not Cascade.

I tested this manually with the .ch zone which requires a TSIG key to transfer it, with a key store file created by Cascade.

…rver`.

To support use of TSIG in Cascade.

Lacks RustDocs, man page entries and additional logging.
@ximon18 ximon18 added this to the next milestone Mar 31, 2026
@ximon18 ximon18 added the enhancement New feature or request label Mar 31, 2026
@ximon18 ximon18 linked an issue Mar 31, 2026 that may be closed by this pull request
Comment thread src/commands/keyset/tsig.rs Outdated
Comment thread src/commands/keyset/tsig.rs
ximon18 and others added 4 commits April 3, 2026 23:15
As Base64 is typically how tooling present/accept TSIG key secret data
to/from users. Requires the same change to be made to Cascade too.
…s takes

a list of nameservers. Missing bits: checks when remove a TSIG store, checks
when adding nameservers.
Comment thread src/commands/keyset/tsig.rs Outdated
.map(Option::Some)
.map_err(|err| err.to_string())
} else {
Ok(None)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should this be an error? It's a bit confusing if keyset silently ignores a key that is not in the key store.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I already changed that code locally but was waiting to push. I'll merge and push the updated code as soon as I can.

Philip-NLnetLabs and others added 2 commits April 7, 2026 19:18
- Remove unnecessary Result.
- Enforce v1 when parsing a persisted key store.
- Fail earlier on key name parsing.
- Verify that referenced TSIG keys exist in the store.
- Include 'hmac-' in the (de)serialized TSIG algorithm name.
@ximon18 ximon18 marked this pull request as ready for review April 7, 2026 19:31
Comment thread doc/manual/build/man/dnst-keyset.1 Outdated
Comment thread doc/manual/build/man/dnst-keyset.1 Outdated
@ximon18 ximon18 merged commit 1f24f3e into main Apr 9, 2026
20 checks passed
@ximon18 ximon18 deleted the 156-keyset-add-support-for-tsig branch April 9, 2026 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

keyset add support for TSIG

2 participants