Skip to content

[backport] Document session signing keys - #1155

Open
JoaoSa-da wants to merge 4 commits into
mainfrom
i31838-port-session-signing-key-doc-changes
Open

[backport] Document session signing keys#1155
JoaoSa-da wants to merge 4 commits into
mainfrom
i31838-port-session-signing-key-doc-changes

Conversation

@JoaoSa-da

Copy link
Copy Markdown
Contributor

Backport #31838 with documentation that was included in the old docs but missing from the new ones.

@mintlify

mintlify Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
cantonfoundation 🟢 Ready View Preview Jul 27, 2026, 3:23 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

Signed-off-by: Joao Sa <joao.sousa@digitalasset.com>
Signed-off-by: Joao Sa <joao.sousa@digitalasset.com>
Signed-off-by: Joao Sa <joao.sousa@digitalasset.com>
Signed-off-by: Joao Sa <joao.sousa@digitalasset.com>

@thibault-da thibault-da left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Few minor comments but LGTM thanks!

```

Please note that **session signing keys** are only used with an external KMS (Key Management Service) provider.
Please note that **session signing keys** are only used with an [external KMS (Key Management Service) provider](/global-synchronizer/production-operations/kms-operations#enable-external-key-storage-with-a-kms) and are already disabled by default.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
Please note that **session signing keys** are only used with an [external KMS (Key Management Service) provider](/global-synchronizer/production-operations/kms-operations#enable-external-key-storage-with-a-kms) and are already disabled by default.
Please note that **session signing keys** are only used with an [external KMS (Key Management Service) provider](/global-synchronizer/production-operations/kms-operations#enable-external-key-storage-with-a-kms) and are disabled by default.

Extending the lifetime of session keys minimizes the need for repeated key negotiation or remote signing—but it also increases the window during which keys are stored in memory, raising the risk of compromise.
Currently, **session encryption keys are enabled by default**, whereas **session signing keys**, being directly tied to
a KMS, are **disabled by default**. However, the latter can be enabled when using an external KMS to store private keys
via a configuration parameter.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Would be nice to either say what the config parameter is here or link to where it;s documented


1. ``keyValidityDuration > defaultMaxSequencingTimeOffset``
2. ``keyValidityDuration > setBalanceRequestSubmissionWindowSize``
3. ``keyValidityDuration > confirmationResponseTimeout + mediatorReactionTimeout``

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Might be worth re-iterating where to find more info about mediatorReactionTimeout etc here. A link to the dynamic sync params page like you did above is fine

#### Configurable parameters

Session signing keys have a validity period associated with them every time they are created, and they are only valid
during that period. This period can be adapted through Canton's configuration files. This section lists the

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Give at least one an example of the full canton config path where the fields below must be set, like

canton.participants.<participant_name>.crypto....

configurable parameters, what they control, and what to keep in mind when modifying them. Throughout this section
``ts`` denotes the timestamp at which we are signing.

- **enabled**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Doesn' t look like the ** show up in bold in the preview

Using "``" is probably better anyway

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants