feat: add external signing API for HSMs and custom signers #4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I added this interface into the project so I can hook it up with the keymeld project I've been working on. Since keymeld is a centralizing force, I am trying to communicate this is not the preferred approach. This api, of exposing the data to be signed, makes it easier to use this project with an HSM as well. If you hate this idea and don't want to merge this into main I completed understand and will maintain this change on a fork.
Summary
This PR adds an external signing API that allows users to integrate DLC signing with external systems like HSMs, secure enclaves, or signing services (e.g., keymeld).
Changes
src/signing.rs: New module withSigningDatastruct containing:src/lib.rs: Exports the new signing module and integratesSigningDatageneration into the existing APIsrc/regtest.rs: Added comprehensive tests for the external signing workflowUse Cases
This API is useful when you need to:
Design Notes
SigningSessionstate machine remains the preferred approach