You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Critical fixes
- CreateSplitKey 422: add ObjectType: SymmetricKey as first TTLV field
(required non-Option field in server struct; was always 422 before)
- Share UID extraction: read UniqueIdentifier not PrivateKeyUniqueIdentifier
(WASM deserialises CreateSplitKeyResponse.unique_identifier as
{ UniqueIdentifier: string[] }, not PrivateKeyUniqueIdentifier)
- Extract shared buildCreateSplitKeyRequest to splitKeyUtils.ts so both
SplitKey.tsx and CryptoOfficerRole.tsx stay in sync
- Compensating Destroy: if CreateSplitKey (step 2) fails after AES key
creation (step 1), destroy the orphaned key before re-throwing to
prevent the permanent 'object already exists' retry trap
## Peer-revocation fix
- Show the revoke section to any CO candidate, not only active COs
(server allows dormant candidates as break-glass peer-revocation path)
- Gate on ceremony_activated && users.length > 0 instead of is_crypto_officer
- Disable the button for dormant COs when no target is selected
- Add revokeHintDormant i18n key (en + zh-CN)
- Filter the logged-in user from the revoke Select (self-revoke via empty)
## UI / a11y fixes
- Remove @font-face CDN blocks (Inter URL was 404; Montserrat calls
fonts.gstatic.com — blocked in air-gapped environments); system fonts
- Fix WCAG AA contrast in dark theme: colorInfo raised to #4fa8d8
(>=4.5:1 on #161923), colorTextSecondary pinned to #9fa0b8
- Apply --cosmian-sidebar-bg to Sider and Menu to fix sidebar disparity
- Document dark colorPrimary change in CHANGELOG (purple -> orange)
## Tests
- Update split-key-logic.test.ts: import from shared util, rewrite
extractShareUids tests for real WASM response shape
- Update CryptoOfficerRevoke.test.ts: add dormant CO peer-revoke tests
Copy file name to clipboardExpand all lines: CHANGELOG/feat_split_key.md
+7-2Lines changed: 7 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,6 +26,11 @@ Replaces the former `privileged_users` flat list with two FIPS 140-3 aligned rol
26
26
-**Self-revoke**: active CO calls `POST /access/crypto_officer/disable`.
27
27
-**Peer revocation**: any CO candidate calls the same endpoint with `{ "target_user": "<uid>" }` to demote another active CO without server restart (NIST SP 800-152 FR:6.119).
28
28
29
+
-**`CreateSplitKey` fix**: `ObjectType: SymmetricKey` added as first field in the TTLV request (the field is required/non-`Option` in the server struct); both `SplitKey.tsx` and `CryptoOfficerRole.tsx` previously omitted it, causing a 422 on every submission. Both callers now share a single `buildCreateSplitKeyRequest` helper from `utils/splitKeyUtils.ts`.
30
+
-**Compensating delete**: if step 2 (`CreateSplitKey`) fails after step 1 (AES key creation) succeeds, the newly-created key is destroyed before the error is surfaced; this prevents permanent "object already exists" retry failure.
31
+
-**Peer-revocation selector**: the logged-in user is now filtered out of the peer-revocation `Select`; self-revoke remains available via the empty selection.
32
+
-**External CDN fonts removed**: `@font-face` declarations referencing `fonts.gstatic.com` (Inter URL was 404; Montserrat URL was live but violates air-gapped deployment requirements); falls back to system font stack.
33
+
29
34
## Security
30
35
31
36
- Zeroized key material throughout (`Zeroizing<Vec<u8>>`, `Drop` on `CeremonyKeys`).
@@ -46,8 +51,8 @@ Replaces the former `privileged_users` flat list with two FIPS 140-3 aligned rol
46
51
47
52
-**Crypto Officer page**: status dashboard (ceremony state, active CO list, custodian count); configurable base key ID with live share-UID preview (`<id>#1`, `<id>#2`…); peer-revocation dropdown (visible to active CO only); ceremony activation form.
48
53
-**SplitKey / JoinSplitKey dialogs**: Shamir option removed; only XOR n-of-n supported. "Total Parts" renamed to "Number of Shares". Threshold and method selectors removed.
49
-
-**Dark theme**: aligned to mdBook Eviden palette (`#161923` bg, `#bcbdd0` text, `#282d3f` sidebar, orange `#f14611`). All contrast ratios WCAG AA.
50
-
-**Sidebar fixes**: sub-menus visible when sidebar is collapsed; collapse trigger button color corrected in light theme.
54
+
-**Dark theme**: aligned to mdBook Eviden palette (`#161923` bg, `#bcbdd0` text, `#282d3f` sidebar, orange `#f14611`). `colorPrimary` changed from `#9e6eff` (purple) to `#f14611` (Cosmian brand orange) for brand consistency. Light `colorPrimary` changed from `#e34319` to `#c73f1b` (≥4.5:1 on white, WCAG AA). `colorInfo` (links) raised to `#4fa8d8` (≥4.5:1 on `#161923`). `colorTextSecondary` pinned to `#9fa0b8` to prevent the dark algorithm deriving a low-contrast value (~2.84:1) on the elevated card surface.
55
+
-**Sidebar background**: both light and dark modes now use the `--cosmian-sidebar-bg` CSS variable, eliminating the disparity between themes.
0 commit comments