@ibgib/core-gib 0.1.63 → 0.1.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/keystone/keystone-constants.d.mts +1 -0
  2. package/dist/keystone/keystone-constants.d.mts.map +1 -1
  3. package/dist/keystone/keystone-constants.mjs +1 -0
  4. package/dist/keystone/keystone-constants.mjs.map +1 -1
  5. package/dist/keystone/keystone-helpers.d.mts +27 -1
  6. package/dist/keystone/keystone-helpers.d.mts.map +1 -1
  7. package/dist/keystone/keystone-helpers.mjs +261 -16
  8. package/dist/keystone/keystone-helpers.mjs.map +1 -1
  9. package/dist/keystone/keystone-service-v1.d.mts +113 -1
  10. package/dist/keystone/keystone-service-v1.d.mts.map +1 -1
  11. package/dist/keystone/keystone-service-v1.mjs +442 -27
  12. package/dist/keystone/keystone-service-v1.mjs.map +1 -1
  13. package/dist/keystone/keystone-service-v1.respec.mjs +641 -47
  14. package/dist/keystone/keystone-service-v1.respec.mjs.map +1 -1
  15. package/dist/keystone/keystone-types.d.mts +31 -2
  16. package/dist/keystone/keystone-types.d.mts.map +1 -1
  17. package/dist/keystone/keystone-types.mjs +15 -0
  18. package/dist/keystone/keystone-types.mjs.map +1 -1
  19. package/dist/keystone/policy/profiles/profile-domain.json +2 -61
  20. package/dist/keystone/policy/profiles/profile-sync.json +2 -16
  21. package/dist/keystone/policy/schemas/keystone.high.schema.json +1 -1
  22. package/dist/keystone/policy/schemas/keystone.medium.schema.json +1 -1
  23. package/package.json +2 -2
  24. package/src/keystone/keystone-constants.mts +1 -0
  25. package/src/keystone/keystone-helpers.mts +308 -15
  26. package/src/keystone/keystone-service-v1.mts +535 -28
  27. package/src/keystone/keystone-service-v1.respec.mts +2130 -1459
  28. package/src/keystone/keystone-types.mts +50 -2
  29. package/src/keystone/policy/profiles/profile-domain.json +3 -62
  30. package/src/keystone/policy/profiles/profile-sync.json +2 -16
  31. package/src/keystone/policy/schemas/keystone.high.schema.json +1 -1
  32. package/src/keystone/policy/schemas/keystone.medium.schema.json +1 -1
@@ -1,10 +1,9 @@
1
1
  import { extractErrorMsg, mergeMapsOrArrays_Naive } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
2
2
  import { getIbGibAddr, getIbAndGib } from '@ibgib/ts-gib/dist/helper.mjs';
3
3
  import { GLOBAL_LOG_A_LOT } from '../core-constants.mjs';
4
- import { KeystoneReplenishStrategy, } from './keystone-types.mjs';
5
- import { KeystoneStrategyFactory } from './strategy/keystone-strategy-factory.mjs';
6
- import { POOL_ID_REVOKE, KEYSTONE_VERB_REVOKE, KEYSTONE_VERB_MANAGE, KEYSTONE_CHECKPOINT_FREQUENCY, POOL_ID_MANAGE } from './keystone-constants.mjs';
7
- import { createKeystoneIbGibImpl, evolvePersistAndRegisterKeystone, generateOpaqueChallengeId, resolveTargetPool, selectChallengeIds, solveAndReplenish, validateKeystoneTransition, validateGenesisKeystone, validateKeystoneGraph } from './keystone-helpers.mjs';
4
+ import { KeystoneReplenishStrategy, KeystoneClaimType } from './keystone-types.mjs';
5
+ import { KEYSTONE_VERB_REVOKE, KEYSTONE_VERB_MANAGE, KEYSTONE_CHECKPOINT_FREQUENCY, POOL_ID_MANAGE } from './keystone-constants.mjs';
6
+ import { createKeystoneIbGibImpl, evolvePersistAndRegisterKeystone, resolveTargetPool, selectChallengeIds, solveAndReplenish, validateKeystoneTransition, validateGenesisKeystone, validateKeystoneGraph, generatePoolChallenges, rotatePoolChallenges, verifyPoolSecret } from './keystone-helpers.mjs';
8
7
  import { getLatestAddrs } from '../witness/space/space-helper.mjs';
