signet-protocol 0.1.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/LICENSE +21 -0
- package/README.md +112 -0
- package/dist/anomaly.d.ts +42 -0
- package/dist/anomaly.d.ts.map +1 -0
- package/dist/anomaly.js +209 -0
- package/dist/anomaly.js.map +1 -0
- package/dist/badge.d.ts +56 -0
- package/dist/badge.d.ts.map +1 -0
- package/dist/badge.js +171 -0
- package/dist/badge.js.map +1 -0
- package/dist/bonds.d.ts +39 -0
- package/dist/bonds.d.ts.map +1 -0
- package/dist/bonds.js +149 -0
- package/dist/bonds.js.map +1 -0
- package/dist/challenges.d.ts +18 -0
- package/dist/challenges.d.ts.map +1 -0
- package/dist/challenges.js +145 -0
- package/dist/challenges.js.map +1 -0
- package/dist/cold-call.d.ts +74 -0
- package/dist/cold-call.d.ts.map +1 -0
- package/dist/cold-call.js +176 -0
- package/dist/cold-call.js.map +1 -0
- package/dist/compliance.d.ts +82 -0
- package/dist/compliance.d.ts.map +1 -0
- package/dist/compliance.js +478 -0
- package/dist/compliance.js.map +1 -0
- package/dist/connections.d.ts +63 -0
- package/dist/connections.d.ts.map +1 -0
- package/dist/connections.js +170 -0
- package/dist/connections.js.map +1 -0
- package/dist/constants.d.ts +86 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +124 -0
- package/dist/constants.js.map +1 -0
- package/dist/credentials.d.ts +190 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +686 -0
- package/dist/credentials.js.map +1 -0
- package/dist/crypto.d.ts +27 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/crypto.js +75 -0
- package/dist/crypto.js.map +1 -0
- package/dist/errors.d.ts +17 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +29 -0
- package/dist/errors.js.map +1 -0
- package/dist/i18n.d.ts +98 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +1118 -0
- package/dist/i18n.js.map +1 -0
- package/dist/identity-bridge.d.ts +52 -0
- package/dist/identity-bridge.d.ts.map +1 -0
- package/dist/identity-bridge.js +228 -0
- package/dist/identity-bridge.js.map +1 -0
- package/dist/identity-tree.d.ts +47 -0
- package/dist/identity-tree.d.ts.map +1 -0
- package/dist/identity-tree.js +69 -0
- package/dist/identity-tree.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +86 -0
- package/dist/index.js.map +1 -0
- package/dist/key-derivation.d.ts +43 -0
- package/dist/key-derivation.d.ts.map +1 -0
- package/dist/key-derivation.js +212 -0
- package/dist/key-derivation.js.map +1 -0
- package/dist/lsag.d.ts +23 -0
- package/dist/lsag.d.ts.map +1 -0
- package/dist/lsag.js +35 -0
- package/dist/lsag.js.map +1 -0
- package/dist/merkle.d.ts +19 -0
- package/dist/merkle.d.ts.map +1 -0
- package/dist/merkle.js +155 -0
- package/dist/merkle.js.map +1 -0
- package/dist/policies.d.ts +22 -0
- package/dist/policies.d.ts.map +1 -0
- package/dist/policies.js +123 -0
- package/dist/policies.js.map +1 -0
- package/dist/range-proof.d.ts +6 -0
- package/dist/range-proof.d.ts.map +1 -0
- package/dist/range-proof.js +45 -0
- package/dist/range-proof.js.map +1 -0
- package/dist/relay.d.ts +106 -0
- package/dist/relay.d.ts.map +1 -0
- package/dist/relay.js +336 -0
- package/dist/relay.js.map +1 -0
- package/dist/ring-signature.d.ts +35 -0
- package/dist/ring-signature.d.ts.map +1 -0
- package/dist/ring-signature.js +56 -0
- package/dist/ring-signature.js.map +1 -0
- package/dist/shamir.d.ts +55 -0
- package/dist/shamir.d.ts.map +1 -0
- package/dist/shamir.js +253 -0
- package/dist/shamir.js.map +1 -0
- package/dist/signet-words.d.ts +42 -0
- package/dist/signet-words.d.ts.map +1 -0
- package/dist/signet-words.js +82 -0
- package/dist/signet-words.js.map +1 -0
- package/dist/store.d.ts +65 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +290 -0
- package/dist/store.js.map +1 -0
- package/dist/trust-score.d.ts +9 -0
- package/dist/trust-score.d.ts.map +1 -0
- package/dist/trust-score.js +186 -0
- package/dist/trust-score.js.map +1 -0
- package/dist/types.d.ts +358 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +11 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +21 -0
- package/dist/utils.js.map +1 -0
- package/dist/validation.d.ts +33 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +312 -0
- package/dist/validation.js.map +1 -0
- package/dist/verifiers.d.ts +18 -0
- package/dist/verifiers.d.ts.map +1 -0
- package/dist/verifiers.js +118 -0
- package/dist/verifiers.js.map +1 -0
- package/dist/vouches.d.ts +14 -0
- package/dist/vouches.d.ts.map +1 -0
- package/dist/vouches.js +103 -0
- package/dist/vouches.js.map +1 -0
- package/package.json +76 -0
- package/src/anomaly.ts +307 -0
- package/src/badge.ts +208 -0
- package/src/bonds.ts +203 -0
- package/src/challenges.ts +187 -0
- package/src/cold-call.ts +238 -0
- package/src/compliance.ts +612 -0
- package/src/connections.ts +216 -0
- package/src/constants.ts +146 -0
- package/src/credentials.ts +908 -0
- package/src/crypto.ts +85 -0
- package/src/errors.ts +31 -0
- package/src/i18n.ts +1347 -0
- package/src/identity-bridge.ts +262 -0
- package/src/identity-tree.ts +90 -0
- package/src/index.ts +452 -0
- package/src/lsag.ts +53 -0
- package/src/merkle.ts +176 -0
- package/src/policies.ts +154 -0
- package/src/range-proof.ts +66 -0
- package/src/relay.ts +433 -0
- package/src/ring-signature.ts +76 -0
- package/src/signet-words.ts +122 -0
- package/src/store.ts +336 -0
- package/src/trust-score.ts +208 -0
- package/src/types.ts +482 -0
- package/src/utils.ts +20 -0
- package/src/validation.ts +391 -0
- package/src/verifiers.ts +156 -0
- package/src/vouches.ts +141 -0
package/dist/i18n.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { NostrEvent, SignetTier, ParsedIdentityBridge } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Select decoy ring members from a set of verified pubkeys.
|
|
4
|
+
* Inserts the real pubkey at a random position among the decoys.
|
|
5
|
+
*
|
|
6
|
+
* @param verifiedPubkeys - Pool of verified pubkeys to choose decoys from (must not include realPubkey)
|
|
7
|
+
* @param realPubkey - The real verified account's pubkey
|
|
8
|
+
* @param ringSize - Desired ring size (minimum MIN_BRIDGE_RING_SIZE)
|
|
9
|
+
* @returns { ring, signerIndex } — the ring array and the position of the real signer
|
|
10
|
+
*/
|
|
11
|
+
export declare function selectDecoyRing(verifiedPubkeys: string[], realPubkey: string, ringSize?: number): {
|
|
12
|
+
ring: string[];
|
|
13
|
+
signerIndex: number;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Compute the trust weight contribution of an identity bridge based on the
|
|
17
|
+
* minimum tier of ring members.
|
|
18
|
+
*/
|
|
19
|
+
export declare function computeBridgeWeight(ringMinTier: SignetTier): number;
|
|
20
|
+
/**
|
|
21
|
+
* Create an identity bridge event (kind 31000, type: identity-bridge).
|
|
22
|
+
* Published from the anonymous account, it proves the anon account owner
|
|
23
|
+
* also controls one of the verified accounts in the ring.
|
|
24
|
+
*
|
|
25
|
+
* @param anonPrivateKey - Private key of the anonymous account (signs the Nostr event)
|
|
26
|
+
* @param realPrivateKey - Private key of the real verified account (signs the ring signature)
|
|
27
|
+
* @param ring - Array of verified pubkeys forming the anonymity set
|
|
28
|
+
* @param signerIndex - Position of the real account in the ring
|
|
29
|
+
* @param ringMinTier - Minimum verification tier among ring members
|
|
30
|
+
* @returns Signed kind 31000 (type: identity-bridge) NostrEvent
|
|
31
|
+
*/
|
|
32
|
+
export declare function createIdentityBridge(anonPrivateKey: string, realPrivateKey: string, ring: string[], signerIndex: number, ringMinTier: SignetTier, opts?: {
|
|
33
|
+
occurredAt?: number;
|
|
34
|
+
}): Promise<NostrEvent>;
|
|
35
|
+
/**
|
|
36
|
+
* Verify an identity bridge event.
|
|
37
|
+
* Checks: Nostr signature, ring signature validity, ring size >= minimum,
|
|
38
|
+
* and optionally that the bridge is not too old (replay resistance).
|
|
39
|
+
*
|
|
40
|
+
* @param event - The identity bridge event to verify
|
|
41
|
+
* @param opts - Optional verification parameters
|
|
42
|
+
* @param opts.maxAgeSeconds - Maximum age of the bridge in seconds (default: 24h).
|
|
43
|
+
* Set to 0 to disable freshness checking.
|
|
44
|
+
*/
|
|
45
|
+
export declare function verifyIdentityBridge(event: NostrEvent, opts?: {
|
|
46
|
+
maxAgeSeconds?: number;
|
|
47
|
+
}): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Parse an identity bridge event into a structured form.
|
|
50
|
+
*/
|
|
51
|
+
export declare function parseIdentityBridge(event: NostrEvent): ParsedIdentityBridge | null;
|
|
52
|
+
//# sourceMappingURL=identity-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-bridge.d.ts","sourceRoot":"","sources":["../src/identity-bridge.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAmB,MAAM,YAAY,CAAC;AAkBhG;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,eAAe,EAAE,MAAM,EAAE,EACzB,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAA6B,GACtC;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAkCzC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAEnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,UAAU,EACvB,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B,OAAO,CAAC,UAAU,CAAC,CA4CrB;AAKD;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,UAAU,EACjB,IAAI,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC,OAAO,CAAC,OAAO,CAAC,CA6ClB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,oBAAoB,GAAG,IAAI,CAyClF"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
// Identity Bridge (kind 31000, type: identity-bridge)
|
|
2
|
+
// Allows an anonymous account to cryptographically prove it is controlled by
|
|
3
|
+
// a verified real account, without revealing which one. Uses SAG ring signatures.
|
|
4
|
+
//
|
|
5
|
+
// Published from the anon account. Content contains a ring signature proving
|
|
6
|
+
// one of N verified accounts also controls this anon account.
|
|
7
|
+
import { createAttestation } from 'nostr-attestations';
|
|
8
|
+
import { parseAttestation } from 'nostr-attestations';
|
|
9
|
+
import { ATTESTATION_KIND, ATTESTATION_TYPES, MIN_BRIDGE_RING_SIZE, TRUST_WEIGHTS, DEFAULT_CRYPTO_ALGORITHM } from './constants.js';
|
|
10
|
+
import { getPublicKey, signEvent, verifyEvent } from './crypto.js';
|
|
11
|
+
import { ringSign, ringVerify } from './ring-signature.js';
|
|
12
|
+
import { getTagValue } from './validation.js';
|
|
13
|
+
import { randomBytes } from '@noble/hashes/utils.js';
|
|
14
|
+
import { SignetValidationError, SignetCryptoError } from './errors.js';
|
|
15
|
+
/** Generate a cryptographically secure random integer in [0, max) using rejection sampling */
|
|
16
|
+
function secureRandomInt(max) {
|
|
17
|
+
if (!Number.isInteger(max) || !Number.isSafeInteger(max) || max <= 0) {
|
|
18
|
+
throw new SignetCryptoError(`secureRandomInt: max must be a positive safe integer, got ${max}`);
|
|
19
|
+
}
|
|
20
|
+
const limit = Math.floor(0x100000000 / max) * max;
|
|
21
|
+
let val;
|
|
22
|
+
do {
|
|
23
|
+
const bytes = randomBytes(4);
|
|
24
|
+
val = ((bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]) >>> 0;
|
|
25
|
+
} while (val >= limit);
|
|
26
|
+
return val % max;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Select decoy ring members from a set of verified pubkeys.
|
|
30
|
+
* Inserts the real pubkey at a random position among the decoys.
|
|
31
|
+
*
|
|
32
|
+
* @param verifiedPubkeys - Pool of verified pubkeys to choose decoys from (must not include realPubkey)
|
|
33
|
+
* @param realPubkey - The real verified account's pubkey
|
|
34
|
+
* @param ringSize - Desired ring size (minimum MIN_BRIDGE_RING_SIZE)
|
|
35
|
+
* @returns { ring, signerIndex } — the ring array and the position of the real signer
|
|
36
|
+
*/
|
|
37
|
+
export function selectDecoyRing(verifiedPubkeys, realPubkey, ringSize = MIN_BRIDGE_RING_SIZE) {
|
|
38
|
+
if (ringSize < MIN_BRIDGE_RING_SIZE) {
|
|
39
|
+
throw new SignetValidationError(`Ring size must be at least ${MIN_BRIDGE_RING_SIZE}`);
|
|
40
|
+
}
|
|
41
|
+
// Filter out the real pubkey from candidates
|
|
42
|
+
const candidates = verifiedPubkeys.filter((pk) => pk !== realPubkey);
|
|
43
|
+
const decoyCount = ringSize - 1;
|
|
44
|
+
if (candidates.length < decoyCount) {
|
|
45
|
+
throw new SignetValidationError(`Not enough verified pubkeys for ring: need ${decoyCount} decoys, have ${candidates.length}`);
|
|
46
|
+
}
|
|
47
|
+
// Shuffle and pick decoys (Fisher-Yates partial shuffle, CSPRNG)
|
|
48
|
+
const shuffled = [...candidates];
|
|
49
|
+
for (let i = shuffled.length - 1; i > 0; i--) {
|
|
50
|
+
const j = secureRandomInt(i + 1);
|
|
51
|
+
[shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];
|
|
52
|
+
}
|
|
53
|
+
const decoys = shuffled.slice(0, decoyCount);
|
|
54
|
+
// Insert real pubkey at a random position (CSPRNG)
|
|
55
|
+
const signerIndex = secureRandomInt(ringSize);
|
|
56
|
+
const ring = [];
|
|
57
|
+
let decoyIdx = 0;
|
|
58
|
+
for (let i = 0; i < ringSize; i++) {
|
|
59
|
+
if (i === signerIndex) {
|
|
60
|
+
ring.push(realPubkey);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
ring.push(decoys[decoyIdx++]);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return { ring, signerIndex };
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Compute the trust weight contribution of an identity bridge based on the
|
|
70
|
+
* minimum tier of ring members.
|
|
71
|
+
*/
|
|
72
|
+
export function computeBridgeWeight(ringMinTier) {
|
|
73
|
+
return TRUST_WEIGHTS.IDENTITY_BRIDGE * (ringMinTier / 4);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Create an identity bridge event (kind 31000, type: identity-bridge).
|
|
77
|
+
* Published from the anonymous account, it proves the anon account owner
|
|
78
|
+
* also controls one of the verified accounts in the ring.
|
|
79
|
+
*
|
|
80
|
+
* @param anonPrivateKey - Private key of the anonymous account (signs the Nostr event)
|
|
81
|
+
* @param realPrivateKey - Private key of the real verified account (signs the ring signature)
|
|
82
|
+
* @param ring - Array of verified pubkeys forming the anonymity set
|
|
83
|
+
* @param signerIndex - Position of the real account in the ring
|
|
84
|
+
* @param ringMinTier - Minimum verification tier among ring members
|
|
85
|
+
* @returns Signed kind 31000 (type: identity-bridge) NostrEvent
|
|
86
|
+
*/
|
|
87
|
+
export async function createIdentityBridge(anonPrivateKey, realPrivateKey, ring, signerIndex, ringMinTier, opts) {
|
|
88
|
+
if (ring.length < MIN_BRIDGE_RING_SIZE) {
|
|
89
|
+
throw new SignetValidationError(`Ring must have at least ${MIN_BRIDGE_RING_SIZE} members`);
|
|
90
|
+
}
|
|
91
|
+
const anonPubkey = getPublicKey(anonPrivateKey);
|
|
92
|
+
const timestamp = Math.floor(Date.now() / 1000);
|
|
93
|
+
// The binding message ties the anon pubkey to this timestamp
|
|
94
|
+
const bindingMessage = `signet:identity-bridge:${anonPubkey}:${timestamp}`;
|
|
95
|
+
// Ring signature: real private key signs binding message inside the ring
|
|
96
|
+
const ringSig = ringSign(bindingMessage, ring, signerIndex, realPrivateKey);
|
|
97
|
+
const contentPayload = JSON.stringify({
|
|
98
|
+
ringSig: {
|
|
99
|
+
ring: ringSig.ring,
|
|
100
|
+
c0: ringSig.c0,
|
|
101
|
+
responses: ringSig.responses,
|
|
102
|
+
message: ringSig.message,
|
|
103
|
+
domain: ringSig.domain,
|
|
104
|
+
},
|
|
105
|
+
timestamp,
|
|
106
|
+
});
|
|
107
|
+
const template = createAttestation({
|
|
108
|
+
type: ATTESTATION_TYPES.IDENTITY_BRIDGE,
|
|
109
|
+
occurredAt: opts?.occurredAt,
|
|
110
|
+
summary: 'Anonymous account linked to verified identity via ring signature',
|
|
111
|
+
tags: [
|
|
112
|
+
['ring-min-tier', String(ringMinTier)],
|
|
113
|
+
['ring-size', String(ring.length)],
|
|
114
|
+
['algo', DEFAULT_CRYPTO_ALGORITHM],
|
|
115
|
+
],
|
|
116
|
+
content: contentPayload,
|
|
117
|
+
});
|
|
118
|
+
const unsigned = {
|
|
119
|
+
...template,
|
|
120
|
+
pubkey: anonPubkey,
|
|
121
|
+
created_at: timestamp,
|
|
122
|
+
};
|
|
123
|
+
return signEvent(unsigned, anonPrivateKey);
|
|
124
|
+
}
|
|
125
|
+
/** Default maximum age for an identity bridge event: 24 hours */
|
|
126
|
+
const DEFAULT_MAX_AGE_SECONDS = 24 * 60 * 60;
|
|
127
|
+
/**
|
|
128
|
+
* Verify an identity bridge event.
|
|
129
|
+
* Checks: Nostr signature, ring signature validity, ring size >= minimum,
|
|
130
|
+
* and optionally that the bridge is not too old (replay resistance).
|
|
131
|
+
*
|
|
132
|
+
* @param event - The identity bridge event to verify
|
|
133
|
+
* @param opts - Optional verification parameters
|
|
134
|
+
* @param opts.maxAgeSeconds - Maximum age of the bridge in seconds (default: 24h).
|
|
135
|
+
* Set to 0 to disable freshness checking.
|
|
136
|
+
*/
|
|
137
|
+
export async function verifyIdentityBridge(event, opts) {
|
|
138
|
+
// Check kind + type tag
|
|
139
|
+
if (event.kind !== ATTESTATION_KIND)
|
|
140
|
+
return false;
|
|
141
|
+
if (getTagValue(event, 'type') !== ATTESTATION_TYPES.IDENTITY_BRIDGE)
|
|
142
|
+
return false;
|
|
143
|
+
// Verify Nostr event signature
|
|
144
|
+
const validEvent = await verifyEvent(event);
|
|
145
|
+
if (!validEvent)
|
|
146
|
+
return false;
|
|
147
|
+
// Parse content
|
|
148
|
+
let parsed;
|
|
149
|
+
try {
|
|
150
|
+
const raw = JSON.parse(event.content);
|
|
151
|
+
if (!raw || typeof raw !== 'object' ||
|
|
152
|
+
!raw.ringSig || typeof raw.ringSig !== 'object' ||
|
|
153
|
+
!Array.isArray(raw.ringSig.ring) || typeof raw.ringSig.message !== 'string' ||
|
|
154
|
+
typeof raw.timestamp !== 'number') {
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
parsed = raw;
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
// Verify ring size
|
|
163
|
+
const ringSize = parseInt(getTagValue(event, 'ring-size') || '0', 10);
|
|
164
|
+
if (ringSize < MIN_BRIDGE_RING_SIZE)
|
|
165
|
+
return false;
|
|
166
|
+
if (parsed.ringSig.ring.length !== ringSize)
|
|
167
|
+
return false;
|
|
168
|
+
// Verify binding message format and timestamp consistency
|
|
169
|
+
const expectedMessage = `signet:identity-bridge:${event.pubkey}:${parsed.timestamp}`;
|
|
170
|
+
if (parsed.ringSig.message !== expectedMessage)
|
|
171
|
+
return false;
|
|
172
|
+
// Verify timestamp in binding message matches event created_at
|
|
173
|
+
if (parsed.timestamp !== event.created_at)
|
|
174
|
+
return false;
|
|
175
|
+
// Freshness check: reject bridges older than maxAgeSeconds (replay resistance)
|
|
176
|
+
const maxAge = opts?.maxAgeSeconds ?? DEFAULT_MAX_AGE_SECONDS;
|
|
177
|
+
if (maxAge > 0) {
|
|
178
|
+
const now = Math.floor(Date.now() / 1000);
|
|
179
|
+
if (now - parsed.timestamp > maxAge)
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
// Verify ring signature
|
|
183
|
+
return ringVerify(parsed.ringSig);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Parse an identity bridge event into a structured form.
|
|
187
|
+
*/
|
|
188
|
+
export function parseIdentityBridge(event) {
|
|
189
|
+
const base = parseAttestation(event);
|
|
190
|
+
if (!base)
|
|
191
|
+
return null;
|
|
192
|
+
if (base.type !== ATTESTATION_TYPES.IDENTITY_BRIDGE)
|
|
193
|
+
return null;
|
|
194
|
+
try {
|
|
195
|
+
const parsed = JSON.parse(event.content);
|
|
196
|
+
if (!parsed || typeof parsed !== 'object' ||
|
|
197
|
+
!parsed.ringSig || typeof parsed.ringSig !== 'object' ||
|
|
198
|
+
!Array.isArray(parsed.ringSig.ring) ||
|
|
199
|
+
typeof parsed.ringSig.message !== 'string' ||
|
|
200
|
+
typeof parsed.ringSig.c0 !== 'string' ||
|
|
201
|
+
!Array.isArray(parsed.ringSig.responses) ||
|
|
202
|
+
typeof parsed.timestamp !== 'number') {
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
// Validate ring elements are strings
|
|
206
|
+
if (!parsed.ringSig.ring.every((r) => typeof r === 'string')) {
|
|
207
|
+
return null;
|
|
208
|
+
}
|
|
209
|
+
const rawMinTier = parseInt(getTagValue(event, 'ring-min-tier') || '1', 10);
|
|
210
|
+
const ringMinTier = (!isNaN(rawMinTier) && rawMinTier >= 1 && rawMinTier <= 4 ? rawMinTier : 1);
|
|
211
|
+
const ringSize = parseInt(getTagValue(event, 'ring-size') || '0', 10);
|
|
212
|
+
if (isNaN(ringSize) || ringSize < 0 || ringSize > 1000)
|
|
213
|
+
return null;
|
|
214
|
+
const algorithm = (getTagValue(event, 'algo') || DEFAULT_CRYPTO_ALGORITHM);
|
|
215
|
+
return {
|
|
216
|
+
anonPubkey: event.pubkey,
|
|
217
|
+
ringMinTier,
|
|
218
|
+
ringSize,
|
|
219
|
+
ring: parsed.ringSig.ring,
|
|
220
|
+
timestamp: parsed.timestamp,
|
|
221
|
+
algorithm,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=identity-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-bridge.js","sourceRoot":"","sources":["../src/identity-bridge.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,6EAA6E;AAC7E,kFAAkF;AAClF,EAAE;AACF,6EAA6E;AAC7E,8DAA8D;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACpI,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGvE,8FAA8F;AAC9F,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,iBAAiB,CAAC,6DAA6D,GAAG,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAClD,IAAI,GAAW,CAAC;IAChB,GAAG,CAAC;QACF,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC,QAAQ,GAAG,IAAI,KAAK,EAAE;IACvB,OAAO,GAAG,GAAG,GAAG,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,eAAyB,EACzB,UAAkB,EAClB,WAAmB,oBAAoB;IAEvC,IAAI,QAAQ,GAAG,oBAAoB,EAAE,CAAC;QACpC,MAAM,IAAI,qBAAqB,CAAC,8BAA8B,oBAAoB,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,6CAA6C;IAC7C,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAC;IAChC,IAAI,UAAU,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,qBAAqB,CAC7B,8CAA8C,UAAU,iBAAiB,UAAU,CAAC,MAAM,EAAE,CAC7F,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAE7C,mDAAmD;IACnD,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAuB;IACzD,OAAO,aAAa,CAAC,eAAe,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,cAAsB,EACtB,cAAsB,EACtB,IAAc,EACd,WAAmB,EACnB,WAAuB,EACvB,IAA8B;IAE9B,IAAI,IAAI,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;QACvC,MAAM,IAAI,qBAAqB,CAAC,2BAA2B,oBAAoB,UAAU,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAEhD,6DAA6D;IAC7D,MAAM,cAAc,GAAG,0BAA0B,UAAU,IAAI,SAAS,EAAE,CAAC;IAE3E,yEAAyE;IACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAE5E,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,OAAO,EAAE;YACP,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB;QACD,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,iBAAiB,CAAC;QACjC,IAAI,EAAE,iBAAiB,CAAC,eAAe;QACvC,UAAU,EAAE,IAAI,EAAE,UAAU;QAC5B,OAAO,EAAE,kEAAkE;QAC3E,IAAI,EAAE;YACJ,CAAC,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YACtC,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC,MAAM,EAAE,wBAAwB,CAAC;SACnC;QACD,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG;QACf,GAAG,QAAQ;QACX,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,SAAS;KACtB,CAAC;IAEF,OAAO,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED,iEAAiE;AACjE,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAE7C;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAiB,EACjB,IAAiC;IAEjC,wBAAwB;IACxB,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,iBAAiB,CAAC,eAAe;QAAE,OAAO,KAAK,CAAC;IAEnF,+BAA+B;IAC/B,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAE9B,gBAAgB;IAChB,IAAI,MAAqD,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAC/B,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;YAC/C,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ;YAC3E,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mBAAmB;IACnB,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IACtE,IAAI,QAAQ,GAAG,oBAAoB;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE1D,0DAA0D;IAC1D,MAAM,eAAe,GAAG,0BAA0B,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;IACrF,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,eAAe;QAAE,OAAO,KAAK,CAAC;IAE7D,+DAA+D;IAC/D,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAExD,+EAA+E;IAC/E,MAAM,MAAM,GAAG,IAAI,EAAE,aAAa,IAAI,uBAAuB,CAAC;IAC9D,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM;YAAE,OAAO,KAAK,CAAC;IACpD,CAAC;IAED,wBAAwB;IACxB,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAiB;IACnD,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAEjE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YACrC,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YACrD,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YACnC,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,QAAQ;YAC1C,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,QAAQ;YACrC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YACxC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAe,CAAC;QAC9G,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,IAAI;YAAE,OAAO,IAAI,CAAC;QAEpE,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,wBAAwB,CAAoB,CAAC;QAE9F,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,WAAW;YACX,QAAQ;YACR,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS;SACV,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { verifyProof } from 'nsec-tree';
|
|
2
|
+
import type { TreeRoot, Persona, Identity, LinkageProof } from 'nsec-tree';
|
|
3
|
+
/** Purpose strings for signet's two required personas. */
|
|
4
|
+
export declare const NATURAL_PERSON_PERSONA = "natural-person";
|
|
5
|
+
export declare const ANONYMOUS_PERSONA = "persona";
|
|
6
|
+
/** A signet identity backed by an nsec-tree derivation tree. */
|
|
7
|
+
export interface SignetIdentity {
|
|
8
|
+
readonly root: TreeRoot;
|
|
9
|
+
readonly naturalPerson: Persona;
|
|
10
|
+
readonly persona: Persona;
|
|
11
|
+
readonly mnemonic?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Create a signet identity from a BIP-39 mnemonic.
|
|
15
|
+
* Derives the tree root via nsec-tree's `fromMnemonic()` (path m/44'/1237'/727'/0'/0'),
|
|
16
|
+
* then derives both required personas.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createSignetIdentity(mnemonic: string, passphrase?: string): SignetIdentity;
|
|
19
|
+
/**
|
|
20
|
+
* Create a signet identity from an existing nsec.
|
|
21
|
+
* Wraps the nsec through nsec-tree's HMAC separation layer,
|
|
22
|
+
* then derives both required personas.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createSignetIdentityFromNsec(nsec: string | Uint8Array): SignetIdentity;
|
|
25
|
+
/**
|
|
26
|
+
* Derive an additional named persona from the tree root.
|
|
27
|
+
* Use for optional personas beyond the two required ones.
|
|
28
|
+
*/
|
|
29
|
+
export declare function deriveAdditionalPersona(root: TreeRoot, name: string, index?: number): Persona;
|
|
30
|
+
/**
|
|
31
|
+
* Derive a sub-identity within a persona (two-level hierarchy).
|
|
32
|
+
* Useful for group signing or isolated sub-keys under a persona.
|
|
33
|
+
*/
|
|
34
|
+
export declare function deriveSubIdentity(persona: Persona, purpose: string, index?: number): Identity;
|
|
35
|
+
/**
|
|
36
|
+
* Create a linkage proof proving the tree root owns a child identity.
|
|
37
|
+
* Blind proofs reveal nothing about derivation; full proofs include purpose and index.
|
|
38
|
+
*/
|
|
39
|
+
export declare function createLinkageProof(root: TreeRoot, child: Identity, type: 'blind' | 'full'): LinkageProof;
|
|
40
|
+
/** Re-export nsec-tree's proof verification. */
|
|
41
|
+
export declare const verifyLinkageProof: typeof verifyProof;
|
|
42
|
+
/**
|
|
43
|
+
* Destroy a signet identity: zeroes the tree root secret and both persona private keys.
|
|
44
|
+
* After calling this, the identity is unusable.
|
|
45
|
+
*/
|
|
46
|
+
export declare function destroyIdentity(identity: SignetIdentity): void;
|
|
47
|
+
//# sourceMappingURL=identity-tree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-tree.d.ts","sourceRoot":"","sources":["../src/identity-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE3G,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAG1E,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,mBAAmB,CAAA;AACtD,eAAO,MAAM,iBAAiB,YAAY,CAAA;AAE1C,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,CAI1F;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,cAAc,CAItF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAKxF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,QAAQ,CAExF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,OAAO,GAAG,MAAM,GACrB,YAAY,CAId;AAED,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,oBAAc,CAAA;AAE7C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAI9D"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { fromMnemonic, fromNsec, zeroise, createBlindProof, createFullProof, verifyProof } from 'nsec-tree';
|
|
2
|
+
import { derivePersona, deriveFromPersona } from 'nsec-tree/persona';
|
|
3
|
+
import { SignetValidationError } from './errors.js';
|
|
4
|
+
/** Purpose strings for signet's two required personas. */
|
|
5
|
+
export const NATURAL_PERSON_PERSONA = 'natural-person';
|
|
6
|
+
export const ANONYMOUS_PERSONA = 'persona';
|
|
7
|
+
function deriveRequiredPersonas(root) {
|
|
8
|
+
const naturalPerson = derivePersona(root, NATURAL_PERSON_PERSONA);
|
|
9
|
+
const persona = derivePersona(root, ANONYMOUS_PERSONA);
|
|
10
|
+
return { naturalPerson, persona };
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create a signet identity from a BIP-39 mnemonic.
|
|
14
|
+
* Derives the tree root via nsec-tree's `fromMnemonic()` (path m/44'/1237'/727'/0'/0'),
|
|
15
|
+
* then derives both required personas.
|
|
16
|
+
*/
|
|
17
|
+
export function createSignetIdentity(mnemonic, passphrase) {
|
|
18
|
+
const root = fromMnemonic(mnemonic, passphrase);
|
|
19
|
+
const { naturalPerson, persona } = deriveRequiredPersonas(root);
|
|
20
|
+
return { root, naturalPerson, persona, mnemonic };
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create a signet identity from an existing nsec.
|
|
24
|
+
* Wraps the nsec through nsec-tree's HMAC separation layer,
|
|
25
|
+
* then derives both required personas.
|
|
26
|
+
*/
|
|
27
|
+
export function createSignetIdentityFromNsec(nsec) {
|
|
28
|
+
const root = fromNsec(nsec);
|
|
29
|
+
const { naturalPerson, persona } = deriveRequiredPersonas(root);
|
|
30
|
+
return { root, naturalPerson, persona };
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Derive an additional named persona from the tree root.
|
|
34
|
+
* Use for optional personas beyond the two required ones.
|
|
35
|
+
*/
|
|
36
|
+
export function deriveAdditionalPersona(root, name, index = 0) {
|
|
37
|
+
if (!name) {
|
|
38
|
+
throw new SignetValidationError('Persona name must not be empty');
|
|
39
|
+
}
|
|
40
|
+
return derivePersona(root, name, index);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Derive a sub-identity within a persona (two-level hierarchy).
|
|
44
|
+
* Useful for group signing or isolated sub-keys under a persona.
|
|
45
|
+
*/
|
|
46
|
+
export function deriveSubIdentity(persona, purpose, index = 0) {
|
|
47
|
+
return deriveFromPersona(persona, purpose, index);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create a linkage proof proving the tree root owns a child identity.
|
|
51
|
+
* Blind proofs reveal nothing about derivation; full proofs include purpose and index.
|
|
52
|
+
*/
|
|
53
|
+
export function createLinkageProof(root, child, type) {
|
|
54
|
+
return type === 'blind'
|
|
55
|
+
? createBlindProof(root, child)
|
|
56
|
+
: createFullProof(root, child);
|
|
57
|
+
}
|
|
58
|
+
/** Re-export nsec-tree's proof verification. */
|
|
59
|
+
export const verifyLinkageProof = verifyProof;
|
|
60
|
+
/**
|
|
61
|
+
* Destroy a signet identity: zeroes the tree root secret and both persona private keys.
|
|
62
|
+
* After calling this, the identity is unusable.
|
|
63
|
+
*/
|
|
64
|
+
export function destroyIdentity(identity) {
|
|
65
|
+
zeroise(identity.naturalPerson.identity);
|
|
66
|
+
zeroise(identity.persona.identity);
|
|
67
|
+
identity.root.destroy();
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=identity-tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-tree.js","sourceRoot":"","sources":["../src/identity-tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC3G,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CAAA;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAA;AAU1C,SAAS,sBAAsB,CAAC,IAAc;IAC5C,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAA;IACjE,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;IACtD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,CAAA;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,UAAmB;IACxE,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC/C,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAC/D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAyB;IACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC3B,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAC/D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAA;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAc,EAAE,IAAY,EAAE,KAAK,GAAG,CAAC;IAC7E,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,qBAAqB,CAAC,gCAAgC,CAAC,CAAA;IACnE,CAAC;IACD,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,OAAe,EAAE,KAAK,GAAG,CAAC;IAC5E,OAAO,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAc,EACd,KAAe,EACf,IAAsB;IAEtB,OAAO,IAAI,KAAK,OAAO;QACrB,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC;QAC/B,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAClC,CAAC;AAED,gDAAgD;AAChD,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAA;AAE7C;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,QAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;AACzB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export type { CryptoAlgorithm, SignetTier, VerificationType, VerificationScope, VerificationMethod, VouchMethod, EnforcementLevel, ChallengeReason, BondAction, RevocationScope, EntityType, EntityMode, UnsignedEvent, NostrEvent, CredentialParams, VouchParams, PolicyParams, PolicyCheckResult, VerifierParams, ChallengeParams, RevocationParams, TrustSignal, TrustScoreBreakdown, MerkleProof, SelectiveDisclosure, ParsedCredential, ParsedVouch, ParsedPolicy, ParsedVerifier, ParsedChallenge, ParsedRevocation, ParsedDelegation, ParsedIdentityBridge, TwoCredentialResult, CredentialChain, GuardianDelegationParams, GuardianDelegationScope, SimpleEntityType, BitcoinAddressType, BondProof, BondStatus, BondVerificationResult, BIP322Verifier, } from './types.js';
|
|
2
|
+
export { ENTITY_DISPLAY_LABELS } from './types.js';
|
|
3
|
+
export { ATTESTATION_KIND, APP_DATA_KIND, ATTESTATION_TYPES, SIGNET_KINDS, SIGNET_LABEL, DEFAULT_VOUCH_THRESHOLD, DEFAULT_VOUCHER_MIN_TIER, DEFAULT_CREDENTIAL_EXPIRY_SECONDS, DEFAULT_REVOCATION_THRESHOLD, VERIFIER_ACTIVATION, TRUST_WEIGHTS, MAX_TRUST_SCORE, SIGNAL_PRIORITY, MIN_BRIDGE_RING_SIZE, ENTITY_TYPES, DELEGATION_CONSTRAINTS, ENTITY_LABELS, DEFAULT_CRYPTO_ALGORITHM, BOND_DOMAIN_SEPARATOR, DEFAULT_BOND_MAX_AGE_SECS, VALID_BOND_ADDRESS_TYPES, } from './constants.js';
|
|
4
|
+
export { generateKeyPair, getPublicKey, signEvent, verifyEvent, getEventId, hash, hashString, } from './crypto.js';
|
|
5
|
+
export { buildCredentialEvent, createSelfDeclaredCredential, createPeerVouchedCredential, createProfessionalCredential, createChildSafetyCredential, verifyCredential, isCredentialExpired, parseCredential, createRingProtectedCredential, createRingProtectedChildCredential, verifyRingProtectedContent, renewCredential, needsRenewal, createTwoCredentialCeremony, supersedeCredential, resolveCredentialChain, isSuperseded, computeNullifier, checkNullifierDuplicate, buildNullifierChainTag, computeNullifierFamily, buildNullifierFamilyTags, checkNullifierFamilyDuplicate, createGuardianDelegation, } from './credentials.js';
|
|
6
|
+
export type { RingProtectedContent, DocumentDescriptor, NullifierFamily } from './credentials.js';
|
|
7
|
+
export { buildVouchEvent, createVouch, parseVouch, countQualifyingVouches, hasEnoughVouches, getVouchers, } from './vouches.js';
|
|
8
|
+
export { buildPolicyEvent, createPolicy, parsePolicy, checkPolicyCompliance, PolicyChecker, } from './policies.js';
|
|
9
|
+
export { buildVerifierEvent, createVerifierCredential, parseVerifier, checkCrossVerification, isVerifierRevoked, } from './verifiers.js';
|
|
10
|
+
export { buildBondMessage, createBondProof, verifyBondProof, isBondStale, bondProofToTags, parseBondProof, checkBondCompliance, } from './bonds.js';
|
|
11
|
+
export type { CreateBondProofParams, VerifyBondProofOptions } from './bonds.js';
|
|
12
|
+
export { buildChallengeEvent, createChallenge, parseChallenge, buildRevocationEvent, createRevocation, parseRevocation, countChallengeConfirmations, hasReachedRevocationThreshold, } from './challenges.js';
|
|
13
|
+
export { computeTrustScore, formatTrustDisplay, verifySignalOrdering, } from './trust-score.js';
|
|
14
|
+
export { MerkleTree, verifyMerkleProof, verifySelectiveDisclosure, } from './merkle.js';
|
|
15
|
+
export { MAX_RING_SIZE, ringSign, ringVerify, signCredentialRing, verifyCredentialRing, } from './ring-signature.js';
|
|
16
|
+
export type { RingSignature } from './ring-signature.js';
|
|
17
|
+
export { MAX_RING_SIZE as LSAG_MAX_RING_SIZE, computeKeyImage, lsagSign, lsagVerify, hasDuplicateKeyImage, } from './lsag.js';
|
|
18
|
+
export type { LsagSignature } from './lsag.js';
|
|
19
|
+
export { createIdentityBridge, verifyIdentityBridge, parseIdentityBridge, selectDecoyRing, computeBridgeWeight, } from './identity-bridge.js';
|
|
20
|
+
export { commit, verifyCommitment, createRangeProof, verifyRangeProof, createAgeRangeProof, verifyAgeRangeProof, serializeRangeProof, deserializeRangeProof, } from './range-proof.js';
|
|
21
|
+
export type { PedersenCommitment, RangeProof } from './range-proof.js';
|
|
22
|
+
export { RelayClient, publishToRelays, fetchFromRelay, } from './relay.js';
|
|
23
|
+
export type { RelayMessage, NostrFilter, SubscriptionCallback, RelayState, RelayOptions, } from './relay.js';
|
|
24
|
+
export { SignetStore } from './store.js';
|
|
25
|
+
export type { StoreQuery } from './store.js';
|
|
26
|
+
export { detectAnomalies, scanForAnomalies, } from './anomaly.js';
|
|
27
|
+
export type { AnomalyType, AnomalyFlag, AnomalyConfig, } from './anomaly.js';
|
|
28
|
+
export { JURISDICTIONS, getJurisdiction, getJurisdictionCodes, getProfessionalBodies, getMutualRecognitionPartners, isProfessionRegulated, findJurisdictionsForProfession, getDigitalConsentAge, getAgeOfMajority, canTransferData, getAllLanguages, getJurisdictionsByLanguage, computeJurisdictionConfidence, getJurisdictionConfidence, rankJurisdictionsByConfidence, } from 'jurisdiction-kit';
|
|
29
|
+
export type { LegalSystem, ProfessionType, ProfessionalBody, DataProtectionLaw, ChildProtectionLaw, Jurisdiction, JurisdictionConfidence, } from 'jurisdiction-kit';
|
|
30
|
+
export { setLanguage, getLanguage, getSupportedLanguages, t, getTranslations, getLanguageName, getLanguageNativeName, formatLocalizedTrustScore, getTierDescription, } from './i18n.js';
|
|
31
|
+
export type { LanguageCode, TranslationStrings } from './i18n.js';
|
|
32
|
+
export { checkCredentialCompliance, checkCrossBorderCompliance, checkChildCompliance, getConsentRequirements, getRetentionGuidance, checkMultiJurisdictionCompliance, getMostRestrictiveRequirements, } from './compliance.js';
|
|
33
|
+
export type { ComplianceSeverity, ComplianceIssue, ComplianceResult, CrossBorderResult, ChildComplianceResult, ConsentRequirement, } from './compliance.js';
|
|
34
|
+
export { validateCredential, validateVouch, validatePolicy, validateVerifier, validateChallenge, validateRevocation, validateEvent, getTagValue, getTagValues, } from './validation.js';
|
|
35
|
+
export type { ValidationResult } from './validation.js';
|
|
36
|
+
export { SignetError, SignetValidationError, SignetCryptoError, } from './errors.js';
|
|
37
|
+
export { wordlist as BIP39_WORDLIST } from '@scure/bip39/wordlists/english.js';
|
|
38
|
+
export { generateMnemonic, mnemonicToEntropy, entropyToMnemonic, validateMnemonic, } from '@scure/bip39';
|
|
39
|
+
export { mnemonicToSeedSync as mnemonicToSeed } from '@scure/bip39';
|
|
40
|
+
export { createSignetIdentity, createSignetIdentityFromNsec, deriveAdditionalPersona, deriveSubIdentity, createLinkageProof, verifyLinkageProof, destroyIdentity, NATURAL_PERSON_PERSONA, ANONYMOUS_PERSONA, } from './identity-tree.js';
|
|
41
|
+
export type { SignetIdentity } from './identity-tree.js';
|
|
42
|
+
export { zeroise } from 'nsec-tree';
|
|
43
|
+
export type { TreeRoot, Identity, Persona, LinkageProof } from 'nsec-tree';
|
|
44
|
+
export { encodeNsec, decodeNsec, encodeNpub, decodeNpub } from 'nsec-tree/encoding';
|
|
45
|
+
export { splitSecret, reconstructSecret, shareToWords, wordsToShare, } from '@forgesworn/shamir-words';
|
|
46
|
+
export type { ShamirShare } from '@forgesworn/shamir-words';
|
|
47
|
+
export { computeSharedSecret, createQRPayload, serializeQRPayload, parseQRPayload, createConnection, ConnectionStore, } from './connections.js';
|
|
48
|
+
export type { ContactInfo, Connection, QRPayload } from './connections.js';
|
|
49
|
+
export { computeBadge, getTrustLevel, meetsMinimumTier, filterEventsForPubkey, buildBadgeFilters, } from './badge.js';
|
|
50
|
+
export type { BadgeInfo, TrustLevel } from './badge.js';
|
|
51
|
+
export { SIGNET_EPOCH_SECONDS, SIGNET_WORD_COUNT, SIGNET_TOLERANCE, MAX_WORD_COUNT, SIGNET_WORDLIST, getEpoch, deriveWords, getSignetWords, verifySignetWords, formatSignetWords, getSignetDisplay, } from './signet-words.js';
|
|
52
|
+
export type { SignetWordsConfig } from './signet-words.js';
|
|
53
|
+
export { fetchInstitutionKeys, generateSessionCode, deriveColdCallWords, initiateColdCallVerification, completeColdCallVerification, type ColdCallSession, } from './cold-call.js';
|
|
54
|
+
export type { InstitutionKeys, InstitutionPubkey } from './types.js';
|
|
55
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|