Skip to content

[Guardian] [3/3] Support individual KP cert rotation#785

Open
mskd12 wants to merge 1 commit into
deepakmaram/iop-487-kp-cert-groupsfrom
deepakmaram/iop-487-rotate-kp-cert
Open

[Guardian] [3/3] Support individual KP cert rotation#785
mskd12 wants to merge 1 commit into
deepakmaram/iop-487-kp-cert-groupsfrom
deepakmaram/iop-487-rotate-kp-cert

Conversation

@mskd12

@mskd12 mskd12 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Stacked on #791.

Summary

This PR lets a key provisioner replace one OpenPGP certificate in its roster entry without changing the share or Bitcoin key.

The command uses kp_pgp_cert_path to decrypt and sign. --target-kp-pgp-fingerprint selects the certificate to replace. The signing certificate may be the target or another certificate in the same roster entry. This allows a lost YubiKey to be replaced when another certificate for that KP is still available.

The proxy verifies the KP signature before forwarding the request. This is admission control that discards bulk unsigned or invalid traffic before it reaches the enclave. The guardian verifies the signature again, checks that the signer and target belong to the same share, verifies the submitted share against its commitment, replaces only the target ciphertext, and writes the next cert_seq.

The proxy code has a TODO for #781. Once that PR provides an S3-backed authorization roster, the proxy can also check signer membership and invalidate its cached roster after a successful rotation.

Validation

  • make fmt
  • CI

@mskd12
mskd12 force-pushed the deepakmaram/iop-487-rotate-kp-cert branch 4 times, most recently from d0444c1 to 4675429 Compare July 9, 2026 16:47
@mskd12
mskd12 force-pushed the deepakmaram/iop-487-kp-share-distribution branch from f302a4e to 63a2fce Compare July 9, 2026 19:25
@mskd12
mskd12 force-pushed the deepakmaram/iop-487-rotate-kp-cert branch 4 times, most recently from 507068a to 3527e67 Compare July 9, 2026 20:02
@mskd12
mskd12 force-pushed the deepakmaram/iop-487-rotate-kp-cert branch from 3527e67 to 4ecfc62 Compare July 9, 2026 20:17
@mskd12
mskd12 requested a review from dlukegordon July 9, 2026 20:19
@mskd12
mskd12 marked this pull request as ready for review July 9, 2026 20:19
@mskd12
mskd12 requested a review from bmwill as a code owner July 9, 2026 20:19
@mskd12
mskd12 requested a review from 0xsiddharthks July 9, 2026 20:19
@mskd12
mskd12 force-pushed the deepakmaram/iop-487-kp-share-distribution branch from 63a2fce to b3a431e Compare July 9, 2026 20:22
@mskd12
mskd12 force-pushed the deepakmaram/iop-487-rotate-kp-cert branch from 4ecfc62 to 4cffa25 Compare July 9, 2026 20:23
Base automatically changed from deepakmaram/iop-487-kp-share-distribution to main July 9, 2026 20:39
@mskd12
mskd12 force-pushed the deepakmaram/iop-487-rotate-kp-cert branch from 4cffa25 to eef7bc4 Compare July 9, 2026 20:40
@mskd12
mskd12 marked this pull request as draft July 9, 2026 21:08
@mskd12
mskd12 force-pushed the deepakmaram/iop-487-rotate-kp-cert branch from eef7bc4 to b7a4622 Compare July 15, 2026 23:47
@mskd12 mskd12 changed the title [guardian] Support individual KP cert rotation [Guardian] Support individual KP cert rotation Jul 15, 2026
@mskd12
mskd12 changed the base branch from main to deepakmaram/iop-487-kp-cert-groups July 15, 2026 23:47
@github-actions

Copy link
Copy Markdown
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://MystenLabs.github.io/hashi/pr-preview/pr-785/

Built to branch gh-pages at 2026-07-15 23:49 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@mskd12
mskd12 force-pushed the deepakmaram/iop-487-rotate-kp-cert branch 2 times, most recently from a33f5c6 to d64f6ac Compare July 16, 2026 19:22
@mskd12
mskd12 marked this pull request as ready for review July 16, 2026 20:04
@mskd12 mskd12 changed the title [Guardian] Support individual KP cert rotation [Guardian] [2/2] Support individual KP cert rotation Jul 16, 2026
@mskd12 mskd12 changed the title [Guardian] [2/2] Support individual KP cert rotation [Guardian] [3/3] Support individual KP cert rotation Jul 17, 2026
@mskd12
mskd12 force-pushed the deepakmaram/iop-487-kp-cert-groups branch from bcd3101 to 54d25a0 Compare July 18, 2026 00:27
@mskd12
mskd12 force-pushed the deepakmaram/iop-487-rotate-kp-cert branch from edfa208 to 34de4d9 Compare July 18, 2026 00:28
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.

1 participant