agent-passport-system 4.3.0 → 4.4.0
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.
- package/README.md +6 -6
- package/dist/src/adapters/crewai.js +2 -2
- package/dist/src/adapters/crewai.js.map +1 -1
- package/dist/src/adapters/gonka.js +5 -5
- package/dist/src/adapters/gonka.js.map +1 -1
- package/dist/src/adapters/ibac.js +2 -2
- package/dist/src/adapters/ibac.js.map +1 -1
- package/dist/src/adapters/langchain.js +2 -2
- package/dist/src/adapters/langchain.js.map +1 -1
- package/dist/src/adapters/mcp.js +2 -2
- package/dist/src/adapters/mcp.js.map +1 -1
- package/dist/src/adapters/oauth-id-jag/import-v1.js +4 -4
- package/dist/src/adapters/oauth-id-jag/import-v1.js.map +1 -1
- package/dist/src/adapters/oauth-id-jag/index.js +4 -4
- package/dist/src/adapters/oauth-id-jag/index.js.map +1 -1
- package/dist/src/cli/index.js +50 -5
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/core/a2a.js +2 -2
- package/dist/src/core/a2a.js.map +1 -1
- package/dist/src/core/action-ref.d.ts +7 -28
- package/dist/src/core/action-ref.d.ts.map +1 -1
- package/dist/src/core/action-ref.js +20 -6
- package/dist/src/core/action-ref.js.map +1 -1
- package/dist/src/core/agora.js +2 -2
- package/dist/src/core/agora.js.map +1 -1
- package/dist/src/core/aps-txt.d.ts.map +1 -1
- package/dist/src/core/aps-txt.js +4 -3
- package/dist/src/core/aps-txt.js.map +1 -1
- package/dist/src/core/attestation.d.ts +8 -0
- package/dist/src/core/attestation.d.ts.map +1 -1
- package/dist/src/core/attestation.js +13 -3
- package/dist/src/core/attestation.js.map +1 -1
- package/dist/src/core/behavioral-fingerprint.js +2 -2
- package/dist/src/core/behavioral-fingerprint.js.map +1 -1
- package/dist/src/core/behavioral-memory-receipt.js +2 -2
- package/dist/src/core/behavioral-memory-receipt.js.map +1 -1
- package/dist/src/core/behavioral-memory.js +3 -3
- package/dist/src/core/behavioral-memory.js.map +1 -1
- package/dist/src/core/bilateral-receipt.d.ts.map +1 -1
- package/dist/src/core/bilateral-receipt.js +34 -8
- package/dist/src/core/bilateral-receipt.js.map +1 -1
- package/dist/src/core/canonical-jcs.d.ts +36 -2
- package/dist/src/core/canonical-jcs.d.ts.map +1 -1
- package/dist/src/core/canonical-jcs.js +96 -7
- package/dist/src/core/canonical-jcs.js.map +1 -1
- package/dist/src/core/canonical.d.ts +26 -0
- package/dist/src/core/canonical.d.ts.map +1 -1
- package/dist/src/core/canonical.js +64 -0
- package/dist/src/core/canonical.js.map +1 -1
- package/dist/src/core/charter.d.ts.map +1 -1
- package/dist/src/core/charter.js +25 -17
- package/dist/src/core/charter.js.map +1 -1
- package/dist/src/core/commerce.js +2 -2
- package/dist/src/core/commerce.js.map +1 -1
- package/dist/src/core/completion.js +2 -2
- package/dist/src/core/completion.js.map +1 -1
- package/dist/src/core/coordination.js +10 -10
- package/dist/src/core/coordination.js.map +1 -1
- package/dist/src/core/credential-request.js +2 -2
- package/dist/src/core/credential-request.js.map +1 -1
- package/dist/src/core/cross-chain.d.ts +8 -0
- package/dist/src/core/cross-chain.d.ts.map +1 -1
- package/dist/src/core/cross-chain.js +23 -9
- package/dist/src/core/cross-chain.js.map +1 -1
- package/dist/src/core/data-lifecycle.js +7 -7
- package/dist/src/core/data-lifecycle.js.map +1 -1
- package/dist/src/core/data-source-attribution.js +3 -3
- package/dist/src/core/data-source-attribution.js.map +1 -1
- package/dist/src/core/data-source.js +5 -5
- package/dist/src/core/data-source.js.map +1 -1
- package/dist/src/core/decision-semantics.d.ts +9 -9
- package/dist/src/core/decision-semantics.d.ts.map +1 -1
- package/dist/src/core/decision-semantics.js +20 -6
- package/dist/src/core/decision-semantics.js.map +1 -1
- package/dist/src/core/delegation.d.ts.map +1 -1
- package/dist/src/core/delegation.js +3 -2
- package/dist/src/core/delegation.js.map +1 -1
- package/dist/src/core/did.js +2 -2
- package/dist/src/core/did.js.map +1 -1
- package/dist/src/core/encrypted-messaging.js +5 -5
- package/dist/src/core/encrypted-messaging.js.map +1 -1
- package/dist/src/core/escalation.js +4 -4
- package/dist/src/core/escalation.js.map +1 -1
- package/dist/src/core/evaluation-context.js +3 -3
- package/dist/src/core/evaluation-context.js.map +1 -1
- package/dist/src/core/evidence-bundle.d.ts +8 -0
- package/dist/src/core/evidence-bundle.d.ts.map +1 -1
- package/dist/src/core/evidence-bundle.js +13 -3
- package/dist/src/core/evidence-bundle.js.map +1 -1
- package/dist/src/core/execution-attestation.js +7 -7
- package/dist/src/core/execution-attestation.js.map +1 -1
- package/dist/src/core/execution-envelope.js +7 -7
- package/dist/src/core/execution-envelope.js.map +1 -1
- package/dist/src/core/federation.js +3 -3
- package/dist/src/core/federation.js.map +1 -1
- package/dist/src/core/fidelity-probe.js +2 -2
- package/dist/src/core/fidelity-probe.js.map +1 -1
- package/dist/src/core/governance-block.d.ts.map +1 -1
- package/dist/src/core/governance-block.js +8 -5
- package/dist/src/core/governance-block.js.map +1 -1
- package/dist/src/core/governance-consumer.d.ts.map +1 -1
- package/dist/src/core/governance-consumer.js +4 -1
- package/dist/src/core/governance-consumer.js.map +1 -1
- package/dist/src/core/governance.js +3 -3
- package/dist/src/core/governance.js.map +1 -1
- package/dist/src/core/identity.js +5 -5
- package/dist/src/core/identity.js.map +1 -1
- package/dist/src/core/intent.js +5 -5
- package/dist/src/core/intent.js.map +1 -1
- package/dist/src/core/key-rotation.d.ts.map +1 -1
- package/dist/src/core/key-rotation.js +12 -2
- package/dist/src/core/key-rotation.js.map +1 -1
- package/dist/src/core/messaging-audit.js +2 -2
- package/dist/src/core/messaging-audit.js.map +1 -1
- package/dist/src/core/obligations.js +6 -6
- package/dist/src/core/obligations.js.map +1 -1
- package/dist/src/core/oracle-witness.js +2 -2
- package/dist/src/core/oracle-witness.js.map +1 -1
- package/dist/src/core/passport.js +3 -3
- package/dist/src/core/passport.js.map +1 -1
- package/dist/src/core/policy.d.ts.map +1 -1
- package/dist/src/core/policy.js +12 -11
- package/dist/src/core/policy.js.map +1 -1
- package/dist/src/core/precedent.js +2 -2
- package/dist/src/core/precedent.js.map +1 -1
- package/dist/src/core/principal.js +3 -3
- package/dist/src/core/principal.js.map +1 -1
- package/dist/src/core/probe-identity.js +2 -2
- package/dist/src/core/probe-identity.js.map +1 -1
- package/dist/src/core/reserve.js +2 -2
- package/dist/src/core/reserve.js.map +1 -1
- package/dist/src/core/reversibility-fold.d.ts +8 -0
- package/dist/src/core/reversibility-fold.d.ts.map +1 -1
- package/dist/src/core/reversibility-fold.js +13 -3
- package/dist/src/core/reversibility-fold.js.map +1 -1
- package/dist/src/core/routing.js +6 -6
- package/dist/src/core/routing.js.map +1 -1
- package/dist/src/core/tool-integrity.d.ts.map +1 -1
- package/dist/src/core/tool-integrity.js +18 -8
- package/dist/src/core/tool-integrity.js.map +1 -1
- package/dist/src/core/transactional.js +4 -4
- package/dist/src/core/transactional.js.map +1 -1
- package/dist/src/core/values.js +3 -3
- package/dist/src/core/values.js.map +1 -1
- package/dist/src/core/vc-wrapper.js +2 -2
- package/dist/src/core/vc-wrapper.js.map +1 -1
- package/dist/src/core/vc.js +2 -2
- package/dist/src/core/vc.js.map +1 -1
- package/dist/src/core/write-policy.d.ts +37 -0
- package/dist/src/core/write-policy.d.ts.map +1 -0
- package/dist/src/core/write-policy.js +100 -0
- package/dist/src/core/write-policy.js.map +1 -0
- package/dist/src/decisionReceipt.d.ts +9 -1
- package/dist/src/decisionReceipt.d.ts.map +1 -1
- package/dist/src/decisionReceipt.js +40 -6
- package/dist/src/decisionReceipt.js.map +1 -1
- package/dist/src/interop/agent-json-bridge.js +2 -2
- package/dist/src/interop/agent-json-bridge.js.map +1 -1
- package/dist/src/profiles/a2a/identity-v1.js +2 -2
- package/dist/src/profiles/a2a/identity-v1.js.map +1 -1
- package/dist/src/storage/receipt-bundle.d.ts.map +1 -1
- package/dist/src/storage/receipt-bundle.js +12 -4
- package/dist/src/storage/receipt-bundle.js.map +1 -1
- package/dist/src/storage/volatile-backend.js +4 -4
- package/dist/src/storage/volatile-backend.js.map +1 -1
- package/dist/src/types/policy.d.ts +1 -1
- package/dist/src/types/policy.d.ts.map +1 -1
- package/dist/src/v2/accountability/construct/action.js +3 -3
- package/dist/src/v2/accountability/construct/action.js.map +1 -1
- package/dist/src/v2/accountability/construct/authority-boundary.js +3 -3
- package/dist/src/v2/accountability/construct/authority-boundary.js.map +1 -1
- package/dist/src/v2/accountability/construct/bundle.d.ts.map +1 -1
- package/dist/src/v2/accountability/construct/bundle.js +5 -3
- package/dist/src/v2/accountability/construct/bundle.js.map +1 -1
- package/dist/src/v2/accountability/construct/contestability.js +4 -4
- package/dist/src/v2/accountability/construct/contestability.js.map +1 -1
- package/dist/src/v2/accountability/construct/custody.js +3 -3
- package/dist/src/v2/accountability/construct/custody.js.map +1 -1
- package/dist/src/v2/accountability/verify/bundle.d.ts.map +1 -1
- package/dist/src/v2/accountability/verify/bundle.js +4 -2
- package/dist/src/v2/accountability/verify/bundle.js.map +1 -1
- package/dist/src/v2/attribution-consent/create.d.ts +12 -1
- package/dist/src/v2/attribution-consent/create.d.ts.map +1 -1
- package/dist/src/v2/attribution-consent/create.js +18 -6
- package/dist/src/v2/attribution-consent/create.js.map +1 -1
- package/dist/src/v2/attribution-consent/sign.js +2 -2
- package/dist/src/v2/attribution-consent/sign.js.map +1 -1
- package/dist/src/v2/attribution-primitive/canonical.d.ts +17 -2
- package/dist/src/v2/attribution-primitive/canonical.d.ts.map +1 -1
- package/dist/src/v2/attribution-primitive/canonical.js +27 -3
- package/dist/src/v2/attribution-primitive/canonical.js.map +1 -1
- package/dist/src/v2/attribution-primitive/construct.d.ts +0 -15
- package/dist/src/v2/attribution-primitive/construct.d.ts.map +1 -1
- package/dist/src/v2/attribution-primitive/construct.js +24 -11
- package/dist/src/v2/attribution-primitive/construct.js.map +1 -1
- package/dist/src/v2/attribution-primitive/merkle.d.ts +7 -3
- package/dist/src/v2/attribution-primitive/merkle.d.ts.map +1 -1
- package/dist/src/v2/attribution-primitive/merkle.js +18 -6
- package/dist/src/v2/attribution-primitive/merkle.js.map +1 -1
- package/dist/src/v2/attribution-primitive/residual.js +2 -2
- package/dist/src/v2/attribution-primitive/residual.js.map +1 -1
- package/dist/src/v2/attribution-settlement/aggregate.d.ts +8 -0
- package/dist/src/v2/attribution-settlement/aggregate.d.ts.map +1 -1
- package/dist/src/v2/attribution-settlement/aggregate.js +16 -6
- package/dist/src/v2/attribution-settlement/aggregate.js.map +1 -1
- package/dist/src/v2/attribution-settlement/merkle.d.ts +8 -0
- package/dist/src/v2/attribution-settlement/merkle.d.ts.map +1 -1
- package/dist/src/v2/attribution-settlement/merkle.js +11 -1
- package/dist/src/v2/attribution-settlement/merkle.js.map +1 -1
- package/dist/src/v2/attribution-settlement/sign.d.ts +9 -3
- package/dist/src/v2/attribution-settlement/sign.d.ts.map +1 -1
- package/dist/src/v2/attribution-settlement/sign.js +18 -4
- package/dist/src/v2/attribution-settlement/sign.js.map +1 -1
- package/dist/src/v2/authority-delegation/canonical.d.ts +14 -0
- package/dist/src/v2/authority-delegation/canonical.d.ts.map +1 -1
- package/dist/src/v2/authority-delegation/canonical.js +28 -2
- package/dist/src/v2/authority-delegation/canonical.js.map +1 -1
- package/dist/src/v2/authority-delegation/issue.js +2 -2
- package/dist/src/v2/authority-delegation/issue.js.map +1 -1
- package/dist/src/v2/behavioral_drift_window/envelope.d.ts +8 -0
- package/dist/src/v2/behavioral_drift_window/envelope.d.ts.map +1 -1
- package/dist/src/v2/behavioral_drift_window/envelope.js +13 -2
- package/dist/src/v2/behavioral_drift_window/envelope.js.map +1 -1
- package/dist/src/v2/bridge.d.ts +8 -0
- package/dist/src/v2/bridge.d.ts.map +1 -1
- package/dist/src/v2/bridge.js +13 -2
- package/dist/src/v2/bridge.js.map +1 -1
- package/dist/src/v2/cognitive-attestation/envelope.d.ts +9 -7
- package/dist/src/v2/cognitive-attestation/envelope.d.ts.map +1 -1
- package/dist/src/v2/cognitive-attestation/envelope.js +18 -4
- package/dist/src/v2/cognitive-attestation/envelope.js.map +1 -1
- package/dist/src/v2/cognitive_attestation/envelope.d.ts +8 -0
- package/dist/src/v2/cognitive_attestation/envelope.d.ts.map +1 -1
- package/dist/src/v2/cognitive_attestation/envelope.js +13 -2
- package/dist/src/v2/cognitive_attestation/envelope.js.map +1 -1
- package/dist/src/v2/context-provenance/cpa.d.ts +8 -0
- package/dist/src/v2/context-provenance/cpa.d.ts.map +1 -1
- package/dist/src/v2/context-provenance/cpa.js +22 -8
- package/dist/src/v2/context-provenance/cpa.js.map +1 -1
- package/dist/src/v2/context-provenance/merkle.d.ts +21 -18
- package/dist/src/v2/context-provenance/merkle.d.ts.map +1 -1
- package/dist/src/v2/context-provenance/merkle.js +38 -5
- package/dist/src/v2/context-provenance/merkle.js.map +1 -1
- package/dist/src/v2/context-provenance/types.d.ts +1 -1
- package/dist/src/v2/cross_issuer_attestation/envelope.d.ts +8 -0
- package/dist/src/v2/cross_issuer_attestation/envelope.d.ts.map +1 -1
- package/dist/src/v2/cross_issuer_attestation/envelope.js +13 -2
- package/dist/src/v2/cross_issuer_attestation/envelope.js.map +1 -1
- package/dist/src/v2/hash-pointer/profile.d.ts.map +1 -1
- package/dist/src/v2/hash-pointer/profile.js +11 -3
- package/dist/src/v2/hash-pointer/profile.js.map +1 -1
- package/dist/src/v2/human-escalation.d.ts +10 -0
- package/dist/src/v2/human-escalation.d.ts.map +1 -1
- package/dist/src/v2/human-escalation.js +15 -1
- package/dist/src/v2/human-escalation.js.map +1 -1
- package/dist/src/v2/human-oversight/index.d.ts +9 -9
- package/dist/src/v2/human-oversight/index.d.ts.map +1 -1
- package/dist/src/v2/human-oversight/index.js +18 -4
- package/dist/src/v2/human-oversight/index.js.map +1 -1
- package/dist/src/v2/instruction-provenance/canonicalize.d.ts +17 -5
- package/dist/src/v2/instruction-provenance/canonicalize.d.ts.map +1 -1
- package/dist/src/v2/instruction-provenance/canonicalize.js +28 -3
- package/dist/src/v2/instruction-provenance/canonicalize.js.map +1 -1
- package/dist/src/v2/instruction-provenance/envelope.js +3 -3
- package/dist/src/v2/instruction-provenance/envelope.js.map +1 -1
- package/dist/src/v2/memory_provenance/envelope.d.ts +8 -0
- package/dist/src/v2/memory_provenance/envelope.d.ts.map +1 -1
- package/dist/src/v2/memory_provenance/envelope.js +13 -2
- package/dist/src/v2/memory_provenance/envelope.js.map +1 -1
- package/dist/src/v2/mutual-auth/certificate.d.ts.map +1 -1
- package/dist/src/v2/mutual-auth/certificate.js +6 -4
- package/dist/src/v2/mutual-auth/certificate.js.map +1 -1
- package/dist/src/v2/mutual-auth/handshake.js +3 -3
- package/dist/src/v2/mutual-auth/handshake.js.map +1 -1
- package/dist/src/v2/mutual-auth/trust-bundle.d.ts.map +1 -1
- package/dist/src/v2/mutual-auth/trust-bundle.js +4 -3
- package/dist/src/v2/mutual-auth/trust-bundle.js.map +1 -1
- package/dist/src/v2/mutual-auth/types.d.ts +3 -3
- package/dist/src/v2/mutual-auth/types.d.ts.map +1 -1
- package/dist/src/v2/payment-rails/acp/index.d.ts.map +1 -1
- package/dist/src/v2/payment-rails/acp/index.js +52 -11
- package/dist/src/v2/payment-rails/acp/index.js.map +1 -1
- package/dist/src/v2/payment-rails/acp/types.d.ts +4 -4
- package/dist/src/v2/payment-rails/acp/types.d.ts.map +1 -1
- package/dist/src/v2/payment-rails/ap2/index.js +2 -2
- package/dist/src/v2/payment-rails/ap2/index.js.map +1 -1
- package/dist/src/v2/payment-rails/canonicalize.d.ts +32 -0
- package/dist/src/v2/payment-rails/canonicalize.d.ts.map +1 -1
- package/dist/src/v2/payment-rails/canonicalize.js +41 -1
- package/dist/src/v2/payment-rails/canonicalize.js.map +1 -1
- package/dist/src/v2/payment-rails/cycles/index.d.ts.map +1 -1
- package/dist/src/v2/payment-rails/cycles/index.js +10 -7
- package/dist/src/v2/payment-rails/cycles/index.js.map +1 -1
- package/dist/src/v2/payment-rails/cycles/types.d.ts +1 -1
- package/dist/src/v2/payment-rails/cycles/types.d.ts.map +1 -1
- package/dist/src/v2/payment-rails/hooks.d.ts.map +1 -1
- package/dist/src/v2/payment-rails/hooks.js +5 -5
- package/dist/src/v2/payment-rails/hooks.js.map +1 -1
- package/dist/src/v2/payment-rails/mpp/index.d.ts.map +1 -1
- package/dist/src/v2/payment-rails/mpp/index.js +11 -7
- package/dist/src/v2/payment-rails/mpp/index.js.map +1 -1
- package/dist/src/v2/payment-rails/mpp/types.d.ts +4 -4
- package/dist/src/v2/payment-rails/mpp/types.d.ts.map +1 -1
- package/dist/src/v2/policy-bundle/bundle.d.ts.map +1 -1
- package/dist/src/v2/policy-bundle/bundle.js +5 -3
- package/dist/src/v2/policy-bundle/bundle.js.map +1 -1
- package/dist/src/v2/provisional-statement/create.d.ts +13 -2
- package/dist/src/v2/provisional-statement/create.d.ts.map +1 -1
- package/dist/src/v2/provisional-statement/create.js +18 -6
- package/dist/src/v2/provisional-statement/create.js.map +1 -1
- package/dist/src/v2/read_fidelity_receipt/receipt.d.ts +8 -0
- package/dist/src/v2/read_fidelity_receipt/receipt.d.ts.map +1 -1
- package/dist/src/v2/read_fidelity_receipt/receipt.js +13 -2
- package/dist/src/v2/read_fidelity_receipt/receipt.js.map +1 -1
- package/dist/src/v2/revocation-enforcement/observation.js +2 -2
- package/dist/src/v2/revocation-enforcement/observation.js.map +1 -1
- package/dist/src/v2/trust-policy/policy.d.ts.map +1 -1
- package/dist/src/v2/trust-policy/policy.js +51 -3
- package/dist/src/v2/trust-policy/policy.js.map +1 -1
- package/dist/src/v2/wallet-binding/bind.d.ts.map +1 -1
- package/dist/src/v2/wallet-binding/bind.js +29 -9
- package/dist/src/v2/wallet-binding/bind.js.map +1 -1
- package/package.json +7 -6
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
// - feature_activations sorted by (feature_id, activation_statistic)
|
|
14
14
|
// ══════════════════════════════════════════════════════════════════
|
|
15
15
|
import { createHash } from 'node:crypto';
|
|
16
|
-
import { canonicalizeJCS } from '../../core/canonical-jcs.js';
|
|
16
|
+
import { canonicalizeJCS, canonicalizeJCSForWrite } from '../../core/canonical-jcs.js';
|
|
17
17
|
import { sign as edSignHex } from '../../crypto/keys.js';
|
|
18
18
|
const SPEC_VERSION = '1.0';
|
|
19
19
|
function bytesToHex(bytes) {
|
|
@@ -93,15 +93,29 @@ export function buildAttestation(input) {
|
|
|
93
93
|
*
|
|
94
94
|
* Returns UTF-8 bytes. To obtain the canonical string, decode with TextDecoder.
|
|
95
95
|
*/
|
|
96
|
-
|
|
96
|
+
function canonicalizeAttestationImpl(att, canon) {
|
|
97
97
|
const view = {
|
|
98
98
|
...att,
|
|
99
99
|
feature_activations: sortFeatureActivations(att.feature_activations),
|
|
100
100
|
signatures: [],
|
|
101
101
|
};
|
|
102
|
-
const s =
|
|
102
|
+
const s = canon(view);
|
|
103
103
|
return new TextEncoder().encode(s);
|
|
104
104
|
}
|
|
105
|
+
export function canonicalizeAttestation(att) {
|
|
106
|
+
return canonicalizeAttestationImpl(att, canonicalizeJCS);
|
|
107
|
+
}
|
|
108
|
+
/** Write-boundary twin of canonicalizeAttestation().
|
|
109
|
+
*
|
|
110
|
+
* Shares one implementation body with canonicalizeAttestation() so the two can never drift apart
|
|
111
|
+
* on the field list. Emits the same bytes for every value it accepts; the only
|
|
112
|
+
* difference is that an integer-valued number outside the interoperable IEEE 754
|
|
113
|
+
* range is refused instead of serialized. Use at signing and new-write boundaries
|
|
114
|
+
* ONLY: canonicalizeAttestation() stays unrestricted so an artifact signed before this rule keeps
|
|
115
|
+
* verifying. */
|
|
116
|
+
export function canonicalizeAttestationForWrite(att) {
|
|
117
|
+
return canonicalizeAttestationImpl(att, canonicalizeJCSForWrite);
|
|
118
|
+
}
|
|
105
119
|
/**
|
|
106
120
|
* Sign an attestation with a 32-byte Ed25519 seed. Appends a new entry to
|
|
107
121
|
* `signatures`. Returns a new object; never mutates input.
|
|
@@ -117,7 +131,7 @@ export function signAttestation(att, privateKey, signerDid, signerRole) {
|
|
|
117
131
|
if (typeof signerDid !== 'string' || signerDid.length === 0) {
|
|
118
132
|
throw new Error('signAttestation: signerDid must be a non-empty string');
|
|
119
133
|
}
|
|
120
|
-
const canonicalBytes =
|
|
134
|
+
const canonicalBytes = canonicalizeAttestationForWrite(att);
|
|
121
135
|
const canonicalString = new TextDecoder().decode(canonicalBytes);
|
|
122
136
|
const privateKeyHex = bytesToHex(privateKey);
|
|
123
137
|
const sigHex = edSignHex(canonicalString, privateKeyHex);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/v2/cognitive-attestation/envelope.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/v2/cognitive-attestation/envelope.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,14 @@ import type { CognitiveAttestationEnvelope, UnsignedCognitiveAttestationEnvelope
|
|
|
6
6
|
* envelope from a partial shape.
|
|
7
7
|
*/
|
|
8
8
|
export declare function canonicalizeForSignature(envelope: UnsignedCognitiveAttestationEnvelope | CognitiveAttestationEnvelope): string;
|
|
9
|
+
/** Write-boundary twin of canonicalizeForSignature().
|
|
10
|
+
*
|
|
11
|
+
* Emits the same bytes as canonicalizeForSignature() for every value it accepts. The only difference
|
|
12
|
+
* is that an integer-valued number outside the interoperable IEEE 754 range is
|
|
13
|
+
* refused instead of serialized. Use at signing and new-write boundaries ONLY:
|
|
14
|
+
* canonicalizeForSignature() stays unrestricted so an artifact signed before this rule keeps
|
|
15
|
+
* verifying. */
|
|
16
|
+
export declare function canonicalizeForSignatureForWrite(envelope: UnsignedCognitiveAttestationEnvelope | CognitiveAttestationEnvelope): string;
|
|
9
17
|
/**
|
|
10
18
|
* Sign an unsigned envelope with an Ed25519 private key (hex). Derives
|
|
11
19
|
* the public key from the private key and writes it into `agent_id` on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../../src/v2/cognitive_attestation/envelope.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,4BAA4B,EAC5B,oCAAoC,EACrC,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,oCAAoC,GAAG,4BAA4B,GAC5E,MAAM,CAGR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,oCAAoC,EACrF,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,CAAC,GACV,CAAC,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAM/D"}
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../../src/v2/cognitive_attestation/envelope.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,4BAA4B,EAC5B,oCAAoC,EACrC,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,oCAAoC,GAAG,4BAA4B,GAC5E,MAAM,CAGR;AAED;;;;;;iBAMiB;AACjB,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,oCAAoC,GAAG,4BAA4B,GAC5E,MAAM,CAGR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,oCAAoC,EACrF,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,CAAC,GACV,CAAC,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAM/D"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
// is the source of truth, the wire object is the canonical bytes plus
|
|
10
10
|
// signature.
|
|
11
11
|
// ══════════════════════════════════════════════════════════════════
|
|
12
|
-
import { canonicalizeJCS } from '../../core/canonical-jcs.js';
|
|
12
|
+
import { canonicalizeJCS, canonicalizeJCSForWrite } from '../../core/canonical-jcs.js';
|
|
13
13
|
import { sign, publicKeyFromPrivate } from '../../crypto/keys.js';
|
|
14
14
|
/**
|
|
15
15
|
* Canonicalize an envelope for signing. The signature field is set to the
|
|
@@ -21,6 +21,17 @@ export function canonicalizeForSignature(envelope) {
|
|
|
21
21
|
const draft = { ...envelope, signature: '' };
|
|
22
22
|
return canonicalizeJCS(draft);
|
|
23
23
|
}
|
|
24
|
+
/** Write-boundary twin of canonicalizeForSignature().
|
|
25
|
+
*
|
|
26
|
+
* Emits the same bytes as canonicalizeForSignature() for every value it accepts. The only difference
|
|
27
|
+
* is that an integer-valued number outside the interoperable IEEE 754 range is
|
|
28
|
+
* refused instead of serialized. Use at signing and new-write boundaries ONLY:
|
|
29
|
+
* canonicalizeForSignature() stays unrestricted so an artifact signed before this rule keeps
|
|
30
|
+
* verifying. */
|
|
31
|
+
export function canonicalizeForSignatureForWrite(envelope) {
|
|
32
|
+
const draft = { ...envelope, signature: '' };
|
|
33
|
+
return canonicalizeJCSForWrite(draft);
|
|
34
|
+
}
|
|
24
35
|
/**
|
|
25
36
|
* Sign an unsigned envelope with an Ed25519 private key (hex). Derives
|
|
26
37
|
* the public key from the private key and writes it into `agent_id` on
|
|
@@ -36,7 +47,7 @@ export function canonicalizeForSignature(envelope) {
|
|
|
36
47
|
export function signCognitiveAttestation(privateKeyHex, unsigned) {
|
|
37
48
|
const agent_id = publicKeyFromPrivate(privateKeyHex);
|
|
38
49
|
const withDerivedKey = { ...unsigned, agent_id };
|
|
39
|
-
const bytes =
|
|
50
|
+
const bytes = canonicalizeForSignatureForWrite(withDerivedKey);
|
|
40
51
|
const signature = sign(bytes, privateKeyHex);
|
|
41
52
|
return { ...withDerivedKey, signature };
|
|
42
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/v2/cognitive_attestation/envelope.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,sCAAsC;AACtC,qEAAqE;AACrE,6DAA6D;AAC7D,qEAAqE;AACrE,wEAAwE;AACxE,sEAAsE;AACtE,yEAAyE;AACzE,sEAAsE;AACtE,aAAa;AACb,qEAAqE;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/v2/cognitive_attestation/envelope.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,sCAAsC;AACtC,qEAAqE;AACrE,6DAA6D;AAC7D,qEAAqE;AACrE,wEAAwE;AACxE,sEAAsE;AACtE,yEAAyE;AACzE,sEAAsE;AACtE,aAAa;AACb,qEAAqE;AAErE,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACtF,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAOjE;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAA6E;IAE7E,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC5C,OAAO,eAAe,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC;AAED;;;;;;iBAMiB;AACjB,MAAM,UAAU,gCAAgC,CAC9C,QAA6E;IAE7E,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC5C,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAA;AACvC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CACtC,aAAqB,EACrB,QAAW;IAEX,MAAM,QAAQ,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAA;IACpD,MAAM,cAAc,GAAG,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,CAAA;IAChD,MAAM,KAAK,GAAG,gCAAgC,CAAC,cAAsD,CAAC,CAAA;IACtG,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAC5C,OAAO,EAAE,GAAG,cAAc,EAAE,SAAS,EAAmE,CAAA;AAC1G,CAAC"}
|
|
@@ -52,6 +52,14 @@ export declare function buildCPA(input: BuildCpaInput): ContextProvenanceAttesta
|
|
|
52
52
|
* Returns 64-hex lowercase.
|
|
53
53
|
*/
|
|
54
54
|
export declare function computeCpaRef(signedCpa: ContextProvenanceAttestation): string;
|
|
55
|
+
/** Write-boundary twin of computeCpaRef().
|
|
56
|
+
*
|
|
57
|
+
* Emits the same bytes as computeCpaRef() for every value it accepts. The only difference
|
|
58
|
+
* is that an integer-valued number outside the interoperable IEEE 754 range is
|
|
59
|
+
* refused instead of serialized. Use at signing and new-write boundaries ONLY:
|
|
60
|
+
* computeCpaRef() stays unrestricted so an artifact signed before this rule keeps
|
|
61
|
+
* verifying. */
|
|
62
|
+
export declare function computeCpaRefForWrite(signedCpa: ContextProvenanceAttestation): string;
|
|
55
63
|
/**
|
|
56
64
|
* Carry the content address of a signed CPA as a one-field object, ready
|
|
57
65
|
* to spread onto a receipt body BEFORE the receipt is signed. The verifier
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cpa.d.ts","sourceRoot":"","sources":["../../../../src/v2/context-provenance/cpa.ts"],"names":[],"mappings":"AAmBA,OAAO,EAGL,KAAK,WAAW,EAEhB,KAAK,cAAc,EACnB,KAAK,4BAA4B,EAElC,MAAM,YAAY,CAAA;AAYnB;4CAC4C;AAC5C,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAA;IACjC;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,kCAAkC,EAAE,yBAAyB,CAAA;CAC5F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,4BAA4B,
|
|
1
|
+
{"version":3,"file":"cpa.d.ts","sourceRoot":"","sources":["../../../../src/v2/context-provenance/cpa.ts"],"names":[],"mappings":"AAmBA,OAAO,EAGL,KAAK,WAAW,EAEhB,KAAK,cAAc,EACnB,KAAK,4BAA4B,EAElC,MAAM,YAAY,CAAA;AAYnB;4CAC4C;AAC5C,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAA;IACjC;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,kCAAkC,EAAE,yBAAyB,CAAA;CAC5F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,4BAA4B,CAiG3E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,4BAA4B,GAAG,MAAM,CAK7E;AACD;;;;;;iBAMiB;AACjB,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,4BAA4B,GAAG,MAAM,CAKrF;AAWD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,4BAA4B,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAClD,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,MAAM,GACd,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAEzB"}
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
// computeCpaRef content-addresses the FULLY SIGNED object under SIGN_TAG.
|
|
14
14
|
// ══════════════════════════════════════════════════════════════════
|
|
15
15
|
import { createHash } from 'node:crypto';
|
|
16
|
-
import { canonicalizeJCS } from '../../core/canonical-jcs.js';
|
|
16
|
+
import { canonicalizeJCS, canonicalizeJCSForWrite } from '../../core/canonical-jcs.js';
|
|
17
17
|
import { sign, publicKeyFromPrivate } from '../../crypto/keys.js';
|
|
18
18
|
import { CHANNEL_ORDER, } from './types.js';
|
|
19
|
-
import { SIGN_TAG,
|
|
19
|
+
import { SIGN_TAG, buildPartitionRootBytesForWrite, buildInclusionProofForWrite, buildTopRootBytes, bytesToHex, utf8Bytes, } from './merkle.js';
|
|
20
20
|
/**
|
|
21
21
|
* Build and sign a CPA from a flat list of context items.
|
|
22
22
|
*
|
|
@@ -56,7 +56,7 @@ export function buildCPA(input) {
|
|
|
56
56
|
if (!leaves || leaves.length === 0)
|
|
57
57
|
continue; // empty partitions omitted
|
|
58
58
|
// partition_root is over ALL leaves, unchanged in either mode.
|
|
59
|
-
const rootBytes =
|
|
59
|
+
const rootBytes = buildPartitionRootBytesForWrite(leaves);
|
|
60
60
|
partitionRootBytes.push(rootBytes);
|
|
61
61
|
const partition_root = bytesToHex(rootBytes);
|
|
62
62
|
const leaf_count = leaves.length;
|
|
@@ -73,7 +73,7 @@ export function buildCPA(input) {
|
|
|
73
73
|
for (const leaf of leaves) {
|
|
74
74
|
if (disclose.has(leaf.ctx_id)) {
|
|
75
75
|
disclosedLeaves.push({ ...leaf });
|
|
76
|
-
inclusion_proofs.push(
|
|
76
|
+
inclusion_proofs.push(buildInclusionProofForWrite(leaves, leaf.ctx_id));
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
const disclosedCount = disclosedLeaves.length;
|
|
@@ -105,14 +105,15 @@ export function buildCPA(input) {
|
|
|
105
105
|
mode,
|
|
106
106
|
partitions,
|
|
107
107
|
root,
|
|
108
|
-
// Conditional spread, not an undefined-valued key
|
|
109
|
-
//
|
|
108
|
+
// Conditional spread, not an undefined-valued key. An explicitly-set
|
|
109
|
+
// undefined is rejected by the canonicalizer as of #101, and before that it
|
|
110
|
+
// was rendered as null; either way it would not be the intended bytes.
|
|
110
111
|
...(input.producer_attestation !== undefined
|
|
111
112
|
? { producer_attestation: input.producer_attestation }
|
|
112
113
|
: {}),
|
|
113
114
|
signature: '',
|
|
114
115
|
};
|
|
115
|
-
const bytes =
|
|
116
|
+
const bytes = canonicalizeJCSForWrite(unsigned);
|
|
116
117
|
const signature = sign(bytes, privateKey);
|
|
117
118
|
return { ...unsigned, signature };
|
|
118
119
|
}
|
|
@@ -127,6 +128,19 @@ export function computeCpaRef(signedCpa) {
|
|
|
127
128
|
h.update(utf8Bytes(canonicalizeJCS(signedCpa)));
|
|
128
129
|
return h.digest('hex');
|
|
129
130
|
}
|
|
131
|
+
/** Write-boundary twin of computeCpaRef().
|
|
132
|
+
*
|
|
133
|
+
* Emits the same bytes as computeCpaRef() for every value it accepts. The only difference
|
|
134
|
+
* is that an integer-valued number outside the interoperable IEEE 754 range is
|
|
135
|
+
* refused instead of serialized. Use at signing and new-write boundaries ONLY:
|
|
136
|
+
* computeCpaRef() stays unrestricted so an artifact signed before this rule keeps
|
|
137
|
+
* verifying. */
|
|
138
|
+
export function computeCpaRefForWrite(signedCpa) {
|
|
139
|
+
const h = createHash('sha256');
|
|
140
|
+
h.update(utf8Bytes(SIGN_TAG));
|
|
141
|
+
h.update(utf8Bytes(canonicalizeJCSForWrite(signedCpa)));
|
|
142
|
+
return h.digest('hex');
|
|
143
|
+
}
|
|
130
144
|
// ══════════════════════════════════════════════════════════════════
|
|
131
145
|
// Mutual binding helpers (lean, module-local; see BINDING.md)
|
|
132
146
|
// ══════════════════════════════════════════════════════════════════
|
|
@@ -142,7 +156,7 @@ export function computeCpaRef(signedCpa) {
|
|
|
142
156
|
* receipt's cpa_ref (the receipt -> CPA binding direction).
|
|
143
157
|
*/
|
|
144
158
|
export function carryCpaRef(cpa) {
|
|
145
|
-
return { cpa_ref:
|
|
159
|
+
return { cpa_ref: computeCpaRefForWrite(cpa) };
|
|
146
160
|
}
|
|
147
161
|
/**
|
|
148
162
|
* Pure binder: return a NEW object equal to `receipt` plus a `cpa_ref`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cpa.js","sourceRoot":"","sources":["../../../../src/v2/context-provenance/cpa.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,sCAAsC;AACtC,qEAAqE;AACrE,kEAAkE;AAClE,qEAAqE;AACrE,qEAAqE;AACrE,sEAAsE;AACtE,qEAAqE;AACrE,uEAAuE;AACvE,wEAAwE;AACxE,+BAA+B;AAC/B,EAAE;AACF,0EAA0E;AAC1E,qEAAqE;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"cpa.js","sourceRoot":"","sources":["../../../../src/v2/context-provenance/cpa.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,17 +22,25 @@ export declare function leafPreimage(leaf: ContextItem): LeafPreimage;
|
|
|
22
22
|
/** leaf_hash = sha256( utf8(LEAF_TAG) || utf8(canonicalizeJCS(preimage)) )
|
|
23
23
|
* Returns the raw 32-byte digest. */
|
|
24
24
|
export declare function leafHash(leaf: ContextItem): Uint8Array;
|
|
25
|
+
/** Write-boundary twin of leafHash().
|
|
26
|
+
*
|
|
27
|
+
* Emits the same bytes as leafHash() for every value it accepts. The only difference
|
|
28
|
+
* is that an integer-valued number outside the interoperable IEEE 754 range is
|
|
29
|
+
* refused instead of serialized. Use at signing and new-write boundaries ONLY:
|
|
30
|
+
* leafHash() stays unrestricted so an artifact signed before this rule keeps
|
|
31
|
+
* verifying. */
|
|
32
|
+
export declare function leafHashForWrite(leaf: ContextItem): Uint8Array;
|
|
25
33
|
/** node_hash = sha256( utf8(NODE_TAG) || left32 || right32 ) over RAW
|
|
26
34
|
* 32-byte digests. Returns the raw 32-byte digest. */
|
|
27
35
|
export declare function nodeHash(left: Uint8Array, right: Uint8Array): Uint8Array;
|
|
28
|
-
/**
|
|
29
|
-
* Build the partition_root (raw 32-byte digest) for one partition's
|
|
30
|
-
* leaves. Leaves are sorted ascending by ctx_id (JS string / code-point
|
|
31
|
-
* order). ctx_id MUST be unique within the partition; a duplicate throws.
|
|
32
|
-
* Single leaf => partition_root = that leaf digest (no node hashing).
|
|
33
|
-
* Throws on an empty leaf list (empty partitions are omitted upstream).
|
|
34
|
-
*/
|
|
35
36
|
export declare function buildPartitionRootBytes(leaves: ContextItem[]): Uint8Array;
|
|
37
|
+
/** Write-boundary twin of buildPartitionRootBytes().
|
|
38
|
+
*
|
|
39
|
+
* Reaches a canonicalizer only indirectly, through leafHash, so a call-site census
|
|
40
|
+
* over canonicalizer usage cannot see it. Use when BUILDING a CPA; the recompute path
|
|
41
|
+
* in verify.ts keeps calling buildPartitionRootBytes() so a CPA signed before this
|
|
42
|
+
* rule still verifies. */
|
|
43
|
+
export declare function buildPartitionRootBytesForWrite(leaves: ContextItem[]): Uint8Array;
|
|
36
44
|
/** Hex convenience wrapper around buildPartitionRootBytes. */
|
|
37
45
|
export declare function buildPartitionRoot(leaves: ContextItem[]): string;
|
|
38
46
|
/**
|
|
@@ -64,18 +72,13 @@ export interface InclusionProof {
|
|
|
64
72
|
ctx_id: string;
|
|
65
73
|
path: InclusionStep[];
|
|
66
74
|
}
|
|
67
|
-
/**
|
|
68
|
-
* Build an inclusion proof for the leaf whose ctx_id === ctx_id, against
|
|
69
|
-
* the partition formed by `leaves`. Leaves are sorted by ctx_id exactly as
|
|
70
|
-
* buildPartitionRootBytes does. Walks bottom-up, recording the sibling
|
|
71
|
-
* digest (hex) and side at each level, and recording NO step when the
|
|
72
|
-
* target/ancestor is the promoted odd node at a level (it carries straight
|
|
73
|
-
* up, mirroring `reduce`).
|
|
74
|
-
*
|
|
75
|
-
* Throws on an empty partition, a duplicate ctx_id, or a ctx_id not found
|
|
76
|
-
* (these are producer-side invariants; the verifier never calls this).
|
|
77
|
-
*/
|
|
78
75
|
export declare function buildInclusionProof(leaves: ContextItem[], ctx_id: string): InclusionProof;
|
|
76
|
+
/** Write-boundary twin of buildInclusionProof().
|
|
77
|
+
*
|
|
78
|
+
* Reaches a canonicalizer only indirectly, through leafHash, so a call-site census over
|
|
79
|
+
* canonicalizer usage cannot see it. Use when BUILDING a CPA; verifyInclusionProof keeps
|
|
80
|
+
* calling leafHash() unrestricted so a proof emitted before this rule still checks. */
|
|
81
|
+
export declare function buildInclusionProofForWrite(leaves: ContextItem[], ctx_id: string): InclusionProof;
|
|
79
82
|
/**
|
|
80
83
|
* Verify an inclusion proof: recompute leaf_hash(leaf), fold the path with
|
|
81
84
|
* node_hash respecting each step's side, and compare the hex result to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../../../src/v2/context-provenance/merkle.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAI7D,iCAAiC;AACjC,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AACzC,gCAAgC;AAChC,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AACzC,4DAA4D;AAC5D,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AAczC,iBAAS,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAEnC;AAQD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAO5D;AAED;sCACsC;AACtC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAEtD;AAED;uDACuD;AACvD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAExE;
|
|
1
|
+
{"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../../../src/v2/context-provenance/merkle.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAI7D,iCAAiC;AACjC,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AACzC,gCAAgC;AAChC,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AACzC,4DAA4D;AAC5D,eAAO,MAAM,QAAQ,oBAAoB,CAAA;AAczC,iBAAS,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAEnC;AAQD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAO5D;AAED;sCACsC;AACtC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAEtD;AACD;;;;;;iBAMiB;AACjB,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAE9D;AAED;uDACuD;AACvD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAExE;AAwDD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAEzE;AAED;;;;;2BAK2B;AAC3B,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAEjF;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,4BAA4B,EAAE,UAAU,EAAE,GAAG,UAAU,CAKxF;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,4BAA4B,EAAE,MAAM,EAAE,GAAG,MAAM,CAG3E;AAED,oEAAoE;AACpE,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAMlD;AAED,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,CAAA;AAkB5B;;0DAE0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;4CAC4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,aAAa,EAAE,CAAA;CACtB;AAkED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAEzF;AAED;;;;wFAIwF;AACxF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAEjG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,cAAc,EACrB,cAAc,EAAE,MAAM,GACrB,OAAO,CAoBT"}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
// See TREE-SHAPE.md for the frozen-shape narrative.
|
|
19
19
|
// ══════════════════════════════════════════════════════════════════
|
|
20
20
|
import { createHash } from 'node:crypto';
|
|
21
|
-
import { canonicalizeJCS } from '../../core/canonical-jcs.js';
|
|
21
|
+
import { canonicalizeJCS, canonicalizeJCSForWrite } from '../../core/canonical-jcs.js';
|
|
22
22
|
// ── Domain tags (frozen byte values; trailing newline is intentional) ──
|
|
23
23
|
/** Leaf pre-image domain tag. */
|
|
24
24
|
export const LEAF_TAG = 'CPA:v0.1:leaf\n';
|
|
@@ -56,6 +56,16 @@ export function leafPreimage(leaf) {
|
|
|
56
56
|
export function leafHash(leaf) {
|
|
57
57
|
return sha256(utf8(LEAF_TAG), utf8(canonicalizeJCS(leafPreimage(leaf))));
|
|
58
58
|
}
|
|
59
|
+
/** Write-boundary twin of leafHash().
|
|
60
|
+
*
|
|
61
|
+
* Emits the same bytes as leafHash() for every value it accepts. The only difference
|
|
62
|
+
* is that an integer-valued number outside the interoperable IEEE 754 range is
|
|
63
|
+
* refused instead of serialized. Use at signing and new-write boundaries ONLY:
|
|
64
|
+
* leafHash() stays unrestricted so an artifact signed before this rule keeps
|
|
65
|
+
* verifying. */
|
|
66
|
+
export function leafHashForWrite(leaf) {
|
|
67
|
+
return sha256(utf8(LEAF_TAG), utf8(canonicalizeJCSForWrite(leafPreimage(leaf))));
|
|
68
|
+
}
|
|
59
69
|
/** node_hash = sha256( utf8(NODE_TAG) || left32 || right32 ) over RAW
|
|
60
70
|
* 32-byte digests. Returns the raw 32-byte digest. */
|
|
61
71
|
export function nodeHash(left, right) {
|
|
@@ -95,7 +105,7 @@ function reduce(level) {
|
|
|
95
105
|
* Single leaf => partition_root = that leaf digest (no node hashing).
|
|
96
106
|
* Throws on an empty leaf list (empty partitions are omitted upstream).
|
|
97
107
|
*/
|
|
98
|
-
|
|
108
|
+
function buildPartitionRootBytesImpl(leaves, leaf) {
|
|
99
109
|
if (leaves.length === 0) {
|
|
100
110
|
throw new Error('CPA merkle: a present partition must have at least one leaf');
|
|
101
111
|
}
|
|
@@ -105,9 +115,21 @@ export function buildPartitionRootBytes(leaves) {
|
|
|
105
115
|
throw new Error(`CPA merkle: duplicate ctx_id "${sorted[i].ctx_id}" within partition`);
|
|
106
116
|
}
|
|
107
117
|
}
|
|
108
|
-
const digests = sorted.map(
|
|
118
|
+
const digests = sorted.map(leaf);
|
|
109
119
|
return reduce(digests);
|
|
110
120
|
}
|
|
121
|
+
export function buildPartitionRootBytes(leaves) {
|
|
122
|
+
return buildPartitionRootBytesImpl(leaves, leafHash);
|
|
123
|
+
}
|
|
124
|
+
/** Write-boundary twin of buildPartitionRootBytes().
|
|
125
|
+
*
|
|
126
|
+
* Reaches a canonicalizer only indirectly, through leafHash, so a call-site census
|
|
127
|
+
* over canonicalizer usage cannot see it. Use when BUILDING a CPA; the recompute path
|
|
128
|
+
* in verify.ts keeps calling buildPartitionRootBytes() so a CPA signed before this
|
|
129
|
+
* rule still verifies. */
|
|
130
|
+
export function buildPartitionRootBytesForWrite(leaves) {
|
|
131
|
+
return buildPartitionRootBytesImpl(leaves, leafHashForWrite);
|
|
132
|
+
}
|
|
111
133
|
/** Hex convenience wrapper around buildPartitionRootBytes. */
|
|
112
134
|
export function buildPartitionRoot(leaves) {
|
|
113
135
|
return toHex(buildPartitionRootBytes(leaves));
|
|
@@ -158,7 +180,7 @@ export { utf8 as utf8Bytes };
|
|
|
158
180
|
* Throws on an empty partition, a duplicate ctx_id, or a ctx_id not found
|
|
159
181
|
* (these are producer-side invariants; the verifier never calls this).
|
|
160
182
|
*/
|
|
161
|
-
|
|
183
|
+
function buildInclusionProofImpl(leaves, ctx_id, leaf) {
|
|
162
184
|
if (leaves.length === 0) {
|
|
163
185
|
throw new Error('CPA merkle: cannot build an inclusion proof over an empty partition');
|
|
164
186
|
}
|
|
@@ -172,7 +194,7 @@ export function buildInclusionProof(leaves, ctx_id) {
|
|
|
172
194
|
if (index < 0) {
|
|
173
195
|
throw new Error(`CPA merkle: ctx_id "${ctx_id}" not found in partition`);
|
|
174
196
|
}
|
|
175
|
-
let current = sorted.map(
|
|
197
|
+
let current = sorted.map(leaf);
|
|
176
198
|
const path = [];
|
|
177
199
|
while (current.length > 1) {
|
|
178
200
|
const isRightChild = index % 2 === 1;
|
|
@@ -203,6 +225,17 @@ export function buildInclusionProof(leaves, ctx_id) {
|
|
|
203
225
|
}
|
|
204
226
|
return { ctx_id, path };
|
|
205
227
|
}
|
|
228
|
+
export function buildInclusionProof(leaves, ctx_id) {
|
|
229
|
+
return buildInclusionProofImpl(leaves, ctx_id, leafHash);
|
|
230
|
+
}
|
|
231
|
+
/** Write-boundary twin of buildInclusionProof().
|
|
232
|
+
*
|
|
233
|
+
* Reaches a canonicalizer only indirectly, through leafHash, so a call-site census over
|
|
234
|
+
* canonicalizer usage cannot see it. Use when BUILDING a CPA; verifyInclusionProof keeps
|
|
235
|
+
* calling leafHash() unrestricted so a proof emitted before this rule still checks. */
|
|
236
|
+
export function buildInclusionProofForWrite(leaves, ctx_id) {
|
|
237
|
+
return buildInclusionProofImpl(leaves, ctx_id, leafHashForWrite);
|
|
238
|
+
}
|
|
206
239
|
/**
|
|
207
240
|
* Verify an inclusion proof: recompute leaf_hash(leaf), fold the path with
|
|
208
241
|
* node_hash respecting each step's side, and compare the hex result to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkle.js","sourceRoot":"","sources":["../../../../src/v2/context-provenance/merkle.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,sCAAsC;AACtC,qEAAqE;AACrE,2DAA2D;AAC3D,qEAAqE;AACrE,yEAAyE;AACzE,wEAAwE;AACxE,sEAAsE;AACtE,yBAAyB;AACzB,EAAE;AACF,sEAAsE;AACtE,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,gEAAgE;AAChE,0BAA0B;AAC1B,EAAE;AACF,oDAAoD;AACpD,qEAAqE;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"merkle.js","sourceRoot":"","sources":["../../../../src/v2/context-provenance/merkle.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,7 +95,7 @@ export interface CpaPartition {
|
|
|
95
95
|
* to an external producer attestation; absent on a CPA that does not
|
|
96
96
|
* carry one, and the absent form is byte-identical to the pre-slot
|
|
97
97
|
* shape (the builder adds the key by conditional spread, never as an
|
|
98
|
-
* explicitly-undefined key, which
|
|
98
|
+
* explicitly-undefined key, which the canonicalizer rejects as of #101).
|
|
99
99
|
* - signature: 128-hex Ed25519; '' in the unsigned/canonical shape.
|
|
100
100
|
*/
|
|
101
101
|
export interface ContextProvenanceAttestation {
|
|
@@ -6,6 +6,14 @@ import type { CrossIssuerAttestationEnvelope, UnsignedCrossIssuerAttestationEnve
|
|
|
6
6
|
* having to reconstruct the envelope from a partial shape.
|
|
7
7
|
*/
|
|
8
8
|
export declare function canonicalizeForSignature(envelope: UnsignedCrossIssuerAttestationEnvelope | CrossIssuerAttestationEnvelope): string;
|
|
9
|
+
/** Write-boundary twin of canonicalizeForSignature().
|
|
10
|
+
*
|
|
11
|
+
* Emits the same bytes as canonicalizeForSignature() for every value it accepts. The only difference
|
|
12
|
+
* is that an integer-valued number outside the interoperable IEEE 754 range is
|
|
13
|
+
* refused instead of serialized. Use at signing and new-write boundaries ONLY:
|
|
14
|
+
* canonicalizeForSignature() stays unrestricted so an artifact signed before this rule keeps
|
|
15
|
+
* verifying. */
|
|
16
|
+
export declare function canonicalizeForSignatureForWrite(envelope: UnsignedCrossIssuerAttestationEnvelope | CrossIssuerAttestationEnvelope): string;
|
|
9
17
|
/**
|
|
10
18
|
* Sign an unsigned envelope with the composer's Ed25519 private key
|
|
11
19
|
* (hex). Derives the public key from the private key and writes it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../../src/v2/cross_issuer_attestation/envelope.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,8BAA8B,EAC9B,sCAAsC,EACvC,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,sCAAsC,GAAG,8BAA8B,GAChF,MAAM,CAGR;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,sCAAsC,EACzF,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,CAAC,GACV,CAAC,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAMlE"}
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../../../src/v2/cross_issuer_attestation/envelope.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,8BAA8B,EAC9B,sCAAsC,EACvC,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,sCAAsC,GAAG,8BAA8B,GAChF,MAAM,CAGR;AAED;;;;;;iBAMiB;AACjB,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,sCAAsC,GAAG,8BAA8B,GAChF,MAAM,CAGR;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,sCAAsC,EACzF,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,CAAC,GACV,CAAC,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAMlE"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
// canonical bytes are the source of truth, the wire object is those
|
|
10
10
|
// bytes plus the composer signature.
|
|
11
11
|
// ══════════════════════════════════════════════════════════════════
|
|
12
|
-
import { canonicalizeJCS } from '../../core/canonical-jcs.js';
|
|
12
|
+
import { canonicalizeJCS, canonicalizeJCSForWrite } from '../../core/canonical-jcs.js';
|
|
13
13
|
import { sign, publicKeyFromPrivate } from '../../crypto/keys.js';
|
|
14
14
|
/**
|
|
15
15
|
* Canonicalize an envelope for signing. The signature field is set to
|
|
@@ -21,6 +21,17 @@ export function canonicalizeForSignature(envelope) {
|
|
|
21
21
|
const draft = { ...envelope, signature: '' };
|
|
22
22
|
return canonicalizeJCS(draft);
|
|
23
23
|
}
|
|
24
|
+
/** Write-boundary twin of canonicalizeForSignature().
|
|
25
|
+
*
|
|
26
|
+
* Emits the same bytes as canonicalizeForSignature() for every value it accepts. The only difference
|
|
27
|
+
* is that an integer-valued number outside the interoperable IEEE 754 range is
|
|
28
|
+
* refused instead of serialized. Use at signing and new-write boundaries ONLY:
|
|
29
|
+
* canonicalizeForSignature() stays unrestricted so an artifact signed before this rule keeps
|
|
30
|
+
* verifying. */
|
|
31
|
+
export function canonicalizeForSignatureForWrite(envelope) {
|
|
32
|
+
const draft = { ...envelope, signature: '' };
|
|
33
|
+
return canonicalizeJCSForWrite(draft);
|
|
34
|
+
}
|
|
24
35
|
/**
|
|
25
36
|
* Sign an unsigned envelope with the composer's Ed25519 private key
|
|
26
37
|
* (hex). Derives the public key from the private key and writes it
|
|
@@ -33,7 +44,7 @@ export function canonicalizeForSignature(envelope) {
|
|
|
33
44
|
export function signCrossIssuerAttestation(privateKeyHex, unsigned) {
|
|
34
45
|
const composer_id = publicKeyFromPrivate(privateKeyHex);
|
|
35
46
|
const withDerivedKey = { ...unsigned, composer_id };
|
|
36
|
-
const bytes =
|
|
47
|
+
const bytes = canonicalizeForSignatureForWrite(withDerivedKey);
|
|
37
48
|
const signature = sign(bytes, privateKeyHex);
|
|
38
49
|
return { ...withDerivedKey, signature };
|
|
39
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/v2/cross_issuer_attestation/envelope.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,sCAAsC;AACtC,qEAAqE;AACrE,gEAAgE;AAChE,qEAAqE;AACrE,kEAAkE;AAClE,oEAAoE;AACpE,qEAAqE;AACrE,oEAAoE;AACpE,qCAAqC;AACrC,qEAAqE;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/v2/cross_issuer_attestation/envelope.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,sCAAsC;AACtC,qEAAqE;AACrE,gEAAgE;AAChE,qEAAqE;AACrE,kEAAkE;AAClE,oEAAoE;AACpE,qEAAqE;AACrE,oEAAoE;AACpE,qCAAqC;AACrC,qEAAqE;AAErE,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACtF,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAOjE;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAiF;IAEjF,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC5C,OAAO,eAAe,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC;AAED;;;;;;iBAMiB;AACjB,MAAM,UAAU,gCAAgC,CAC9C,QAAiF;IAEjF,MAAM,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC5C,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAA;AACvC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CACxC,aAAqB,EACrB,QAAW;IAEX,MAAM,WAAW,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAA;IACvD,MAAM,cAAc,GAAG,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,CAAA;IACnD,MAAM,KAAK,GAAG,gCAAgC,CAAC,cAAwD,CAAC,CAAA;IACxG,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAC5C,OAAO,EAAE,GAAG,cAAc,EAAE,SAAS,EAAsE,CAAA;AAC7G,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../../src/v2/hash-pointer/profile.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EACV,gCAAgC,EAGhC,sBAAsB,EACtB,2BAA2B,EAE5B,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../../src/v2/hash-pointer/profile.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EACV,gCAAgC,EAGhC,sBAAsB,EACtB,2BAA2B,EAE5B,MAAM,YAAY,CAAA;AA2BnB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,gCAAgC,GACtC,sBAAsB,CA8ExB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,sBAAsB,EAC/B,IAAI,CAAC,EAAE;IACL,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC,GACA,2BAA2B,CA6E7B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAE7E"}
|