@cedulon/receipts 0.6.0 → 0.8.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/dist/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
+ import { AMOUNT_RE, hashClaimRefusal, isValidHashText } from "@cedulon/core";
2
+ import { type Signer } from "@cedulon/cose";
3
+ export { pemSigner, type Signer } from "@cedulon/cose";
1
4
  export type ReceiptOutcome = "settled" | "aborted";
2
5
  /** CWT private-use labels (less than -65536) for Spend Receipt claims. */
3
6
  export declare const RECEIPT_CLAIM: {
@@ -14,11 +17,13 @@ export declare const RECEIPT_CLAIM: {
14
17
  readonly prevReceiptHash: -70011;
15
18
  readonly outcome: -70012;
16
19
  };
17
- /** CWT private-use label for a detached payee countersignature payload. */
20
+ /** CWT private-use labels for a detached payee countersignature payload. */
18
21
  export declare const COUNTERSIGN_CLAIM: {
19
22
  readonly receiptCose: -70401;
23
+ /** SHA-256 of the bytes the payee says were delivered, signed with the receipt. */
24
+ readonly deliveredHash: -70402;
20
25
  };
21
- export declare const AMOUNT_RE: RegExp;
26
+ export { AMOUNT_RE, hashClaimRefusal, isValidHashText };
22
27
  export declare const NONCE_MIN_BYTES = 16;
23
28
  export type ReceiptEncoding = "cose" | "json";
24
29
  export type SpendReceiptClaims = {
@@ -55,12 +60,18 @@ export declare function generateReceiptKeys(): {
55
60
  export declare function claimsToCbor(claims: SpendReceiptClaims): Uint8Array;
56
61
  export declare function claimsFromCbor(bytes: Uint8Array): SpendReceiptClaims;
57
62
  export declare function signReceiptJson(claims: SpendReceiptClaims, privateKeyPem: string, publicKeyPem: string): SignedReceipt;
63
+ export declare function signReceiptJson(claims: SpendReceiptClaims, signer: Signer): SignedReceipt;
64
+ /** Why encoding this receipt's claims would refuse, or null when it would not. */
65
+ export declare function receiptEncodeRefusal(signed: SignedReceipt): string | null;
58
66
  export declare function verifyReceiptJson(signed: SignedReceipt, expectedIssuerKeyPem?: string): boolean;
59
67
  export declare function signReceiptCose(claims: SpendReceiptClaims, privateKeyPem: string, publicKeyPem: string): SignedReceipt;
68
+ export declare function signReceiptCose(claims: SpendReceiptClaims, signer: Signer): SignedReceipt;
60
69
  export declare function verifyReceiptCose(signed: SignedReceipt, expectedIssuerKeyPem?: string): boolean;
61
70
  export declare function signReceipt(claims: SpendReceiptClaims, privateKeyPem: string, publicKeyPem: string, encoding?: ReceiptEncoding): SignedReceipt;
71
+ export declare function signReceipt(claims: SpendReceiptClaims, signer: Signer, encoding?: ReceiptEncoding): SignedReceipt;
62
72
  /** Adversary/test helper: signs claims that an issuer MUST reject. */
63
73
  export declare function signReceiptUnchecked(claims: SpendReceiptClaims, privateKeyPem: string, publicKeyPem: string): SignedReceipt;
74
+ export declare function signReceiptUnchecked(claims: SpendReceiptClaims, signer: Signer): SignedReceipt;
64
75
  /**
65
76
  * Verifying against `signed.publicKeyPem` alone proves the receipt is internally
66
77
  * consistent: any key can sign any body, including its own. Pass the issuer key
@@ -69,12 +80,19 @@ export declare function signReceiptUnchecked(claims: SpendReceiptClaims, private
69
80
  * behaviour; an audit that omits it is told so in its report.
70
81
  */
71
82
  export declare function verifyReceipt(signed: SignedReceipt, expectedIssuerKeyPem?: string): boolean;
83
+ /**
84
+ * Whether the signature verifies under this pin, ignoring the carried PEM.
85
+ * Attestation follows this question, not the unsigned `publicKeyPem` field.
86
+ */
87
+ export declare function verifyReceiptUnderPin(signed: SignedReceipt, pinPem: string): boolean;
72
88
  /**
73
89
  * `expectedIssuerKeyPem` is the issuer key the payee holds. Without it this
74
90
  * checks the receipt against the key it travels with, which is not the question
75
91
  * a payee answers by putting their name on it.
76
92
  */
77
- export declare function counterSign(signed: SignedReceipt, payeePrivateKeyPem: string, payeePublicKeyPem: string, expectedIssuerKeyPem?: string): SignedReceipt;
93
+ export declare function counterSign(signed: SignedReceipt, payeePrivateKeyPem: string, payeePublicKeyPem: string, expectedIssuerKeyPem?: string, deliveredHash?: string | Uint8Array): SignedReceipt;
94
+ /** Hex SHA-256 of `-70402` when the countersignature carries it; otherwise null. */
95
+ export declare function countersignDeliveredHashHex(signed: SignedReceipt): string | null;
78
96
  export declare function verifyCounterSignature(signed: SignedReceipt, payeePublicKeyPem?: string): boolean;
79
97
  export declare function receiptHash(signed: SignedReceipt): string;
80
98
  export declare function publicAnchorEncoding(signed: SignedReceipt, mode: PrivacyMode): Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
- import { createHash, generateKeyPairSync, sign, verify } from "node:crypto";
2
- import { canonical } from "@cedulon/core";
3
- import { CTY_COUNTERSIGN, CTY_RECEIPT, asMap, cborMap, decodeCbor, decodeCoseSign1, encodeCbor, mapGet, sameSpkiKey, signCoseSign1, verifyCoseSign1, } from "@cedulon/cose";
1
+ import { createHash, generateKeyPairSync, verify } from "node:crypto";
2
+ import { AMOUNT_RE, canonical, hashClaimRefusal, isValidHashText, jcsEncodeRefusal } from "@cedulon/core";
3
+ import { CTY_COUNTERSIGN, CTY_RECEIPT, asMap, asSigner, cborMap, decodeCbor, decodeCoseSign1, encodeCbor, mapGet, sameSpkiKey, signCoseSign1, verifyCoseSign1, } from "@cedulon/cose";
4
+ export { pemSigner } from "@cedulon/cose";
4
5
  /** CWT private-use labels (less than -65536) for Spend Receipt claims. */
5
6
  export const RECEIPT_CLAIM = {
6
7
  payer: -70001,
@@ -16,11 +17,15 @@ export const RECEIPT_CLAIM = {
16
17
  prevReceiptHash: -70011,
17
18
  outcome: -70012,
18
19
  };
19
- /** CWT private-use label for a detached payee countersignature payload. */
20
+ /** CWT private-use labels for a detached payee countersignature payload. */
20
21
  export const COUNTERSIGN_CLAIM = {
21
22
  receiptCose: -70401,
23
+ /** SHA-256 of the bytes the payee says were delivered, signed with the receipt. */
24
+ deliveredHash: -70402,
22
25
  };
23
- export const AMOUNT_RE = /^(0|[1-9][0-9]*)$/;
26
+ // The grammar lives in @cedulon/core so every boundary checks one spelling
27
+ // of the rule; re-exported here to keep this package's surface unchanged.
28
+ export { AMOUNT_RE, hashClaimRefusal, isValidHashText };
24
29
  export const NONCE_MIN_BYTES = 16;
25
30
  export function sha256Hex(data) {
26
31
  return createHash("sha256").update(data).digest("hex");
@@ -110,12 +115,26 @@ function assertClaimConsistency(claims) {
110
115
  if (!isValidNonce(claims.nonce)) {
111
116
  throw new Error("nonce-too-short");
112
117
  }
118
+ const policy = hashClaimRefusal("policyHash", claims.policyHash);
119
+ if (policy)
120
+ throw new Error(policy);
121
+ const manifest = hashClaimRefusal("manifestHash", claims.manifestHash, true);
122
+ if (manifest)
123
+ throw new Error(manifest);
124
+ const prev = hashClaimRefusal("prevReceiptHash", claims.prevReceiptHash, true);
125
+ if (prev)
126
+ throw new Error(prev);
113
127
  }
114
- export function signReceiptJson(claims, privateKeyPem, publicKeyPem) {
128
+ export function signReceiptJson(claims, key, publicKeyPem) {
129
+ const signer = asSigner(key, publicKeyPem);
115
130
  assertClaimConsistency(claims);
116
131
  const payload = Buffer.from(canonical(claims), "utf8");
117
- const signature = sign(null, payload, privateKeyPem).toString("base64");
118
- return { claims, signature, publicKeyPem, encoding: "json" };
132
+ const signature = Buffer.from(signer.sign(payload)).toString("base64");
133
+ return { claims, signature, publicKeyPem: signer.publicKeyPem, encoding: "json" };
134
+ }
135
+ /** Why encoding this receipt's claims would refuse, or null when it would not. */
136
+ export function receiptEncodeRefusal(signed) {
137
+ return jcsEncodeRefusal(signed.claims);
119
138
  }
120
139
  export function verifyReceiptJson(signed, expectedIssuerKeyPem) {
121
140
  if (expectedIssuerKeyPem !== undefined && !sameSpkiKey(signed.publicKeyPem, expectedIssuerKeyPem)) {
@@ -124,23 +143,27 @@ export function verifyReceiptJson(signed, expectedIssuerKeyPem) {
124
143
  if (signed.claims.noManifest !== (signed.claims.manifestHash === null)) {
125
144
  return false;
126
145
  }
127
- const payload = Buffer.from(canonical(signed.claims), "utf8");
128
146
  try {
147
+ // Same reason the COSE sibling encodes inside its try: a claim set
148
+ // carrying a value RFC 8785 cannot encode is unverifiable, and this
149
+ // function's contract is to say so rather than to throw.
150
+ const payload = Buffer.from(canonical(signed.claims), "utf8");
129
151
  return verify(null, payload, signed.publicKeyPem, Buffer.from(signed.signature, "base64"));
130
152
  }
131
153
  catch {
132
154
  return false;
133
155
  }
134
156
  }
135
- export function signReceiptCose(claims, privateKeyPem, publicKeyPem) {
157
+ export function signReceiptCose(claims, key, publicKeyPem) {
158
+ const signer = asSigner(key, publicKeyPem);
136
159
  assertClaimConsistency(claims);
137
160
  const payload = claimsToCbor(claims);
138
- const cose = signCoseSign1(payload, privateKeyPem, CTY_RECEIPT);
161
+ const cose = signCoseSign1(payload, signer, CTY_RECEIPT);
139
162
  const msg = decodeCoseSign1(cose);
140
163
  return {
141
164
  claims,
142
165
  signature: Buffer.from(msg.signature).toString("base64"),
143
- publicKeyPem,
166
+ publicKeyPem: signer.publicKeyPem,
144
167
  encoding: "cose",
145
168
  coseHex: Buffer.from(cose).toString("hex"),
146
169
  };
@@ -165,23 +188,32 @@ export function verifyReceiptCose(signed, expectedIssuerKeyPem) {
165
188
  return canonical(decoded) === canonical(signed.claims);
166
189
  }
167
190
  catch {
191
+ // Anything unreadable is unverified, which is fail-closed on its own.
192
+ // A caller that wants to say why asks coseDecodeRefusalHex; see the note
193
+ // on that function for why this no longer rethrows.
168
194
  return false;
169
195
  }
170
196
  }
171
- export function signReceipt(claims, privateKeyPem, publicKeyPem, encoding = "cose") {
172
- return encoding === "json"
173
- ? signReceiptJson(claims, privateKeyPem, publicKeyPem)
174
- : signReceiptCose(claims, privateKeyPem, publicKeyPem);
197
+ export function signReceipt(claims, key, publicKeyOrEncoding, encoding = "cose") {
198
+ if (typeof key === "string") {
199
+ return encoding === "json"
200
+ ? signReceiptJson(claims, key, publicKeyOrEncoding)
201
+ : signReceiptCose(claims, key, publicKeyOrEncoding);
202
+ }
203
+ const enc = publicKeyOrEncoding === "json" || publicKeyOrEncoding === "cose"
204
+ ? publicKeyOrEncoding
205
+ : "cose";
206
+ return enc === "json" ? signReceiptJson(claims, key) : signReceiptCose(claims, key);
175
207
  }
176
- /** Adversary/test helper: signs claims that an issuer MUST reject. */
177
- export function signReceiptUnchecked(claims, privateKeyPem, publicKeyPem) {
208
+ export function signReceiptUnchecked(claims, key, publicKeyPem) {
209
+ const signer = asSigner(key, publicKeyPem);
178
210
  const payload = claimsToCbor(claims);
179
- const cose = signCoseSign1(payload, privateKeyPem, CTY_RECEIPT);
211
+ const cose = signCoseSign1(payload, signer, CTY_RECEIPT);
180
212
  const msg = decodeCoseSign1(cose);
181
213
  return {
182
214
  claims,
183
215
  signature: Buffer.from(msg.signature).toString("base64"),
184
- publicKeyPem,
216
+ publicKeyPem: signer.publicKeyPem,
185
217
  encoding: "cose",
186
218
  coseHex: Buffer.from(cose).toString("hex"),
187
219
  };
@@ -198,6 +230,39 @@ export function verifyReceipt(signed, expectedIssuerKeyPem) {
198
230
  ? verifyReceiptJson(signed, expectedIssuerKeyPem)
199
231
  : verifyReceiptCose(signed, expectedIssuerKeyPem);
200
232
  }
233
+ /**
234
+ * Whether the signature verifies under this pin, ignoring the carried PEM.
235
+ * Attestation follows this question, not the unsigned `publicKeyPem` field.
236
+ */
237
+ export function verifyReceiptUnderPin(signed, pinPem) {
238
+ if (signed.claims.noManifest !== (signed.claims.manifestHash === null)) {
239
+ return false;
240
+ }
241
+ if (signed.encoding === "json") {
242
+ try {
243
+ const payload = Buffer.from(canonical(signed.claims), "utf8");
244
+ return verify(null, payload, pinPem, Buffer.from(signed.signature, "base64"));
245
+ }
246
+ catch {
247
+ return false;
248
+ }
249
+ }
250
+ if (!signed.coseHex) {
251
+ return false;
252
+ }
253
+ const bytes = Buffer.from(signed.coseHex, "hex");
254
+ if (!verifyCoseSign1(bytes, pinPem, CTY_RECEIPT)) {
255
+ return false;
256
+ }
257
+ try {
258
+ const msg = decodeCoseSign1(bytes);
259
+ const decoded = claimsFromCbor(msg.payload);
260
+ return canonical(decoded) === canonical(signed.claims);
261
+ }
262
+ catch {
263
+ return false;
264
+ }
265
+ }
201
266
  function issuerCoseBytes(signed) {
202
267
  if (!signed.coseHex) {
203
268
  throw new Error("countersign-requires-cose");
@@ -209,11 +274,28 @@ function issuerCoseBytes(signed) {
209
274
  * checks the receipt against the key it travels with, which is not the question
210
275
  * a payee answers by putting their name on it.
211
276
  */
212
- export function counterSign(signed, payeePrivateKeyPem, payeePublicKeyPem, expectedIssuerKeyPem) {
277
+ export function counterSign(signed, payeePrivateKeyPem, payeePublicKeyPem, expectedIssuerKeyPem, deliveredHash) {
213
278
  if (!verifyReceipt(signed, expectedIssuerKeyPem)) {
214
279
  throw new Error("countersign-unsigned-receipt");
215
280
  }
216
- const payload = encodeCbor(cborMap([[COUNTERSIGN_CLAIM.receiptCose, issuerCoseBytes(signed)]]));
281
+ const entries = [
282
+ [COUNTERSIGN_CLAIM.receiptCose, issuerCoseBytes(signed)],
283
+ ];
284
+ if (deliveredHash !== undefined) {
285
+ const bytes = typeof deliveredHash === "string"
286
+ ? Buffer.from(deliveredHash, "hex")
287
+ : Buffer.from(deliveredHash);
288
+ if (typeof deliveredHash === "string") {
289
+ const refused = hashClaimRefusal("deliveredHash", deliveredHash);
290
+ if (refused)
291
+ throw new Error(refused);
292
+ }
293
+ else if (bytes.length !== 32) {
294
+ throw new Error("malformed-delivered-hash");
295
+ }
296
+ entries.push([COUNTERSIGN_CLAIM.deliveredHash, new Uint8Array(bytes)]);
297
+ }
298
+ const payload = encodeCbor(cborMap(entries));
217
299
  const cose = signCoseSign1(payload, payeePrivateKeyPem, CTY_COUNTERSIGN);
218
300
  return {
219
301
  ...signed,
@@ -221,6 +303,25 @@ export function counterSign(signed, payeePrivateKeyPem, payeePublicKeyPem, expec
221
303
  payeePublicKeyPem,
222
304
  };
223
305
  }
306
+ /** Hex SHA-256 of `-70402` when the countersignature carries it; otherwise null. */
307
+ export function countersignDeliveredHashHex(signed) {
308
+ if (!signed.counterCoseHex) {
309
+ return null;
310
+ }
311
+ try {
312
+ const msg = decodeCoseSign1(Buffer.from(signed.counterCoseHex, "hex"));
313
+ const map = asMap(decodeCbor(msg.payload));
314
+ const raw = mapGet(map, COUNTERSIGN_CLAIM.deliveredHash);
315
+ if (!(raw instanceof Uint8Array)) {
316
+ return null;
317
+ }
318
+ const hex = Buffer.from(raw).toString("hex");
319
+ return isValidHashText(hex) ? hex : null;
320
+ }
321
+ catch {
322
+ return null;
323
+ }
324
+ }
224
325
  export function verifyCounterSignature(signed, payeePublicKeyPem) {
225
326
  if (!signed.counterCoseHex) {
226
327
  return false;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cedulon/receipts",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "Signed spend receipts (COSE_Sign1, Ed25519) for Cedulon.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -41,7 +41,7 @@
41
41
  "access": "public"
42
42
  },
43
43
  "dependencies": {
44
- "@cedulon/core": "^0.6.0",
45
- "@cedulon/cose": "^0.6.0"
44
+ "@cedulon/core": "^0.8.0",
45
+ "@cedulon/cose": "^0.8.0"
46
46
  }
47
47
  }