nostr-contact-card 0.2.0 → 0.3.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 +27 -12
- package/dist/card.d.ts +46 -13
- package/dist/card.d.ts.map +1 -1
- package/dist/card.js +123 -46
- package/dist/card.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/vectors/contact-card.json +596 -793
package/README.md
CHANGED
|
@@ -7,8 +7,12 @@
|
|
|
7
7
|
|
|
8
8
|
**One QR or link that makes a stranger a contact, names their box, and starts a bond.**
|
|
9
9
|
|
|
10
|
-
A contact card is a
|
|
11
|
-
|
|
10
|
+
A contact card is a signed Nostr event of the reserved kind 30641, never
|
|
11
|
+
posted to a relay, carried after `#` in a link or as the whole of a QR
|
|
12
|
+
code. The event's pubkey is the person's key, its created_at is when the
|
|
13
|
+
card was issued, its expiration tag is when it lapses, and its content is
|
|
14
|
+
the card, so the signature is the one every signer already makes: an
|
|
15
|
+
extension, a bunker or a key held locally all make the same card. It holds a person's key and name, their public
|
|
12
16
|
relays, their box (a Link address card, carried opaquely, that the person's
|
|
13
17
|
signature endorses), a rendezvous key and a fresh ephemeral for deriving
|
|
14
18
|
private rendezvous material, an optional attestation pointer, and a bond
|
|
@@ -24,9 +28,11 @@ pins from the first read (the Link card inside a contact card lasts seven
|
|
|
24
28
|
days, the card itself thirty, so a client keeps the node id it read).
|
|
25
29
|
|
|
26
30
|
```ts
|
|
27
|
-
import { buildCard, cardLink, readCard, refreshBox } from 'nostr-contact-card'
|
|
31
|
+
import { buildCard, buildCardWith, cardLink, readCard, refreshBox } from 'nostr-contact-card'
|
|
28
32
|
|
|
29
33
|
const card = buildCard({ identityPrivateKey, rz, ephemeralPrivateKey, name: 'Ada', relays, boxes: [box], bond })
|
|
34
|
+
// or, through a signer that holds the key (NIP-07, NIP-46):
|
|
35
|
+
const viaSigner = await buildCardWith(pubkey, (unsigned) => signer.signEvent(unsigned), { rz, ephemeralPrivateKey, name: 'Ada', relays, boxes: [box] })
|
|
30
36
|
const link = cardLink('https://your.app/join', card) // the server never sees the fragment
|
|
31
37
|
|
|
32
38
|
const r = readCard(scannedText, now())
|
|
@@ -37,11 +43,13 @@ const fresh = refreshBox(pinnedNodeId, freshLinkCardBytes, now(), highestSerialS
|
|
|
37
43
|
```
|
|
38
44
|
|
|
39
45
|
Vectors in `vectors/contact-card.json` are the draft's known-answer file:
|
|
40
|
-
cards failing at each step,
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
thirty-two cards failing at each step, wrong kind and version, extra tag,
|
|
47
|
+
extra keys on the event and inside the signed content, tampered fields
|
|
48
|
+
and times, a foreign key, format characters, surrogates, byte-order
|
|
49
|
+
marks, empty fields and expiry windows, and six refresh cases including a
|
|
50
|
+
small-order node id and a nonce point carrying torsion. A second
|
|
51
|
+
implementation, written from the draft alone, must agree on every one;
|
|
52
|
+
the vectors carry the expected `ok` and step, and a verifier that
|
|
45
53
|
disagrees on either is wrong.
|
|
46
54
|
|
|
47
55
|
## What a card carries
|
|
@@ -88,10 +96,17 @@ ceremony.
|
|
|
88
96
|
views. A serial above 2^53 is refused under rule 3, before the signature.
|
|
89
97
|
- `now` must be a finite number of seconds and `highestSerial` an integer
|
|
90
98
|
or absent. Anything else fails closed; it never switches a check off.
|
|
91
|
-
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
99
|
+
- The signature is the event's, over its NIP-01 id, and the content is
|
|
100
|
+
signed byte for byte as carried. A key the draft does not name never
|
|
101
|
+
reaches the caller, whether it sits on the event outside the signature
|
|
102
|
+
or inside the signed content. The event carries exactly a `d` tag of
|
|
103
|
+
`card` and an `expiration` tag; a third tag is refused before the
|
|
104
|
+
signature is looked at. `buildCardWith` refuses a signer that returns
|
|
105
|
+
anything but the event it was asked to sign.
|
|
106
|
+
- Hex case in the id and signature is normalised and base64url padding
|
|
107
|
+
tolerated, so one card has several wire forms. Anything that caches or
|
|
108
|
+
deduplicates on the encoded string must key on the card's fields, not
|
|
109
|
+
its bytes.
|
|
95
110
|
- The size cap applies to the card, not the link it rides on. A contact
|
|
96
111
|
card's `issued` may be up to 300 seconds ahead of `now`, and `expires`
|
|
97
112
|
must be after `issued`.
|
package/dist/card.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type LinkCard } from './link-card.js';
|
|
2
|
-
|
|
2
|
+
/** The reserved addressable kind a card rides in. Never published to a relay. */
|
|
3
|
+
export declare const CARD_KIND = 30641;
|
|
3
4
|
export declare const MAX_CARD_BYTES: number;
|
|
4
5
|
export declare const MAX_AGE_SECONDS: number;
|
|
5
6
|
export declare const MAX_RELAYS = 8;
|
|
@@ -39,9 +40,40 @@ export interface UnsignedCard {
|
|
|
39
40
|
attest?: string;
|
|
40
41
|
bond?: BondHandshake;
|
|
41
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* The card as it travels: a signed Nostr event of `CARD_KIND` whose
|
|
45
|
+
* `pubkey` is `p`, `created_at` is `issued`, `expiration` tag is `expires`
|
|
46
|
+
* and `content` is the card. The signature is the one every signer makes.
|
|
47
|
+
*/
|
|
48
|
+
export interface CardEvent {
|
|
49
|
+
kind: number;
|
|
50
|
+
pubkey: string;
|
|
51
|
+
created_at: number;
|
|
52
|
+
tags: string[][];
|
|
53
|
+
content: string;
|
|
54
|
+
id: string;
|
|
55
|
+
sig: string;
|
|
56
|
+
}
|
|
57
|
+
/** The card as read: the named fields, the event's id and signature, and the event itself, for carrying on. */
|
|
42
58
|
export interface Card extends UnsignedCard {
|
|
59
|
+
id: string;
|
|
43
60
|
sig: string;
|
|
61
|
+
event: CardEvent;
|
|
44
62
|
}
|
|
63
|
+
/** What a signer signs: the event without its id and signature. */
|
|
64
|
+
export interface UnsignedCardEvent {
|
|
65
|
+
kind: number;
|
|
66
|
+
pubkey: string;
|
|
67
|
+
created_at: number;
|
|
68
|
+
tags: string[][];
|
|
69
|
+
content: string;
|
|
70
|
+
}
|
|
71
|
+
/** The NIP-01 id: sha256 over the serialised array of the six fields. */
|
|
72
|
+
export declare function eventId(ev: UnsignedCardEvent): string;
|
|
73
|
+
/** §1: the content of a card event, from the fields the draft names, in a fixed order. */
|
|
74
|
+
export declare function cardContent(c: Omit<UnsignedCard, 'p' | 'issued' | 'expires'>): string;
|
|
75
|
+
/** The unsigned event for a card, ready for a signer. */
|
|
76
|
+
export declare function cardEvent(c: UnsignedCard): UnsignedCardEvent;
|
|
45
77
|
/**
|
|
46
78
|
* A name, display name or persona label a person will see: 1 to 100 code
|
|
47
79
|
* points, at least one visible one, no control, surrogate, unassigned or
|
|
@@ -60,16 +92,8 @@ export declare function isGoodName(s: unknown): s is string;
|
|
|
60
92
|
export declare function cleanBond(p: unknown): BondHandshake;
|
|
61
93
|
/** The canonical bytes of a bond handshake: fixed key order, no whitespace, absent keys omitted. */
|
|
62
94
|
export declare function handshakeBytes(p: BondHandshake): Uint8Array;
|
|
63
|
-
/**
|
|
64
|
-
* §2 of the draft: the digest the card's signature covers. Fields are
|
|
65
|
-
* colon-joined; every field that could carry a separator is constrained by
|
|
66
|
-
* `readCard` step 2 (relays no comma, box cards base64url, carriers a
|
|
67
|
-
* short token alphabet and never an empty list, attest no colon, and no
|
|
68
|
-
* empty name or attest, which would hash the same as absence) so no two
|
|
69
|
-
* well-formed cards share a digest.
|
|
70
|
-
*/
|
|
71
|
-
export declare function cardDigest(c: UnsignedCard): Uint8Array;
|
|
72
95
|
export interface BuildOptions {
|
|
96
|
+
/** The identity's secret key, for a client that holds one. Otherwise use `buildCardWith` and a signer. */
|
|
73
97
|
identityPrivateKey: Uint8Array;
|
|
74
98
|
/** The rendezvous public key, a child of the root, x-only hex. */
|
|
75
99
|
rz: string;
|
|
@@ -84,11 +108,20 @@ export interface BuildOptions {
|
|
|
84
108
|
ttlSeconds?: number;
|
|
85
109
|
now?: () => number;
|
|
86
110
|
}
|
|
87
|
-
/**
|
|
111
|
+
/** A signer as NIP-07 and NIP-46 expose one: given the unsigned event, returns it signed. */
|
|
112
|
+
export type SignEvent = (unsigned: UnsignedCardEvent) => Promise<CardEvent> | CardEvent;
|
|
113
|
+
/** Build and sign a card with a secret key held here. Throws when it would not fit or would not verify. */
|
|
88
114
|
export declare function buildCard(o: BuildOptions): Card;
|
|
89
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Build a card through a signer that holds the key: a NIP-07 extension, a
|
|
117
|
+
* NIP-46 bunker, anything that signs an event. `p` is the signer's pubkey.
|
|
118
|
+
* The signed event is checked to be the one asked for before it is read.
|
|
119
|
+
*/
|
|
120
|
+
export declare function buildCardWith(p: string, signEvent: SignEvent, o: Omit<BuildOptions, 'identityPrivateKey'>): Promise<Card>;
|
|
121
|
+
/** The bytes a card travels as: the event's JSON, base64url without padding. */
|
|
122
|
+
export declare function encodeCard(card: Card | CardEvent): string;
|
|
90
123
|
/** A link a person can send: the card rides after `#`, so no server sees it. */
|
|
91
|
-
export declare function cardLink(base: string, card: Card): string;
|
|
124
|
+
export declare function cardLink(base: string, card: Card | CardEvent): string;
|
|
92
125
|
export interface ReadOk {
|
|
93
126
|
ok: true;
|
|
94
127
|
/** Only the fields the draft names, each checked; nothing else from the wire survives. */
|
package/dist/card.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../src/card.ts"],"names":[],"mappings":"AAIA,OAAO,EAA8B,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE1E,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../src/card.ts"],"names":[],"mappings":"AAIA,OAAO,EAA8B,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE1E,iFAAiF;AACjF,eAAO,MAAM,SAAS,QAAQ,CAAA;AAC9B,eAAO,MAAM,cAAc,QAAY,CAAA;AACvC,eAAO,MAAM,eAAe,QAAiB,CAAA;AAC7C,eAAO,MAAM,UAAU,IAAI,CAAA;AAC3B,eAAO,MAAM,SAAS,IAAI,CAAA;AAC1B,mEAAmE;AACnE,eAAO,MAAM,QAAQ,MAAM,CAAA;AAC3B,eAAO,MAAM,YAAY,KAAK,CAAA;AAE9B,MAAM,WAAW,aAAa;IAC5B,CAAC,CAAC,EAAE,CAAC,CAAA;IACL,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAChD;AAED,MAAM,WAAW,GAAG;IAClB,qCAAqC;IACrC,CAAC,EAAE,MAAM,CAAA;IACT,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAA;IACb,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,CAAC,CAAA;IACJ,CAAC,EAAE,MAAM,CAAA;IACT,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,GAAG,EAAE,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,aAAa,CAAA;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,+GAA+G;AAC/G,MAAM,WAAW,IAAK,SAAQ,YAAY;IACxC,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;CACjB;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,yEAAyE;AACzE,wBAAgB,OAAO,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM,CAErD;AAED,0FAA0F;AAC1F,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,MAAM,CASrF;AAED,yDAAyD;AACzD,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,iBAAiB,CAE5D;AAqBD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAkBlD;AAID;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,aAAa,CAqBnD;AAED,oGAAoG;AACpG,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,GAAG,UAAU,CAO3D;AAED,MAAM,WAAW,YAAY;IAC3B,0GAA0G;IAC1G,kBAAkB,EAAE,UAAU,CAAA;IAC9B,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAA;IACV,gFAAgF;IAChF,mBAAmB,EAAE,UAAU,CAAA;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;IAC/B,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED,6FAA6F;AAC7F,MAAM,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,iBAAiB,KAAK,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAA;AA8BvF,2GAA2G;AAC3G,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI,CAO/C;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAW/H;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,CAGzD;AAED,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,CAErE;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,IAAI,CAAA;IACR,0FAA0F;IAC1F,IAAI,EAAE,IAAI,CAAA;IACV,iFAAiF;IACjF,KAAK,EAAE;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,EAAE,CAAA;CACtC;AACD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAExF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAyFjE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAOtL"}
|
package/dist/card.js
CHANGED
|
@@ -3,7 +3,8 @@ import { base64urlnopad } from '@scure/base';
|
|
|
3
3
|
import { sha256 } from '@noble/hashes/sha2.js';
|
|
4
4
|
import { bytesToHex, hexToBytes, utf8ToBytes } from '@noble/hashes/utils.js';
|
|
5
5
|
import { verifyLinkCard, isRelayUrl } from './link-card.js';
|
|
6
|
-
|
|
6
|
+
/** The reserved addressable kind a card rides in. Never published to a relay. */
|
|
7
|
+
export const CARD_KIND = 30641;
|
|
7
8
|
export const MAX_CARD_BYTES = 16 * 1024;
|
|
8
9
|
export const MAX_AGE_SECONDS = 30 * 24 * 3600;
|
|
9
10
|
export const MAX_RELAYS = 8;
|
|
@@ -11,6 +12,28 @@ export const MAX_BOXES = 4;
|
|
|
11
12
|
/** Longest name, display name or persona label, in code points. */
|
|
12
13
|
export const MAX_NAME = 100;
|
|
13
14
|
export const MAX_PERSONAS = 16;
|
|
15
|
+
/** The NIP-01 id: sha256 over the serialised array of the six fields. */
|
|
16
|
+
export function eventId(ev) {
|
|
17
|
+
return sha256hex(utf8ToBytes(JSON.stringify([0, ev.pubkey, ev.created_at, ev.kind, ev.tags, ev.content])));
|
|
18
|
+
}
|
|
19
|
+
/** §1: the content of a card event, from the fields the draft names, in a fixed order. */
|
|
20
|
+
export function cardContent(c) {
|
|
21
|
+
const o = { v: 1, rz: c.rz };
|
|
22
|
+
if (c.name !== undefined)
|
|
23
|
+
o.name = c.name;
|
|
24
|
+
o.relays = c.relays;
|
|
25
|
+
o.boxes = c.boxes;
|
|
26
|
+
o.eph = c.eph;
|
|
27
|
+
if (c.attest !== undefined)
|
|
28
|
+
o.attest = c.attest;
|
|
29
|
+
if (c.bond !== undefined)
|
|
30
|
+
o.bond = c.bond;
|
|
31
|
+
return JSON.stringify(o);
|
|
32
|
+
}
|
|
33
|
+
/** The unsigned event for a card, ready for a signer. */
|
|
34
|
+
export function cardEvent(c) {
|
|
35
|
+
return { kind: CARD_KIND, pubkey: c.p, created_at: c.issued, tags: [['d', 'card'], ['expiration', String(c.expires)]], content: cardContent(c) };
|
|
36
|
+
}
|
|
14
37
|
const HEX64 = /^[0-9a-f]{64}$/, HEX128 = /^[0-9a-f]{128}$/, HEX32 = /^[0-9a-f]{32}$/;
|
|
15
38
|
const B64URL = /^[A-Za-z0-9_-]+$/;
|
|
16
39
|
const CARRIER = /^[A-Za-z0-9._-]{1,32}$/;
|
|
@@ -112,30 +135,14 @@ export function handshakeBytes(p) {
|
|
|
112
135
|
o.personas = c.personas;
|
|
113
136
|
return utf8ToBytes(JSON.stringify(o));
|
|
114
137
|
}
|
|
115
|
-
|
|
116
|
-
* §2 of the draft: the digest the card's signature covers. Fields are
|
|
117
|
-
* colon-joined; every field that could carry a separator is constrained by
|
|
118
|
-
* `readCard` step 2 (relays no comma, box cards base64url, carriers a
|
|
119
|
-
* short token alphabet and never an empty list, attest no colon, and no
|
|
120
|
-
* empty name or attest, which would hash the same as absence) so no two
|
|
121
|
-
* well-formed cards share a digest.
|
|
122
|
-
*/
|
|
123
|
-
export function cardDigest(c) {
|
|
124
|
-
const box = (b) => `${b.p}/${b.claim}/${b.card}/${(b.carriers ?? []).join('+')}`;
|
|
125
|
-
const s = [CARD_DOMAIN, c.p, c.rz, String(c.issued), String(c.expires), c.eph,
|
|
126
|
-
c.relays.join(','), c.boxes.map(box).join(','), c.attest ?? '',
|
|
127
|
-
c.bond ? sha256hex(handshakeBytes(c.bond)) : '', sha256hex(utf8ToBytes(c.name ?? ''))].join(':');
|
|
128
|
-
return sha256(utf8ToBytes(s));
|
|
129
|
-
}
|
|
130
|
-
/** Build and sign a card. Throws when it would not fit or would not verify. */
|
|
131
|
-
export function buildCard(o) {
|
|
138
|
+
function unsignedFor(p, o) {
|
|
132
139
|
const now = (o.now ?? (() => Math.floor(Date.now() / 1000)))();
|
|
133
140
|
const ttl = o.ttlSeconds ?? MAX_AGE_SECONDS;
|
|
134
141
|
if (ttl <= 0 || ttl > MAX_AGE_SECONDS)
|
|
135
142
|
throw new Error('ttl must be within 30 days');
|
|
136
143
|
const unsigned = {
|
|
137
144
|
v: 1,
|
|
138
|
-
p
|
|
145
|
+
p,
|
|
139
146
|
rz: o.rz,
|
|
140
147
|
...(o.name !== undefined ? { name: o.name } : {}),
|
|
141
148
|
issued: now,
|
|
@@ -146,17 +153,50 @@ export function buildCard(o) {
|
|
|
146
153
|
...(o.attest !== undefined ? { attest: o.attest } : {}),
|
|
147
154
|
...(o.bond !== undefined ? { bond: cleanBond({ v: 1, ...o.bond }) } : {}),
|
|
148
155
|
};
|
|
149
|
-
|
|
150
|
-
|
|
156
|
+
return { unsigned, now };
|
|
157
|
+
}
|
|
158
|
+
function finish(event, now) {
|
|
159
|
+
const encoded = encodeCard(event);
|
|
151
160
|
if (encoded.length > MAX_CARD_BYTES)
|
|
152
161
|
throw new Error('card exceeds 16 KiB; drop a box');
|
|
153
162
|
const r = readCard(encoded, now);
|
|
154
163
|
if (!r.ok)
|
|
155
164
|
throw new Error(`built a card that does not read: step ${r.step} ${r.reason}`);
|
|
156
|
-
return card;
|
|
165
|
+
return r.card;
|
|
157
166
|
}
|
|
167
|
+
/** Build and sign a card with a secret key held here. Throws when it would not fit or would not verify. */
|
|
168
|
+
export function buildCard(o) {
|
|
169
|
+
const p = bytesToHex(schnorr.getPublicKey(o.identityPrivateKey));
|
|
170
|
+
const { unsigned, now } = unsignedFor(p, o);
|
|
171
|
+
const ev = cardEvent(unsigned);
|
|
172
|
+
const id = eventId(ev);
|
|
173
|
+
const event = { ...ev, id, sig: bytesToHex(schnorr.sign(hexToBytes(id), o.identityPrivateKey)) };
|
|
174
|
+
return finish(event, now);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Build a card through a signer that holds the key: a NIP-07 extension, a
|
|
178
|
+
* NIP-46 bunker, anything that signs an event. `p` is the signer's pubkey.
|
|
179
|
+
* The signed event is checked to be the one asked for before it is read.
|
|
180
|
+
*/
|
|
181
|
+
export async function buildCardWith(p, signEvent, o) {
|
|
182
|
+
const pub = String(p).toLowerCase();
|
|
183
|
+
if (!HEX64.test(pub))
|
|
184
|
+
throw new Error('p must be a 32-byte x-only public key as hex');
|
|
185
|
+
const { unsigned, now } = unsignedFor(pub, o);
|
|
186
|
+
const ev = cardEvent(unsigned);
|
|
187
|
+
const signed = await signEvent(ev);
|
|
188
|
+
if (!signed || typeof signed !== 'object')
|
|
189
|
+
throw new Error('signer returned nothing');
|
|
190
|
+
for (const k of ['kind', 'pubkey', 'created_at', 'tags', 'content']) {
|
|
191
|
+
if (JSON.stringify(signed[k]) !== JSON.stringify(ev[k]))
|
|
192
|
+
throw new Error(`signer changed the event's ${k}`);
|
|
193
|
+
}
|
|
194
|
+
return finish({ kind: signed.kind, pubkey: signed.pubkey, created_at: signed.created_at, tags: signed.tags, content: signed.content, id: signed.id, sig: signed.sig }, now);
|
|
195
|
+
}
|
|
196
|
+
/** The bytes a card travels as: the event's JSON, base64url without padding. */
|
|
158
197
|
export function encodeCard(card) {
|
|
159
|
-
|
|
198
|
+
const event = 'event' in card ? card.event : card;
|
|
199
|
+
return b64url.encode(utf8ToBytes(JSON.stringify({ kind: event.kind, pubkey: event.pubkey, created_at: event.created_at, tags: event.tags, content: event.content, id: event.id, sig: event.sig })));
|
|
160
200
|
}
|
|
161
201
|
/** A link a person can send: the card rides after `#`, so no server sees it. */
|
|
162
202
|
export function cardLink(base, card) {
|
|
@@ -176,29 +216,56 @@ export function readCard(encoded, now) {
|
|
|
176
216
|
return { ok: false, step: 1, reason: 'size' };
|
|
177
217
|
if (!Number.isFinite(now))
|
|
178
218
|
return { ok: false, step: 3, reason: 'clock' };
|
|
179
|
-
let
|
|
219
|
+
let ev;
|
|
180
220
|
// Strict UTF-8: a byte sequence that is not UTF-8 is not a card, not a card with U+FFFD in it.
|
|
181
221
|
try {
|
|
182
|
-
|
|
222
|
+
ev = JSON.parse(utf8Strict.decode(b64url.decode(body)));
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
return { ok: false, step: 1, reason: 'decode' };
|
|
226
|
+
}
|
|
227
|
+
if (!ev || typeof ev !== 'object' || Array.isArray(ev) || ev.kind !== CARD_KIND || typeof ev.content !== 'string')
|
|
228
|
+
return { ok: false, step: 1, reason: 'version' };
|
|
229
|
+
let c;
|
|
230
|
+
try {
|
|
231
|
+
c = JSON.parse(ev.content);
|
|
183
232
|
}
|
|
184
233
|
catch {
|
|
185
234
|
return { ok: false, step: 1, reason: 'decode' };
|
|
186
235
|
}
|
|
187
236
|
if (!c || typeof c !== 'object' || Array.isArray(c) || c.v !== 1)
|
|
188
237
|
return { ok: false, step: 1, reason: 'version' };
|
|
189
|
-
|
|
190
|
-
|
|
238
|
+
// Step 2: the event's own shape, then the card's fields.
|
|
239
|
+
if (typeof ev.pubkey !== 'string')
|
|
240
|
+
return { ok: false, step: 2, reason: 'p' };
|
|
241
|
+
const p = ev.pubkey.toLowerCase();
|
|
242
|
+
if (!HEX64.test(p))
|
|
243
|
+
return { ok: false, step: 2, reason: 'p' };
|
|
244
|
+
if (typeof ev.id !== 'string')
|
|
245
|
+
return { ok: false, step: 2, reason: 'id' };
|
|
246
|
+
const id = ev.id.toLowerCase();
|
|
247
|
+
if (!HEX64.test(id))
|
|
248
|
+
return { ok: false, step: 2, reason: 'id' };
|
|
249
|
+
if (typeof ev.sig !== 'string')
|
|
250
|
+
return { ok: false, step: 2, reason: 'sig' };
|
|
251
|
+
const sig = ev.sig.toLowerCase();
|
|
252
|
+
if (!HEX128.test(sig))
|
|
253
|
+
return { ok: false, step: 2, reason: 'sig' };
|
|
254
|
+
// Exactly a `d` of `card` and one `expiration`, nothing else: a tag is inside the signature, and a third could carry what a card may not.
|
|
255
|
+
if (!Array.isArray(ev.tags) || ev.tags.length !== 2 || !ev.tags.every((t) => Array.isArray(t) && t.length === 2 && t.every((x) => typeof x === 'string')))
|
|
256
|
+
return { ok: false, step: 2, reason: 'tags' };
|
|
257
|
+
const tags = ev.tags;
|
|
258
|
+
const dTag = tags.find((t) => t[0] === 'd'), expTag = tags.find((t) => t[0] === 'expiration');
|
|
259
|
+
if (!dTag || !expTag || dTag[1] !== 'card')
|
|
260
|
+
return { ok: false, step: 2, reason: 'tags' };
|
|
261
|
+
const hex = { rz: '', eph: '' };
|
|
262
|
+
for (const f of ['rz', 'eph']) {
|
|
191
263
|
if (typeof c[f] !== 'string')
|
|
192
264
|
return { ok: false, step: 2, reason: f };
|
|
193
265
|
hex[f] = c[f].toLowerCase();
|
|
194
266
|
if (!HEX64.test(hex[f]))
|
|
195
267
|
return { ok: false, step: 2, reason: f };
|
|
196
268
|
}
|
|
197
|
-
if (typeof c.sig !== 'string')
|
|
198
|
-
return { ok: false, step: 2, reason: 'sig' };
|
|
199
|
-
const sig = c.sig.toLowerCase();
|
|
200
|
-
if (!HEX128.test(sig))
|
|
201
|
-
return { ok: false, step: 2, reason: 'sig' };
|
|
202
269
|
if (c.name !== undefined && !goodText(c.name))
|
|
203
270
|
return { ok: false, step: 2, reason: 'name' };
|
|
204
271
|
if (!Array.isArray(c.relays) || c.relays.length > MAX_RELAYS || c.relays.some((r) => !isRelayUrl(r)))
|
|
@@ -209,9 +276,9 @@ export function readCard(encoded, now) {
|
|
|
209
276
|
for (const b of c.boxes) {
|
|
210
277
|
if (!b || typeof b !== 'object' || Array.isArray(b))
|
|
211
278
|
return { ok: false, step: 2, reason: 'box' };
|
|
212
|
-
const
|
|
279
|
+
const bp = typeof b.p === 'string' ? b.p.toLowerCase() : '';
|
|
213
280
|
const claim = typeof b.claim === 'string' ? b.claim.toLowerCase() : '';
|
|
214
|
-
if (!HEX64.test(
|
|
281
|
+
if (!HEX64.test(bp))
|
|
215
282
|
return { ok: false, step: 2, reason: 'box p' };
|
|
216
283
|
if (!HEX64.test(claim))
|
|
217
284
|
return { ok: false, step: 2, reason: 'box claim' };
|
|
@@ -219,7 +286,7 @@ export function readCard(encoded, now) {
|
|
|
219
286
|
return { ok: false, step: 2, reason: 'box card' };
|
|
220
287
|
if (b.carriers !== undefined && (!Array.isArray(b.carriers) || b.carriers.length === 0 || b.carriers.length > 8 || b.carriers.some((x) => typeof x !== 'string' || !CARRIER.test(x))))
|
|
221
288
|
return { ok: false, step: 2, reason: 'box carriers' };
|
|
222
|
-
boxesClean.push({ p, claim, card: b.card, ...(b.carriers !== undefined ? { carriers: [...b.carriers] } : {}) });
|
|
289
|
+
boxesClean.push({ p: bp, claim, card: b.card, ...(b.carriers !== undefined ? { carriers: [...b.carriers] } : {}) });
|
|
223
290
|
}
|
|
224
291
|
if (c.attest !== undefined && (typeof c.attest !== 'string' || c.attest.length === 0 || c.attest.includes(':') || UNPRINTABLE.test(c.attest) || INVISIBLE.test(c.attest) || /\p{Z}/u.test(c.attest) || c.attest.length > 512))
|
|
225
292
|
return { ok: false, step: 2, reason: 'attest' };
|
|
@@ -232,30 +299,40 @@ export function readCard(encoded, now) {
|
|
|
232
299
|
return { ok: false, step: 2, reason: 'bond' };
|
|
233
300
|
}
|
|
234
301
|
}
|
|
235
|
-
|
|
302
|
+
// Step 3: issued is the event's created_at, expires the expiration tag's value.
|
|
303
|
+
const issued = ev.created_at;
|
|
304
|
+
if (!Number.isSafeInteger(issued) || !/^(0|[1-9][0-9]{0,15})$/.test(expTag[1]))
|
|
236
305
|
return { ok: false, step: 3, reason: 'times' };
|
|
237
|
-
|
|
306
|
+
const expires = Number(expTag[1]);
|
|
307
|
+
if (!Number.isSafeInteger(expires))
|
|
308
|
+
return { ok: false, step: 3, reason: 'times' };
|
|
309
|
+
if (expires <= now)
|
|
238
310
|
return { ok: false, step: 3, reason: 'expired' };
|
|
239
|
-
if (
|
|
311
|
+
if (expires <= issued || expires - issued > MAX_AGE_SECONDS)
|
|
240
312
|
return { ok: false, step: 3, reason: 'expiry window' };
|
|
241
|
-
if (
|
|
313
|
+
if (issued > now + 300)
|
|
242
314
|
return { ok: false, step: 3, reason: 'issued in the future' };
|
|
243
|
-
|
|
315
|
+
// Step 4: the id over the six fields as carried, and the signature under p.
|
|
316
|
+
// The id and signature are returned lower-cased; the pubkey is inside the hashed serialisation, so a pubkey not already lower-case fails the id check.
|
|
317
|
+
const event = { kind: ev.kind, pubkey: ev.pubkey, created_at: issued, tags, content: ev.content, id, sig };
|
|
318
|
+
if (eventId(event) !== id || !schnorr.verify(hexToBytes(sig), hexToBytes(id), hexToBytes(p)))
|
|
319
|
+
return { ok: false, step: 4, reason: 'signature' };
|
|
320
|
+
const card = {
|
|
244
321
|
v: 1,
|
|
245
|
-
p
|
|
322
|
+
p,
|
|
246
323
|
rz: hex.rz,
|
|
247
324
|
...(c.name !== undefined ? { name: c.name } : {}),
|
|
248
|
-
issued
|
|
249
|
-
expires
|
|
325
|
+
issued,
|
|
326
|
+
expires,
|
|
250
327
|
relays: [...c.relays],
|
|
251
328
|
boxes: boxesClean,
|
|
252
329
|
eph: hex.eph,
|
|
253
330
|
...(c.attest !== undefined ? { attest: c.attest } : {}),
|
|
254
331
|
...(bond ? { bond } : {}),
|
|
332
|
+
id,
|
|
333
|
+
sig,
|
|
334
|
+
event,
|
|
255
335
|
};
|
|
256
|
-
if (!schnorr.verify(hexToBytes(sig), cardDigest(unsigned), hexToBytes(unsigned.p)))
|
|
257
|
-
return { ok: false, step: 4, reason: 'signature' };
|
|
258
|
-
const card = { ...unsigned, sig };
|
|
259
336
|
const boxes = [];
|
|
260
337
|
for (const b of card.boxes) {
|
|
261
338
|
let bytes;
|
package/dist/card.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","sourceRoot":"","sources":["../src/card.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"card.js","sourceRoot":"","sources":["../src/card.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type { BondHandshake, Box, UnsignedCard, Card, BuildOptions, ReadOk, ReadResult } from './card.js';
|
|
1
|
+
export { CARD_KIND, MAX_CARD_BYTES, MAX_AGE_SECONDS, MAX_RELAYS, MAX_BOXES, MAX_NAME, MAX_PERSONAS, isGoodName, cleanBond, handshakeBytes, eventId, cardContent, cardEvent, buildCard, buildCardWith, encodeCard, cardLink, readCard, refreshBox } from './card.js';
|
|
2
|
+
export type { BondHandshake, Box, UnsignedCard, UnsignedCardEvent, CardEvent, Card, BuildOptions, SignEvent, ReadOk, ReadResult } from './card.js';
|
|
3
3
|
export { verifyLinkCard, verifyStrict, isRelayUrl, buildLinkCard, LINK_CARD_MAX, LINK_CARD_MIN, LINK_CARD_MAX_AGE } from './link-card.js';
|
|
4
4
|
export type { LinkCard, LinkHint, LinkVerdict } from './link-card.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACnQ,YAAY,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAClJ,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACzI,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { CARD_KIND, MAX_CARD_BYTES, MAX_AGE_SECONDS, MAX_RELAYS, MAX_BOXES, MAX_NAME, MAX_PERSONAS, isGoodName, cleanBond, handshakeBytes, eventId, cardContent, cardEvent, buildCard, buildCardWith, encodeCard, cardLink, readCard, refreshBox } from './card.js';
|
|
2
2
|
export { verifyLinkCard, verifyStrict, isRelayUrl, buildLinkCard, LINK_CARD_MAX, LINK_CARD_MIN, LINK_CARD_MAX_AGE } from './link-card.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEnQ,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nostr-contact-card",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "One QR or link that makes a stranger a contact, names their box, and starts a bond. Build, sign, read and refresh contact cards; verify the Link address card inside.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|