9
8
  import { getTjpAddr } from '../common/other/ibgib-helper.mjs';
10
9
  const logalot = GLOBAL_LOG_A_LOT;
@@ -18,7 +17,7 @@ export class KeystoneService_V1 {
18
17
  /**
19
18
  * Creates a brand new Keystone Identity Timeline.
20
19
  */
21
- async genesis({ masterSecret, frameDetails, configs, metaspace, space, }) {
20
+ async genesis({ masterSecret, frameDetails, configs, metaspace, space, isPrimary, }) {
22
21
  const lc = `${this.lc}[${this.genesis.name}]`;
23
22
  try {
24
23
  if (logalot) {
@@ -26,21 +25,10 @@ export class KeystoneService_V1 {
26
25
  }
27
26
  const challengePools = [];
28
27
  for (const config of configs) {
29
- const strategy = KeystoneStrategyFactory.create({ config });
30
- const poolSecret = await strategy.derivePoolSecret({ masterSecret });
31
- const challenges = {};
32
- const targetSize = config.behavior.size;
33
- const timestamp = Date.now().toString();
34
- for (let i = 0; i < targetSize; i++) {
35
- const challengeId = await generateOpaqueChallengeId({
36
- salt: config.salt, timestamp, index: i
37
- });
38
- const solution = await strategy.generateSolution({
39
- poolSecret, poolId: config.id, challengeId,
40
- });
41
- const challenge = await strategy.generateChallenge({ solution });
42
- challenges[challengeId] = challenge;
43
- }
28
+ const challenges = await generatePoolChallenges({
29
+ config,
30
+ masterSecret
31
+ });
44
32
  challengePools.push({
45
33
  id: config.id,
46
34
  config,
@@ -51,8 +39,11 @@ export class KeystoneService_V1 {
51
39
  throw new Error(`No challenge pools created. (E: 38e538530996940e1f16a8b199995825)`);
52
40
  }
53
41
  const data = { challengePools, proofs: [] };
54
- if (frameDetails) {
55
- data.frameDetails = frameDetails;
42
+ if (frameDetails || isPrimary !== undefined) {
43
+ data.frameDetails = { ...(frameDetails || {}) };
44
+ if (isPrimary !== undefined) {
45
+ data.frameDetails.isPrimary = isPrimary;
46
+ }
56
47
  }
57
48
  const keystoneIbGib = await createKeystoneIbGibImpl({ data, metaspace, space });
58
49
  return keystoneIbGib;
@@ -430,10 +421,10 @@ export class KeystoneService_V1 {
430
421
  console.log(`${lc} starting...`);
431
422
  }
432
423
  const prevData = latestKeystone.data;
433
- // 1. Identify Authority (Resolve Revoke Pool)
424
+ // 1. Identify Authority (Resolve Revoke Pool by verb)
434
425
  const pool = resolveTargetPool({
435
426
  pools: prevData.challengePools,
436
- poolId: POOL_ID_REVOKE // Explicitly require the special revoke pool
427
+ verb: KEYSTONE_VERB_REVOKE
437
428
  });
438
429
  // 2. Construct Claim
439
430
  const claim = {
@@ -543,13 +534,15 @@ export class KeystoneService_V1 {
543
534
  if (logalot) {
544
535
  console.log(`${lc} Authorized via pool: ${adminPool.id}`);
545
536
  }
546
- // 2. Construct the Management Claim
537
+ // 2. Construct the Management Claim with typed details
547
538
  const target = getIbGibAddr({ ibGib: latestKeystone });
548
539
  const claim = {
549
540
  verb: KEYSTONE_VERB_MANAGE,
550
541
  target, // I am managing myself
551
- // Scope creates a cryptographic commitment to WHICH pools are being added
552
- scope: JSON.stringify({ add: newPools.map(p => p.id) })
542
+ details: {
543
+ type: KeystoneClaimType.add_pool,
544
+ info: { add: newPools.map(p => p.id) }
545
+ }
553
546
  };
554
547
  // 3. Calculate Costs
555
548
  const idsToSolve = await selectChallengeIds({
@@ -613,6 +606,108 @@ export class KeystoneService_V1 {
613
606
  }
614
607
  }
615
608
  }
609
+ /**
610
+ * Structural evolution: Removes challenge pools from the keystone.
611
+ *
612
+ * Use Case: Unlinking a custodian or delegate SSO pool.
613
+ *
614
+ * Requires the Master Secret to authorize the change via a pool containing
615
+ * the 'manage' verb (the administrative manage pool).
616
+ */
617
+ async removePools({ latestKeystone, masterSecret, poolIds, metaspace, space, }) {
618
+ const lc = `${this.lc}[${this.removePools.name}]`;
619
+ try {
620
+ if (logalot) {
621
+ console.log(`${lc} starting...`);
622
+ }
623
+ if (!latestKeystone.data) {
624
+ throw new Error(`(UNEXPECTED) latestKeystone.data falsy? (E: 8334c8faed128166a999d428c7805b25)`);
625
+ }
626
+ const prevData = latestKeystone.data;
627
+ if (prevData.revocationInfo) {
628
+ throw new Error(`Keystone has been revoked. Cannot remove pools. (E: 9599f8f51c78d722252ddb2894fdbe25)`);
629
+ }
630
+ if (poolIds.length === 0) {
631
+ throw new Error(`No pool IDs provided to remove. (E: 7599f8f51c78d722252ddb2894fdbe25)`);
632
+ }
633
+ // 1. Identify Authority (Resolve Admin Pool)
634
+ const adminPool = resolveTargetPool({
635
+ pools: prevData.challengePools,
636
+ verb: KEYSTONE_VERB_MANAGE,
637
+ });
638
+ if (logalot) {
639
+ console.log(`${lc} Authorized via pool: ${adminPool.id}`);
640
+ }
641
+ // 2. Construct the Management Claim with typed details
642
+ const target = getIbGibAddr({ ibGib: latestKeystone });
643
+ const claim = {
644
+ verb: KEYSTONE_VERB_MANAGE,
645
+ target,
646
+ details: {
647
+ type: KeystoneClaimType.remove_pool,
648
+ info: { remove: poolIds }
649
+ }
650
+ };
651
+ // 3. Calculate Costs
652
+ const idsToSolve = await selectChallengeIds({
653
+ pool: adminPool,
654
+ targetAddr: target
655
+ });
656
+ // 4. Pay the Cost (Solve & Replenish)
657
+ const { proof, nextPools: replenishedExistingPools } = await solveAndReplenish({
658
+ targetPoolId: adminPool.id,
659
+ prevPools: prevData.challengePools,
660
+ masterSecret,
661
+ challengeIds: idsToSolve,
662
+ claim,
663
+ });
664
+ // 5. Mutate Structure (Remove the pools)
665
+ const removeSet = new Set(poolIds);
666
+ const finalPools = replenishedExistingPools.filter(p => !removeSet.has(p.id));
667
+ // Verify that we actually removed the expected count of pools
668
+ if (finalPools.length !== replenishedExistingPools.length - poolIds.length) {
669
+ const missingIds = poolIds.filter(id => !replenishedExistingPools.some(p => p.id === id));
670
+ throw new Error(`Cannot remove pool. Pool IDs not found in keystone: ${missingIds.join(', ')} (E: 8a4c2b1d3e5f6a7b8c9d0e1f2a3b4c5e)`);
671
+ }
672
+ // 6. Construct New Data
673
+ const n = (prevData.n ?? 0) + 1;
674
+ let checkpointDetails;
675
+ if (n % KEYSTONE_CHECKPOINT_FREQUENCY === 0) {
676
+ const currentFrameView = {
677
+ ...latestKeystone,
678
+ data: { ...prevData, challengePools: finalPools }
679
+ };
680
+ checkpointDetails = await this.getAggregateDetails({
681
+ latestKeystone: currentFrameView,
682
+ metaspace,
683
+ space
684
+ });
685
+ }
686
+ const newData = {
687
+ challengePools: finalPools,
688
+ proofs: [proof],
689
+ checkpointDetails,
690
+ ...(prevData.delegates ? { delegates: prevData.delegates } : {}),
691
+ };
692
+ // 7. Commit
693
+ const newKeystone = await evolvePersistAndRegisterKeystone({
694
+ prevIbGib: latestKeystone,
695
+ newData,
696
+ metaspace,
697
+ space
698
+ });
699
+ return newKeystone;
700
+ }
701
+ catch (error) {
702
+ console.error(`${lc} ${extractErrorMsg(error)}`);
703
+ throw error;
704
+ }
705
+ finally {
706
+ if (logalot) {
707
+ console.log(`${lc} complete.`);
708
+ }
709
+ }
710
+ }
616
711
  /**
617
712
  * Consolidates the state of a Keystone identity across its history.
618
713
  * Walks back until it hits a checkpoint or genesis.
@@ -662,5 +757,325 @@ export class KeystoneService_V1 {
662
757
  throw error;
663
758
  }
664
759
  }
760
+ /**
761
+ * Retrieves common aggregated info for a keystone timeline.
762
+ */
763
+ async getKeystoneCommonInfo({ addr, ibGib, metaspace, space, }) {
764
+ const lc = `${this.lc}[getKeystoneCommonInfo]`;
765
+ try {
766
+ let targetAddr = addr;
767
+ let targetIbGib = ibGib;
768
+ if (!targetAddr) {
769
+ if (!targetIbGib) {
770
+ return null;
771
+ }
772
+ targetAddr = getIbGibAddr({ ibGib: targetIbGib });
773
+ }
774
+ if (!targetIbGib) {
775
+ const { ib, gib } = getIbAndGib({ ibGibAddr: targetAddr });
776
+ targetIbGib = { ib, gib };
777
+ }
778
+ const resGetLatest = await getLatestAddrs({
779
+ ibGibs: [targetIbGib],
780
+ space,
781
+ });
782
+ if (!resGetLatest.data?.latestAddrsMap) {
783
+ return null;
784
+ }
785
+ const latestAddr = resGetLatest.data.latestAddrsMap[targetAddr] || Object.values(resGetLatest.data.latestAddrsMap)[0];
786
+ if (!latestAddr) {
787
+ return null;
788
+ }
789
+ const resGet = await metaspace.get({ addr: latestAddr, space });
790
+ const latestKeystone = resGet.ibGibs?.at(0);
791
+ if (!latestKeystone || !latestKeystone.data) {
792
+ return null;
793
+ }
794
+ const aggregateDetails = await this.getAggregateDetails({
795
+ latestKeystone,
796
+ metaspace,
797
+ space
798
+ });
799
+ const name = aggregateDetails?.username || aggregateDetails?.profile?.name || aggregateDetails?.name || '';
800
+ const description = aggregateDetails?.description || aggregateDetails?.profile?.description || '';
801
+ const isPrimary = !!aggregateDetails?.isPrimary || !!aggregateDetails?.profile?.isPrimary;
802
+ const latestFrameDetails = latestKeystone.data.frameDetails || {};
803
+ const n = latestKeystone.data.n ?? 0;
804
+ const timestamp = latestFrameDetails?.timestamp || aggregateDetails?.timestamp || '';
805
+ const timestampMs = latestFrameDetails?.timestampMs || aggregateDetails?.timestampMs || undefined;
806
+ return {
807
+ name,
808
+ description,
809
+ isPrimary,
810
+ aggregateDetails,
811
+ latestFrameDetails,
812
+ n,
813
+ timestamp,
814
+ timestampMs
815
+ };
816
+ }
817
+ catch (error) {
818
+ console.error(`${lc} ${extractErrorMsg(error)}`);
819
+ return null;
820
+ }
821
+ }
822
+ /**
823
+ * Replaces a challenge pool (such as manage or custodian-manage) with a new pool,
824
+ * authorizing the transition via the specified signing pool.
825
+ *
826
+ * @param latestKeystone The current tip frame of the keystone timeline.
827
+ * - Visibility: Public (Public Merkle frame, safe for logs/ledger).
828
+ * - Generator: Client/Server (Constructed locally and synced).
829
+ *
830
+ * @param newPool The fully constructed new pool to place in the next frame.
831
+ * - Visibility: Public (Public configuration and public challenges, safe for ledger).
832
+ * - Generator: Client/Server (Generated dynamically by the party proposing the update).
833
+ *
834
+ * @param signingSecret The master secret or derived KDF secret of the pool authorizing the change.
835
+ * - Visibility: Private (Confidential secret credential. Must never go over the wire).
836
+ * - Generator: Client/Server (Known only to the signing party).
837
+ *
838
+ * @param signingPoolId The ID of the pool used to authorize the transition (defaults to 'manage').
839
+ * - Visibility: Public (Non-sensitive configuration string).
840
+ * - Generator: Client/Server (From pool configuration).
841
+ */
842
+ async replacePool({ latestKeystone, newPool, signingSecret, signingPoolId = POOL_ID_MANAGE, frameDetails, metaspace, space, }) {
843
+ const lc = `${this.lc}[${this.replacePool.name}]`;
844
+ try {
845
+ if (logalot) {
846
+ console.log(`${lc} starting... replacing pool: ${newPool.id}`);
847
+ }
848
+ if (!latestKeystone.data) {
849
+ throw new Error(`(UNEXPECTED) latestKeystone.data falsy? (E: 1334c8faed128166a999d428c7805b25)`);
850
+ }
851
+ const prevData = latestKeystone.data;
852
+ if (prevData.revocationInfo) {
853
+ throw new Error(`Keystone has been revoked. Cannot replace pool. (E: 2599f8f51c78d722252ddb2894fdbe25)`);
854
+ }
855
+ // 1. Identify Authority (Resolve Signing Pool)
856
+ const prevPools = prevData.challengePools;
857
+ const signingPool = prevPools.find(p => p.id === signingPoolId);
858
+ if (!signingPool) {
859
+ throw new Error(`Signing pool not found: ${signingPoolId} (E: 3599f8f51c78d722252ddb2894fdbe25)`);
860
+ }
861
+ // 2. Construct the Management Claim with typed details
862
+ const target = getIbGibAddr({ ibGib: latestKeystone });
863
+ const claim = {
864
+ verb: KEYSTONE_VERB_MANAGE,
865
+ target,
866
+ details: {
867
+ type: KeystoneClaimType.replace_pool,
868
+ info: { replace: newPool.id }
869
+ }
870
+ };
871
+ // 3. Calculate Costs
872
+ const idsToSolve = await selectChallengeIds({
873
+ pool: signingPool,
874
+ targetAddr: target
875
+ });
876
+ // 4. Pay the Cost (Solve & Replenish)
877
+ const { proof, nextPools } = await solveAndReplenish({
878
+ targetPoolId: signingPoolId,
879
+ prevPools,
880
+ masterSecret: signingSecret,
881
+ challengeIds: idsToSolve,
882
+ claim,
883
+ });
884
+ // 5. Replace target pool in nextPools
885
+ const targetIdx = nextPools.findIndex(p => p.id === newPool.id);
886
+ if (targetIdx === -1) {
887
+ throw new Error(`Target pool to replace '${newPool.id}' not found in keystone challenge pools.`);
888
+ }
889
+ nextPools[targetIdx] = newPool;
890
+ // 6. Construct New Data
891
+ const n = (prevData.n ?? 0) + 1;
892
+ let checkpointDetails;
893
+ if (n % KEYSTONE_CHECKPOINT_FREQUENCY === 0) {
894
+ const currentFrameView = {
895
+ ...latestKeystone,
896
+ data: { ...prevData, frameDetails }
897
+ };
898
+ checkpointDetails = await this.getAggregateDetails({
899
+ latestKeystone: currentFrameView,
900
+ metaspace,
901
+ space
902
+ });
903
+ }
904
+ const newData = {
905
+ challengePools: nextPools,
906
+ proofs: [proof],
907
+ frameDetails,
908
+ checkpointDetails,
909
+ ...(prevData.delegates ? { delegates: prevData.delegates } : {}),
910
+ };
911
+ // 7. Commit
912
+ const newKeystone = await evolvePersistAndRegisterKeystone({
913
+ prevIbGib: latestKeystone,
914
+ newData,
915
+ metaspace,
916
+ space
917
+ });
918
+ return newKeystone;
919
+ }
920
+ catch (error) {
921
+ console.error(`${lc} ${extractErrorMsg(error)}`);
922
+ throw error;
923
+ }
924
+ finally {
925
+ if (logalot) {
926
+ console.log(`${lc} complete.`);
927
+ }
928
+ }
929
+ }
930
+ /**
931
+ * Evolve the keystone by rotating the primary user manage pool (`manage`) to a new master secret (passphrase).
932
+ * This creates a new frame signed by the specified `signingPoolId` using `signingSecret`.
933
+ *
934
+ * Supports recovery (signing via `custodian-manage` using the custodian secret) and normal rotation
935
+ * (signing via `manage` using the old password).
936
+ *
937
+ * @param latestKeystone The current tip frame of the keystone.
938
+ * - Visibility: Public (Public Merkle frame, safe for ledger).
939
+ * - Generator: Client/Server (Constructed locally and synced).
940
+ *
941
+ * @param newMasterSecret The new passphrase/master secret to set for the user's primary pools.
942
+ * - Visibility: Private (Confidential secret credential. Must never go over the wire).
943
+ * - Generator: Client (From user input in settings).
944
+ *
945
+ * @param signingSecret The secret of the pool authorizing this change (either old passphrase or derived custodian secret).
946
+ * - Visibility: Private (Confidential secret. Must never go over the wire).
947
+ * - Generator: Client/Server (Known only to the signing party).
948
+ *
949
+ * @param signingPoolId The ID of the pool used to authorize the rotation (defaults to 'manage').
950
+ * - Visibility: Public (Non-sensitive ID string).
951
+ * - Generator: Client/Server (From pool configuration).
952
+ */
953
+ async changePassword({ latestKeystone, newMasterSecret, signingSecret, signingPoolId = POOL_ID_MANAGE, poolIds, frameDetails, metaspace, space, }) {
954
+ const lc = `${this.lc}[${this.changePassword.name}]`;
955
+ try {
956
+ if (logalot) {
957
+ console.log(`${lc} starting...`);
958
+ }
959
+ if (!latestKeystone.data) {
960
+ throw new Error(`latestKeystone.data falsy`);
961
+ }
962
+ if (latestKeystone.data.revocationInfo) {
963
+ throw new Error(`Keystone has been revoked. Cannot change password. (E: 8599f8f51c78d722252ddb2894fdbe25)`);
964
+ }
965
+ const prevPools = latestKeystone.data.challengePools;
966
+ const signingPool = prevPools.find(p => p.id === signingPoolId);
967
+ if (!signingPool) {
968
+ throw new Error(`Signing pool not found: ${signingPoolId} (E: 3599f8f51c78d722252ddb2894fdbe25)`);
969
+ }
970
+ // 1. Resolve target pools to rotate
971
+ let targets = [];
972
+ if (poolIds && poolIds.length > 0) {
973
+ for (const id of poolIds) {
974
+ const found = prevPools.find(p => p.id === id);
975
+ if (!found) {
976
+ throw new Error(`Target pool to rotate not found: ${id} (E: 4599f8f51c78d722252ddb2894fdbe25)`);
977
+ }
978
+ targets.push(found);
979
+ }
980
+ }
981
+ else {
982
+ targets = prevPools.filter(p => !p.isForeign);
983
+ if (targets.length === 0) {
984
+ throw new Error(`No non-foreign pools found to rotate. (E: 5599f8f51c78d722252ddb2894fdbe25)`);
985
+ }
986
+ }
987
+ // 2. Rotate the target pools
988
+ const rotatedPools = [];
989
+ for (const targetPool of targets) {
990
+ const rotated = await rotatePoolChallenges({
991
+ prevPool: targetPool,
992
+ newMasterSecret
993
+ });
994
+ rotatedPools.push(rotated);
995
+ }
996
+ // 3. Construct Management Claim with typed details
997
+ const target = getIbGibAddr({ ibGib: latestKeystone });
998
+ const claim = {
999
+ verb: KEYSTONE_VERB_MANAGE,
1000
+ target,
1001
+ details: {
1002
+ type: KeystoneClaimType.change_password,
1003
+ info: { change: rotatedPools.map(p => p.id) }
1004
+ }
1005
+ };
1006
+ // 4. Calculate Costs
1007
+ const idsToSolve = await selectChallengeIds({
1008
+ pool: signingPool,
1009
+ targetAddr: target
1010
+ });
1011
+ // 5. Pay the Cost (Solve & Replenish)
1012
+ const { proof, nextPools } = await solveAndReplenish({
1013
+ targetPoolId: signingPoolId,
1014
+ prevPools,
1015
+ masterSecret: signingSecret,
1016
+ challengeIds: idsToSolve,
1017
+ claim
1018
+ });
1019
+ // 6. Swap the rotated pools in nextPools
1020
+ for (const rotated of rotatedPools) {
1021
+ const idx = nextPools.findIndex(p => p.id === rotated.id);
1022
+ if (idx === -1) {
1023
+ throw new Error(`Rotated pool ${rotated.id} not found in next pools list. (E: 6599f8f51c78d722252ddb2894fdbe25)`);
1024
+ }
1025
+ nextPools[idx] = rotated;
1026
+ }
1027
+ // 7. Construct New Data
1028
+ const n = (latestKeystone.data.n ?? 0) + 1;
1029
+ let checkpointDetails;
1030
+ if (n % KEYSTONE_CHECKPOINT_FREQUENCY === 0) {
1031
+ const currentFrameView = {
1032
+ ...latestKeystone,
1033
+ data: { ...latestKeystone.data, challengePools: nextPools }
1034
+ };
1035
+ checkpointDetails = await this.getAggregateDetails({
1036
+ latestKeystone: currentFrameView,
1037
+ metaspace,
1038
+ space
1039
+ });
1040
+ }
1041
+ const newData = {
1042
+ challengePools: nextPools,
1043
+ proofs: [proof],
1044
+ frameDetails,
1045
+ checkpointDetails,
1046
+ ...(latestKeystone.data.delegates ? { delegates: latestKeystone.data.delegates } : {}),
1047
+ };
1048
+ // 8. Commit
1049
+ return await evolvePersistAndRegisterKeystone({
1050
+ prevIbGib: latestKeystone,
1051
+ newData,
1052
+ metaspace,
1053
+ space
1054
+ });
1055
+ }
1056
+ catch (error) {
1057
+ console.error(`${lc} ${extractErrorMsg(error)}`);
1058
+ throw error;
1059
+ }
1060
+ }
1061
+ /**
1062
+ * Verifies if a candidate signing secret (passphrase) is correct for a specific challenge pool.
1063
+ * Does not mutate any state.
1064
+ */
1065
+ async verifySigningSecret({ keystoneIbGib, signingSecret, poolId }) {
1066
+ const lc = `${this.lc}[${this.verifySigningSecret.name}]`;
1067
+ try {
1068
+ if (!keystoneIbGib.data)
1069
+ return false;
1070
+ const pool = keystoneIbGib.data.challengePools.find(p => p.id === poolId);
1071
+ if (!pool)
1072
+ return false;
1073
+ return await verifyPoolSecret({ pool, signingSecret });
1074
+ }
1075
+ catch (error) {
1076
+ console.warn(`${lc} Exception during verification: ${extractErrorMsg(error)}`);
1077
+ return false;
1078
+ }
1079
+ }
665
1080
  }
666
1081
  //# sourceMappingURL=keystone-service-v1.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"keystone-service-v1.mjs","sourceRoot":"","sources":["../../src/keystone/keystone-service-v1.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keystone-service-v1.mjs","sourceRoot":"","sources":["../../src/keystone/keystone-service-v1.mts"],"names":[],"mappings":"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"}