@agentunion/fastaun-browser 0.4.7 → 0.4.9

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.
Files changed (81) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/_packed_docs/CHANGELOG.md +49 -0
  3. package/_packed_docs/INDEX.md +61 -31
  4. package/_packed_docs/KITE_DOCS_GUIDE.md +18 -13
  5. package/_packed_docs/design/AUNClient/346/213/206/345/210/206/351/207/215/346/236/204/346/211/247/350/241/214/346/226/271/346/241/210.md +859 -0
  6. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +5 -4
  7. package/_packed_docs/sdk/INDEX.md +15 -9
  8. package/_packed_docs/sdk/README.md +3 -2
  9. package/dist/agent-md.d.ts +1 -1
  10. package/dist/agent-md.d.ts.map +1 -1
  11. package/dist/agent-md.js +12 -5
  12. package/dist/agent-md.js.map +1 -1
  13. package/dist/aid-store.d.ts +0 -1
  14. package/dist/aid-store.d.ts.map +1 -1
  15. package/dist/aid-store.js +29 -14
  16. package/dist/aid-store.js.map +1 -1
  17. package/dist/aid.d.ts +1 -0
  18. package/dist/aid.d.ts.map +1 -1
  19. package/dist/aid.js +10 -4
  20. package/dist/aid.js.map +1 -1
  21. package/dist/bundle.js +10005 -8912
  22. package/dist/cert-utils.d.ts +5 -1
  23. package/dist/cert-utils.d.ts.map +1 -1
  24. package/dist/cert-utils.js +52 -8
  25. package/dist/cert-utils.js.map +1 -1
  26. package/dist/client/delivery.d.ts +44 -0
  27. package/dist/client/delivery.d.ts.map +1 -0
  28. package/dist/client/delivery.js +1033 -0
  29. package/dist/client/delivery.js.map +1 -0
  30. package/dist/client/group-state.d.ts +32 -0
  31. package/dist/client/group-state.d.ts.map +1 -0
  32. package/dist/client/group-state.js +901 -0
  33. package/dist/client/group-state.js.map +1 -0
  34. package/dist/client/identity.d.ts +8 -0
  35. package/dist/client/identity.d.ts.map +1 -0
  36. package/dist/client/identity.js +28 -0
  37. package/dist/client/identity.js.map +1 -0
  38. package/dist/client/lifecycle.d.ts +12 -0
  39. package/dist/client/lifecycle.d.ts.map +1 -0
  40. package/dist/client/lifecycle.js +282 -0
  41. package/dist/client/lifecycle.js.map +1 -0
  42. package/dist/client/peers.d.ts +11 -0
  43. package/dist/client/peers.d.ts.map +1 -0
  44. package/dist/client/peers.js +42 -0
  45. package/dist/client/peers.js.map +1 -0
  46. package/dist/client/rpc-pipeline.d.ts +39 -0
  47. package/dist/client/rpc-pipeline.d.ts.map +1 -0
  48. package/dist/client/rpc-pipeline.js +577 -0
  49. package/dist/client/rpc-pipeline.js.map +1 -0
  50. package/dist/client/runtime.d.ts +90 -0
  51. package/dist/client/runtime.d.ts.map +1 -0
  52. package/dist/client/runtime.js +241 -0
  53. package/dist/client/runtime.js.map +1 -0
  54. package/dist/client/v2-e2ee.d.ts +104 -0
  55. package/dist/client/v2-e2ee.d.ts.map +1 -0
  56. package/dist/client/v2-e2ee.js +1579 -0
  57. package/dist/client/v2-e2ee.js.map +1 -0
  58. package/dist/client.d.ts +27 -81
  59. package/dist/client.d.ts.map +1 -1
  60. package/dist/client.js +284 -4015
  61. package/dist/client.js.map +1 -1
  62. package/dist/config.d.ts.map +1 -1
  63. package/dist/config.js +4 -3
  64. package/dist/config.js.map +1 -1
  65. package/dist/discovery.d.ts.map +1 -1
  66. package/dist/discovery.js +69 -10
  67. package/dist/discovery.js.map +1 -1
  68. package/dist/v2/crypto/dh-path.js +2 -2
  69. package/dist/v2/crypto/index.js +7 -7
  70. package/dist/v2/e2ee/decrypt.js +8 -8
  71. package/dist/v2/e2ee/encrypt-group.js +9 -9
  72. package/dist/v2/e2ee/encrypt-p2p.js +9 -9
  73. package/dist/v2/e2ee/index.js +5 -5
  74. package/dist/v2/e2ee/metadata-auth.js +1 -1
  75. package/dist/v2/session/index.js +2 -2
  76. package/dist/v2/session/session.js +1 -1
  77. package/dist/v2/state/commitment.js +1 -1
  78. package/dist/v2/state/index.js +1 -1
  79. package/dist/version.d.ts +1 -1
  80. package/dist/version.js +1 -1
  81. package/package.json +2 -2
