@atlasauth/pca-bbs 0.1.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Atlas Authorization
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,72 @@
1
+ # @atlasauth/pca-bbs
2
+
3
+ BBS signatures (BLS12-381-SHA-256, following the IRTF CFRG BBS draft) for Proof-Carrying Authority (PCA). A PCA capability is issued as a multi-message BBS credential, then presented with selective disclosure and an unlinkable zero-knowledge proof of possession. An agent can reveal only the attributes a tool needs (for example the scope caveat) while hiding the rest (holder, budget, expiry), and two presentations of the same credential cannot be correlated.
4
+
5
+ There are two layers:
6
+
7
+ - the BBS core: `keyGen`, `createGenerators`, `messagesToScalars`, `sign`, `verify`, `proofGen`, `proofVerify`;
8
+ - the PCA layer: map a capability to an ordered attribute vector (`iss`, `sub`, then `cav:<i>:<type>` per caveat), issue it, present a subset, verify the presentation.
9
+
10
+ ## Install
11
+
12
+ ```sh
13
+ npm i @atlasauth/pca-bbs
14
+ ```
15
+
16
+ Depends on `@atlasauth/pca`, `@noble/curves` and `@noble/hashes` (installed automatically).
17
+
18
+ ## Usage
19
+
20
+ ```ts
21
+ import {
22
+ generateKeyPair, issueCapabilityCredential, presentCredential, verifyCredential, verifyPresentation,
23
+ } from '@atlasauth/pca-bbs';
24
+
25
+ const bytes = (s: string) => new TextEncoder().encode(s);
26
+
27
+ const capability = {
28
+ issuer: 'issuer-public-key',
29
+ holder: 'agent-public-key',
30
+ caveats: [
31
+ { type: 'scope', actions: ['search:read'] },
32
+ { type: 'budget_alloc', limit: 100 },
33
+ ],
34
+ };
35
+
36
+ const { sk, pk } = generateKeyPair();
37
+ const cred = issueCapabilityCredential(capability, { sk, pk });
38
+ verifyCredential(cred); // true: every attribute is signed by the issuer
39
+
40
+ // Reveal only the scope caveat, bound to one action so the proof cannot be replayed elsewhere.
41
+ const pres = presentCredential(cred, {
42
+ disclose: ['cav:0:scope'],
43
+ presentationHeader: bytes('action:search?q=atlas'),
44
+ });
45
+
46
+ verifyPresentation(pres); // true
47
+ verifyPresentation(pres, { pk, presentationHeader: bytes('action:search?q=atlas') }); // pin issuer + context
48
+ ```
49
+
50
+ `presentCredential` throws if a requested attribute name does not exist. Pass a pinned `pk` and your own `presentationHeader` to `verifyPresentation` so the verifier asserts its own expectations rather than trusting the values carried in the presentation.
51
+
52
+ ## Status
53
+
54
+ Part of [Proof-Carrying Authority](https://github.com/Atlas-Authorization/pca). **Experimental and unaudited.** The CFRG draft is not a final standard, and BBS on BLS12-381 is not post-quantum.
55
+
56
+ What is validated (ciphersuite BLS12-381-SHA-256 only):
57
+
58
+ - **Official fixture set** of draft-irtf-cfrg-bbs-signatures, vendored in `test-vectors/` with repository commit and per-file SHA-256: key generation, `hash_to_scalar`, message-to-scalar mapping, generators, all 10 signature cases (valid and invalid) and all 15 proof cases (valid and invalid). Signing reproduces the published signatures byte-for-byte, and proof generation with the published randomness reproduces the published proofs byte-for-byte. The fixtures are byte-identical across draft revisions -06 to -12.
59
+ - **Independent implementation**: the Rust crate `zkryptium` 0.7.1 (draft -12, on `bls12_381_plus`). Keys and signatures it produces are reproduced exactly, its randomized proofs verify here, and proofs and signatures produced here (including no-disclosure and full-disclosure selections) verify there. Tampered proofs and signatures are rejected on both sides. The runner source is in `test-vectors/xcheck-zkryptium`.
60
+ - **Rejection reasons** are asserted: `verifyDetailed` and `proofVerifyDetailed` report why something failed (malformed signature, public key or proof, pairing mismatch, challenge mismatch, bad disclosed indexes).
61
+
62
+ What is not validated:
63
+
64
+ - The SHAKE-256 ciphersuite, pseudonyms and blind signatures are not implemented.
65
+ - The credential layer (`issueCapabilityCredential`, `presentCredential`) is PCA-specific and has no external standard to test against; it is covered by this package's own tests only.
66
+ - Point arithmetic is variable-time; there is no constant-time guarantee and no independent audit.
67
+
68
+ Source and issues: https://github.com/Atlas-Authorization/pca
69
+
70
+ ## License
71
+
72
+ MIT - see LICENSE
package/dist/bbs.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
- * BBS signatures over BLS12-381, faithful to draft-irtf-cfrg-bbs-signatures (the 2023–2024 CFRG
3
- * draft; this implementation follows draft-07's core protocol and octet encodings).
2
+ * BBS signatures over BLS12-381, faithful to draft-irtf-cfrg-bbs-signatures (core protocol and
3
+ * octet encodings; validated against the draft's official BLS12-381-SHA-256 fixtures, which are unchanged
4
+ * across drafts -06 to -12, and against the independent `zkryptium` crate).
4
5
  *
5
6
  * Ciphersuite: **BLS12-381-SHA-256** — `BBS_BLS12381G1_XMD:SHA-256_SSWU_RO_`.
6
7
  * - signatures/generators live in G1 (48-byte compressed points), public keys in G2 (96-byte
@@ -67,6 +68,17 @@ export declare function skFromBytes(bytes: Uint8Array): bigint;
67
68
  * disclosable). Returns `signature_to_octets(A, e)`.
68
69
  */
69
70
  export declare function sign(sk: bigint, pk: Uint8Array, header: Uint8Array, messages: readonly Uint8Array[]): Uint8Array;
71
+ /** Why a signature or proof was rejected (stable, machine-readable). */
72
+ export type RejectReason = 'malformed-signature' | 'malformed-public-key' | 'malformed-proof' | 'disclosed-length-mismatch' | 'invalid-disclosed-indexes' | 'pairing-mismatch' | 'challenge-mismatch';
73
+ /** Result of a verification that says WHY it failed. */
74
+ export type VerifyResult = {
75
+ readonly ok: true;
76
+ } | {
77
+ readonly ok: false;
78
+ readonly reason: RejectReason;
79
+ };
80
+ /** Verify(PK, signature, header, messages) with a rejection reason; fails closed on any malformed input. */
81
+ export declare function verifyDetailed(pk: Uint8Array, signature: Uint8Array, header: Uint8Array, messages: readonly Uint8Array[]): VerifyResult;
70
82
  /** Verify(PK, signature, header, messages): true iff the signature covers exactly these messages. */
71
83
  export declare function verify(pk: Uint8Array, signature: Uint8Array, header: Uint8Array, messages: readonly Uint8Array[]): boolean;
72
84
  /**
@@ -74,12 +86,14 @@ export declare function verify(pk: Uint8Array, signature: Uint8Array, header: Ui
74
86
  * proof-of-knowledge of the signature that selectively discloses the messages at
75
87
  * `disclosed_indexes`. `ph` is the presentation header (binds the proof to a context, e.g. a nonce
76
88
  * or the request it authorizes). The proof is randomized: each call produces different octets.
89
+ * `fixedRandomScalars` (5 + undisclosed count scalars) pins the randomness for test vectors only;
90
+ * never pass it in production, since reusing it across proofs breaks zero-knowledge and unlinkability.
77
91
  */
78
- export declare function proofGen(pk: Uint8Array, signature: Uint8Array, header: Uint8Array, ph: Uint8Array, messages: readonly Uint8Array[], disclosedIndexes: readonly number[]): Uint8Array;
92
+ export declare function proofGen(pk: Uint8Array, signature: Uint8Array, header: Uint8Array, ph: Uint8Array, messages: readonly Uint8Array[], disclosedIndexes: readonly number[], fixedRandomScalars?: readonly bigint[]): Uint8Array;
79
93
  /**
80
- * ProofVerify(PK, proof, header, ph, disclosed_messages, disclosed_indexes): true iff `proof` is a
81
- * valid selective-disclosure proof under `PK` revealing exactly `disclosed_messages` at
82
- * `disclosed_indexes`, bound to `header` and `ph`. `disclosed_messages[k]` must correspond to
83
- * `disclosed_indexes[k]`.
94
+ * ProofVerify(PK, proof, header, ph, disclosed_messages, disclosed_indexes) with a rejection reason.
95
+ * `disclosed_messages[k]` must correspond to `disclosed_indexes[k]`.
84
96
  */
97
+ export declare function proofVerifyDetailed(pk: Uint8Array, proof: Uint8Array, header: Uint8Array, ph: Uint8Array, disclosedMessages: readonly Uint8Array[], disclosedIndexes: readonly number[]): VerifyResult;
98
+ /** ProofVerify(PK, proof, header, ph, disclosed_messages, disclosed_indexes): true iff the proof is valid. */
85
99
  export declare function proofVerify(pk: Uint8Array, proof: Uint8Array, header: Uint8Array, ph: Uint8Array, disclosedMessages: readonly Uint8Array[], disclosedIndexes: readonly number[]): boolean;
package/dist/bbs.js CHANGED
@@ -11,12 +11,15 @@ exports.generateKeyPair = generateKeyPair;
11
11
  exports.skToBytes = skToBytes;
12
12
  exports.skFromBytes = skFromBytes;
13
13
  exports.sign = sign;
14
+ exports.verifyDetailed = verifyDetailed;
14
15
  exports.verify = verify;
15
16
  exports.proofGen = proofGen;
17
+ exports.proofVerifyDetailed = proofVerifyDetailed;
16
18
  exports.proofVerify = proofVerify;
17
19
  /**
18
- * BBS signatures over BLS12-381, faithful to draft-irtf-cfrg-bbs-signatures (the 2023–2024 CFRG
19
- * draft; this implementation follows draft-07's core protocol and octet encodings).
20
+ * BBS signatures over BLS12-381, faithful to draft-irtf-cfrg-bbs-signatures (core protocol and
21
+ * octet encodings; validated against the draft's official BLS12-381-SHA-256 fixtures, which are unchanged
22
+ * across drafts -06 to -12, and against the independent `zkryptium` crate).
20
23
  *
21
24
  * Ciphersuite: **BLS12-381-SHA-256** — `BBS_BLS12381G1_XMD:SHA-256_SSWU_RO_`.
22
25
  * - signatures/generators live in G1 (48-byte compressed points), public keys in G2 (96-byte
@@ -65,7 +68,8 @@ const MAP_DST = `${exports.API_ID}MAP_MSG_TO_SCALAR_AS_HASH_`;
65
68
  const SEED_DST = `${exports.API_ID}SIG_GENERATOR_SEED_`;
66
69
  const GEN_DST = `${exports.API_ID}SIG_GENERATOR_DST_`;
67
70
  const GEN_SEED = `${exports.API_ID}MESSAGE_GENERATOR_SEED`;
68
- const KEYGEN_DST = `${exports.CIPHERSUITE_ID}KEYGEN_DST_`;
71
+ /** KeyGen DST = api_id || "KEYGEN_DST_" (draft §3.4.1); the official key-pair fixture pins this exact string. */
72
+ const KEYGEN_DST = `${exports.API_ID}KEYGEN_DST_`;
69
73
  /**
70
74
  * P1: the fixed G1 generator of the BLS12-381-SHA-256 ciphersuite (draft §7.2.2), as published.
71
75
  * Signing commits the message vector against P1, Q_1 and the per-message generators H_i.
@@ -247,19 +251,24 @@ function sign(sk, pk, header, messages) {
247
251
  const A = g1mul(B, Fr.inv(Fr.add(sk, e))); // A = B · 1/(SK + e)
248
252
  return signatureToOctets(A, e);
249
253
  }
250
- /** Verify(PK, signature, header, messages): true iff the signature covers exactly these messages. */
251
- function verify(pk, signature, header, messages) {
254
+ /** Verify(PK, signature, header, messages) with a rejection reason; fails closed on any malformed input. */
255
+ function verifyDetailed(pk, signature, header, messages) {
252
256
  let parsed;
253
- let W;
254
257
  try {
255
258
  parsed = octetsToSignature(signature);
259
+ }
260
+ catch {
261
+ return { ok: false, reason: 'malformed-signature' };
262
+ }
263
+ let W;
264
+ try {
256
265
  W = G2.fromHex(pk);
257
266
  }
258
267
  catch {
259
- return false;
268
+ return { ok: false, reason: 'malformed-public-key' };
260
269
  }
261
270
  if (W.equals(G2.ZERO))
262
- return false;
271
+ return { ok: false, reason: 'malformed-public-key' };
263
272
  const msgScalars = messagesToScalars(messages);
264
273
  const L = msgScalars.length;
265
274
  const gens = createGenerators(L + 1);
@@ -270,7 +279,11 @@ function verify(pk, signature, header, messages) {
270
279
  // Pairing check: e(A, W + BP2·e) == e(B, BP2) ⇔ e(A, (SK+e)·BP2) == e(B, BP2).
271
280
  const lhs = bls12_381_1.bls12_381.pairing(parsed.A, W.add(g2mul(BP2, parsed.e)));
272
281
  const rhs = bls12_381_1.bls12_381.pairing(B, BP2);
273
- return Fp12.eql(lhs, rhs);
282
+ return Fp12.eql(lhs, rhs) ? { ok: true } : { ok: false, reason: 'pairing-mismatch' };
283
+ }
284
+ /** Verify(PK, signature, header, messages): true iff the signature covers exactly these messages. */
285
+ function verify(pk, signature, header, messages) {
286
+ return verifyDetailed(pk, signature, header, messages).ok;
274
287
  }
275
288
  // ---- random scalars (draft §4.2.1) ------------------------------------------------------------
276
289
  function calculateRandomScalars(count) {
@@ -355,8 +368,10 @@ function undisclosedAscending(disclosed, L) {
355
368
  * proof-of-knowledge of the signature that selectively discloses the messages at
356
369
  * `disclosed_indexes`. `ph` is the presentation header (binds the proof to a context, e.g. a nonce
357
370
  * or the request it authorizes). The proof is randomized: each call produces different octets.
371
+ * `fixedRandomScalars` (5 + undisclosed count scalars) pins the randomness for test vectors only;
372
+ * never pass it in production, since reusing it across proofs breaks zero-knowledge and unlinkability.
358
373
  */
359
- function proofGen(pk, signature, header, ph, messages, disclosedIndexes) {
374
+ function proofGen(pk, signature, header, ph, messages, disclosedIndexes, fixedRandomScalars) {
360
375
  const { A, e } = octetsToSignature(signature);
361
376
  const msgScalars = messagesToScalars(messages);
362
377
  const L = msgScalars.length;
@@ -370,7 +385,9 @@ function proofGen(pk, signature, header, ph, messages, disclosedIndexes) {
370
385
  const H = gens.slice(1);
371
386
  const domain = calculateDomain(pk, Q1, H, header);
372
387
  const B = computeB(Q1, H, domain, msgScalars);
373
- const rs = calculateRandomScalars(5 + U);
388
+ const rs = fixedRandomScalars === undefined ? calculateRandomScalars(5 + U) : [...fixedRandomScalars];
389
+ if (rs.length !== 5 + U)
390
+ throw new RangeError(`bbs: expected ${5 + U} random scalars, got ${rs.length}`);
374
391
  const r1 = at(rs, 0);
375
392
  const r2 = at(rs, 1);
376
393
  const eTilde = at(rs, 2);
@@ -397,25 +414,28 @@ function proofGen(pk, signature, header, ph, messages, disclosedIndexes) {
397
414
  }
398
415
  // ---- ProofVerify (draft §3.5.4, core §3.6.4) --------------------------------------------------
399
416
  /**
400
- * ProofVerify(PK, proof, header, ph, disclosed_messages, disclosed_indexes): true iff `proof` is a
401
- * valid selective-disclosure proof under `PK` revealing exactly `disclosed_messages` at
402
- * `disclosed_indexes`, bound to `header` and `ph`. `disclosed_messages[k]` must correspond to
403
- * `disclosed_indexes[k]`.
417
+ * ProofVerify(PK, proof, header, ph, disclosed_messages, disclosed_indexes) with a rejection reason.
418
+ * `disclosed_messages[k]` must correspond to `disclosed_indexes[k]`.
404
419
  */
405
- function proofVerify(pk, proof, header, ph, disclosedMessages, disclosedIndexes) {
420
+ function proofVerifyDetailed(pk, proof, header, ph, disclosedMessages, disclosedIndexes) {
406
421
  let p;
407
- let W;
408
422
  try {
409
423
  p = octetsToProof(proof);
424
+ }
425
+ catch {
426
+ return { ok: false, reason: 'malformed-proof' };
427
+ }
428
+ let W;
429
+ try {
410
430
  W = G2.fromHex(pk);
411
431
  }
412
432
  catch {
413
- return false;
433
+ return { ok: false, reason: 'malformed-public-key' };
414
434
  }
415
435
  if (W.equals(G2.ZERO))
416
- return false;
436
+ return { ok: false, reason: 'malformed-public-key' };
417
437
  if (disclosedMessages.length !== disclosedIndexes.length)
418
- return false;
438
+ return { ok: false, reason: 'disclosed-length-mismatch' };
419
439
  const U = p.mHat.length;
420
440
  const R_count = disclosedIndexes.length;
421
441
  const L = R_count + U;
@@ -426,7 +446,7 @@ function proofVerify(pk, proof, header, ph, disclosedMessages, disclosedIndexes)
426
446
  disclosed = disclosedIndexes.map((idx, k) => ({ idx, msg: at(disclosedScalars, k) }));
427
447
  }
428
448
  catch {
429
- return false;
449
+ return { ok: false, reason: 'invalid-disclosed-indexes' };
430
450
  }
431
451
  disclosed.sort((a, b) => a.idx - b.idx);
432
452
  const disclosedSet = new Set(disclosed.map((d) => d.idx));
@@ -447,8 +467,14 @@ function proofVerify(pk, proof, header, ph, disclosedMessages, disclosedIndexes)
447
467
  T2 = T2.add(g1mul(at(H, at(undisclosed, k)), at(p.mHat, k)));
448
468
  const cv = calculateChallenge(p.Abar, p.Bbar, p.D, T1, T2, disclosed.map((d) => d.idx), disclosed.map((d) => d.msg), domain, ph);
449
469
  if (cv !== p.c)
450
- return false;
470
+ return { ok: false, reason: 'challenge-mismatch' };
451
471
  // Final pairing: e(Ā, W) == e(B̄, BP2).
452
- return Fp12.eql(bls12_381_1.bls12_381.pairing(p.Abar, W), bls12_381_1.bls12_381.pairing(p.Bbar, BP2));
472
+ return Fp12.eql(bls12_381_1.bls12_381.pairing(p.Abar, W), bls12_381_1.bls12_381.pairing(p.Bbar, BP2))
473
+ ? { ok: true }
474
+ : { ok: false, reason: 'pairing-mismatch' };
475
+ }
476
+ /** ProofVerify(PK, proof, header, ph, disclosed_messages, disclosed_indexes): true iff the proof is valid. */
477
+ function proofVerify(pk, proof, header, ph, disclosedMessages, disclosedIndexes) {
478
+ return proofVerifyDetailed(pk, proof, header, ph, disclosedMessages, disclosedIndexes).ok;
453
479
  }
454
480
  //# sourceMappingURL=bbs.js.map
package/dist/bbs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bbs.js","sourceRoot":"","sources":["../src/bbs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bbs.js","sourceRoot":"","sources":["../src/bbs.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,27 @@
1
1
  {
2
2
  "name": "@atlasauth/pca-bbs",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "BBS signatures (CFRG draft) for PCA: issue a capability as a multi-message BBS credential, then present it with selective disclosure + unlinkable zero-knowledge proof-of-possession, so an agent reveals only the attributes a tool needs and uses can't be correlated.",
5
+ "keywords": [
6
+ "bbs signatures",
7
+ "selective disclosure",
8
+ "zero-knowledge",
9
+ "credentials",
10
+ "agent authorization",
11
+ "proof-carrying authority",
12
+ "pca",
13
+ "ai agents"
14
+ ],
15
+ "license": "MIT",
16
+ "homepage": "https://github.com/Atlas-Authorization/pca#readme",
17
+ "bugs": {
18
+ "url": "https://github.com/Atlas-Authorization/pca/issues"
19
+ },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/Atlas-Authorization/pca.git",
23
+ "directory": "packages/pca-bbs"
24
+ },
5
25
  "main": "./dist/index.js",
6
26
  "types": "./dist/index.d.ts",
7
27
  "exports": {
@@ -14,7 +34,7 @@
14
34
  "dependencies": {
15
35
  "@noble/curves": "^1.6.0",
16
36
  "@noble/hashes": "^1.5.0",
17
- "@atlasauth/pca": "0.1.0"
37
+ "@atlasauth/pca": "0.3.0"
18
38
  },
19
39
  "devDependencies": {
20
40
  "typescript": "^5.6.3",
@@ -22,8 +42,12 @@
22
42
  },
23
43
  "files": [
24
44
  "dist",
25
- "README.md"
45
+ "README.md",
46
+ "LICENSE"
26
47
  ],
48
+ "engines": {
49
+ "node": ">=20"
50
+ },
27
51
  "publishConfig": {
28
52
  "access": "public"
29
53
  },