package/dist/aid.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as codes from './error-codes.js';
2
- import { buildAgentMdSignatureBlock, certFingerprint, extractAgentMdAid, normalizeAgentMdPayload, parseAgentMdTailSignature, parseCertMetadata, publicKeyDerB64, signBytes, verifySignatureWithCert, } from './cert-utils.js';
2
+ import { buildAgentMdSignatureBlock, certMatchesFingerprint, certFingerprint, extractAgentMdAid, normalizeAgentMdPayload, parseAgentMdTailSignature, parseCertMetadata, publicKeyFingerprint, publicKeyMatchesFingerprint, publicKeyDerB64, signBytes, verifySignatureWithCert, } from './cert-utils.js';
3
3
  import { resultErr, resultOk } from './result.js';
4
4
  export class AID {
5
5
  aid;
@@ -81,7 +81,9 @@ export class AID {
81
81
  try {
82
82
  const payload = normalizeAgentMdPayload(content);
83
83
  const signature = await signBytes(this.privateKeyPem, new TextEncoder().encode(payload));
84
- return resultOk({ signed: payload + buildAgentMdSignatureBlock(this.certFingerprint, Date.now() / 1000, signature) });
84
+ return resultOk({
85
+ signed: payload + buildAgentMdSignatureBlock(this.certFingerprint, Date.now() / 1000, signature, await publicKeyFingerprint(this.certPem)),
86
+ });
85
87
  }
86
88
  catch (exc) {
87
89
  return resultErr(codes.SIGNATURE_OPERATION_ERROR, String(exc), exc);
@@ -97,12 +99,16 @@ export class AID {
97
99
  const payloadAid = extractAgentMdAid(payload);
98
100
  if (payloadAid && payloadAid !== this.aid)
99
101
  return resultOk({ status: 'invalid', payload, aid: payloadAid, reason: 'aid mismatch' });
100
- if (fields.cert_fingerprint.toLowerCase() !== this.certFingerprint.toLowerCase()) {
102
+ if (!(await certMatchesFingerprint(this.certPem, fields.cert_fingerprint))) {
101
103
  return resultOk({ status: 'invalid', payload, aid: this.aid, reason: 'certificate fingerprint mismatch' });
102
104
  }
105
+ const publicKeyFp = String(fields.public_key_fingerprint ?? '').trim();
106
+ if (publicKeyFp && !(await publicKeyMatchesFingerprint(this.certPem, publicKeyFp))) {
107
+ return resultOk({ status: 'invalid', payload, aid: this.aid, reason: 'public key fingerprint mismatch' });
108
+ }
103
109
  const valid = await verifySignatureWithCert(this.certPem, fields.signature, new TextEncoder().encode(payload));
104
110
  return resultOk(valid
105
- ? { status: 'verified', payload, aid: this.aid, cert_fingerprint: fields.cert_fingerprint, timestamp: Number(fields.timestamp) }
111
+ ? { status: 'verified', payload, aid: this.aid, cert_fingerprint: fields.cert_fingerprint, public_key_fingerprint: publicKeyFp, timestamp: Number(fields.timestamp) }
106
112
  : { status: 'invalid', payload, aid: this.aid, cert_fingerprint: fields.cert_fingerprint, timestamp: Number(fields.timestamp), reason: 'signature verification failed' });
107
113
  }
108
114
  catch (exc) {
package/dist/aid.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"aid.js","sourceRoot":"","sources":["../src/aid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAC;AAW/D,MAAM,OAAO,GAAG;IACL,GAAG,CAAS;IACZ,OAAO,CAAS;IAChB,OAAO,CAAS;IAChB,SAAS,CAAS;IAClB,WAAW,CAAS;IACpB,aAAa,CAAO;IACpB,YAAY,CAAO;IACnB,UAAU,CAAS;IACnB,QAAQ,CAAS;IACjB,MAAM,CAAS;IACf,SAAS,CAAU;IACnB,UAAU,CAAgB;IAC1B,KAAK,CAAU;IACxB,wDAAwD;IAC/C,aAAa,CAAS;IACd,UAAU,CAAU;IACpB,gBAAgB,CAAU;IACnC,gBAAgB,GAAG,EAAE,CAAC;IAE9B,YAAoB,MAA2O;QAC7P,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAA2O;QAC7P,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,GAAG,CAAC,gBAAgB,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7D,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAA4B;QACrC,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,CAAC;QAC7H,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACvF,OAAO,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA4B,EAAE,SAAiB;QAC1D,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;QACzF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACvF,OAAO,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,KAAK,CAAC,4BAA4B,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,CAAC;QAC7H,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACzF,OAAO,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,0BAA0B,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QACxH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;QACzF,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,yBAAyB,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YACzF,IAAI,CAAC,MAAM;gBAAE,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;YAChI,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,UAAU,IAAI,UAAU,KAAK,IAAI,CAAC,GAAG;gBAAE,OAAO,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YACpI,IAAI,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;gBACjF,OAAO,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAAC;YAC7G,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/G,OAAO,QAAQ,CAAC,KAAK;gBACnB,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;gBAChI,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC,CAAC;QAC9K,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,KAAK,CAAC,4BAA4B,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"aid.js","sourceRoot":"","sources":["../src/aid.ts"],"names":[],"mappings":"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"}