keri 0.0.0-dev.a3c1af3 → 0.0.0-dev.e85e1d1

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 (140) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +3 -0
  3. package/dist/cesr/__main__.d.ts +10 -0
  4. package/dist/cesr/__main__.js +11 -0
  5. package/dist/cesr/__main__.js.map +1 -0
  6. package/dist/cesr/array-utils.d.ts +3 -0
  7. package/dist/cesr/array-utils.js +29 -0
  8. package/dist/cesr/array-utils.js.map +1 -0
  9. package/dist/cesr/attachments-reader.d.ts +10 -0
  10. package/dist/cesr/attachments-reader.js +273 -0
  11. package/dist/cesr/attachments-reader.js.map +1 -0
  12. package/dist/cesr/attachments.d.ts +68 -0
  13. package/dist/cesr/attachments.js +116 -0
  14. package/dist/cesr/attachments.js.map +1 -0
  15. package/dist/cesr/codec.d.ts +26 -0
  16. package/dist/cesr/codec.js +26 -0
  17. package/dist/cesr/codec.js.map +1 -0
  18. package/dist/cesr/codes.d.ts +1208 -0
  19. package/dist/cesr/codes.js +309 -0
  20. package/dist/cesr/codes.js.map +1 -0
  21. package/dist/cesr/counter.d.ts +117 -0
  22. package/dist/cesr/counter.js +93 -0
  23. package/dist/cesr/counter.js.map +1 -0
  24. package/dist/cesr/frame.d.ts +36 -0
  25. package/dist/cesr/frame.js +97 -0
  26. package/dist/cesr/frame.js.map +1 -0
  27. package/dist/cesr/genus.d.ts +21 -0
  28. package/dist/cesr/genus.js +66 -0
  29. package/dist/cesr/genus.js.map +1 -0
  30. package/dist/cesr/groups/generic-map.d.ts +11 -0
  31. package/dist/cesr/groups/generic-map.js +59 -0
  32. package/dist/cesr/groups/generic-map.js.map +1 -0
  33. package/dist/cesr/indexer.d.ts +70 -0
  34. package/dist/cesr/indexer.js +177 -0
  35. package/dist/cesr/indexer.js.map +1 -0
  36. package/dist/cesr/matter.d.ts +163 -0
  37. package/dist/cesr/matter.js +311 -0
  38. package/dist/cesr/matter.js.map +1 -0
  39. package/dist/cesr/message.d.ts +17 -0
  40. package/dist/cesr/message.js +81 -0
  41. package/dist/cesr/message.js.map +1 -0
  42. package/dist/cesr/parse.d.ts +37 -0
  43. package/dist/cesr/parse.js +137 -0
  44. package/dist/cesr/parse.js.map +1 -0
  45. package/dist/cesr/shifting.d.ts +7 -0
  46. package/dist/cesr/shifting.js +10 -0
  47. package/dist/cesr/shifting.js.map +1 -0
  48. package/dist/cesr/version-string.d.ts +35 -0
  49. package/dist/cesr/version-string.js +147 -0
  50. package/dist/cesr/version-string.js.map +1 -0
  51. package/dist/cli/cli.d.ts +5 -0
  52. package/dist/cli/cli.js +73 -0
  53. package/dist/cli/cli.js.map +1 -0
  54. package/dist/cli/input.d.ts +1 -0
  55. package/dist/cli/input.js +22 -0
  56. package/dist/cli/input.js.map +1 -0
  57. package/dist/cli/node-cli.d.ts +2 -0
  58. package/dist/cli/node-cli.js +19 -0
  59. package/dist/cli/node-cli.js.map +1 -0
  60. package/dist/controller/controller.d.ts +6 -4
  61. package/dist/controller/controller.js +8 -4
  62. package/dist/controller/controller.js.map +1 -1
  63. package/dist/core/credential-event.d.ts +1 -1
  64. package/dist/core/credential-event.js +1 -1
  65. package/dist/core/credential-event.js.map +1 -1
  66. package/dist/core/credential.d.ts +1 -1
  67. package/dist/core/credential.js +1 -1
  68. package/dist/core/credential.js.map +1 -1
  69. package/dist/core/digest.js +1 -1
  70. package/dist/core/digest.js.map +1 -1
  71. package/dist/core/endpoint-discovery.d.ts +1 -1
  72. package/dist/core/events.js +1 -1
  73. package/dist/core/events.js.map +1 -1
  74. package/dist/core/kawa.d.ts +2 -2
  75. package/dist/core/kawa.js +39 -30
  76. package/dist/core/kawa.js.map +1 -1
  77. package/dist/core/key-event-log.d.ts +1 -1
  78. package/dist/core/key-event-log.js +1 -1
  79. package/dist/core/key-event-log.js.map +1 -1
  80. package/dist/core/key-event.d.ts +1 -1
  81. package/dist/core/key-event.js +1 -1
  82. package/dist/core/key-event.js.map +1 -1
  83. package/dist/core/keys.js +1 -1
  84. package/dist/core/keys.js.map +1 -1
  85. package/dist/core/mailbox-client.d.ts +7 -1
  86. package/dist/core/mailbox-client.js +4 -2
  87. package/dist/core/mailbox-client.js.map +1 -1
  88. package/dist/core/main.d.ts +13 -8
  89. package/dist/core/main.js +1 -1
  90. package/dist/core/main.js.map +1 -1
  91. package/dist/core/receipt-event.d.ts +1 -1
  92. package/dist/core/receipt-event.js +1 -1
  93. package/dist/core/receipt-event.js.map +1 -1
  94. package/dist/core/registry-event.d.ts +1 -1
  95. package/dist/core/registry-event.js +1 -1
  96. package/dist/core/registry-event.js.map +1 -1
  97. package/dist/core/routed-event.d.ts +1 -1
  98. package/dist/core/routed-event.js +1 -1
  99. package/dist/core/routed-event.js.map +1 -1
  100. package/dist/core/said.js +1 -1
  101. package/dist/core/said.js.map +1 -1
  102. package/dist/core/sign.js +1 -1
  103. package/dist/core/sign.js.map +1 -1
  104. package/dist/core/verify.d.ts +1 -0
  105. package/dist/core/verify.js +1 -1
  106. package/dist/core/verify.js.map +1 -1
  107. package/dist/encoding/base64.d.ts +4 -0
  108. package/dist/encoding/base64.js +82 -0
  109. package/dist/encoding/base64.js.map +1 -0
  110. package/dist/encoding/utf8.d.ts +2 -0
  111. package/dist/encoding/utf8.js +9 -0
  112. package/dist/encoding/utf8.js.map +1 -0
  113. package/dist/main.d.ts +1 -0
  114. package/dist/main.js +1 -0
  115. package/dist/main.js.map +1 -1
  116. package/dist/witness/app.d.ts +9 -0
  117. package/dist/witness/app.js +91 -0
  118. package/dist/witness/app.js.map +1 -0
  119. package/dist/witness/env.d.ts +1 -0
  120. package/dist/witness/env.js +8 -0
  121. package/dist/witness/env.js.map +1 -0
  122. package/dist/witness/event-storage.d.ts +8 -0
  123. package/dist/witness/event-storage.js +2 -0
  124. package/dist/witness/event-storage.js.map +1 -0
  125. package/dist/witness/local.d.ts +1 -0
  126. package/dist/witness/local.js +48 -0
  127. package/dist/witness/local.js.map +1 -0
  128. package/dist/witness/main.d.ts +6 -0
  129. package/dist/witness/main.js +4 -0
  130. package/dist/witness/main.js.map +1 -0
  131. package/dist/witness/parser.d.ts +3 -0
  132. package/dist/witness/parser.js +7 -0
  133. package/dist/witness/parser.js.map +1 -0
  134. package/dist/witness/seed.d.ts +1 -0
  135. package/dist/witness/seed.js +5 -0
  136. package/dist/witness/seed.js.map +1 -0
  137. package/dist/witness/witness.d.ts +16 -0
  138. package/dist/witness/witness.js +59 -0
  139. package/dist/witness/witness.js.map +1 -0
  140. package/package.json +24 -16
@@ -0,0 +1,97 @@
1
+ import { decodeBase64Int, decodeBase64Url, encodeBase64Int, encodeBase64Url } from "../encoding/base64.js";
2
+ import { decodeUtf8, encodeUtf8 } from "../encoding/utf8.js";
3
+ import { prepad, toArray } from "./array-utils.js";
4
+ import { lshift } from "./shifting.js";
5
+ /**
6
+ * Resolves the quadlet/triplet count of a frame
7
+ */
8
+ export function resolveQuadletCount(frame) {
9
+ if (typeof frame.size.fs !== "undefined" && frame.size.fs > 0) {
10
+ return frame.size.fs / 4;
11
+ }
12
+ const raw = frame.raw ?? new Uint8Array(0);
13
+ const ls = frame.size.ls ?? 0;
14
+ const ss = frame.size.ss ?? 0;
15
+ const ps = (3 - ((raw.byteLength + ls) % 3)) % 3;
16
+ const fs = raw.byteLength + ps + ls;
17
+ const cs = frame.size.hs + ss;
18
+ return cs / 4 + fs / 3;
19
+ }
20
+ export function encodeText(frame) {
21
+ if (frame.code.length !== frame.size.hs) {
22
+ throw new Error(`Frame code ${frame.code} length ${frame.code.length} does not match expected size ${frame.size.hs}`);
23
+ }
24
+ const ls = frame.size.ls ?? 0;
25
+ const raw = frame.raw ?? new Uint8Array(0);
26
+ const padSize = (3 - ((raw.byteLength + ls) % 3)) % 3;
27
+ const padded = prepad(raw, padSize + ls);
28
+ const soft = frame.size.ss ? encodeBase64Int(frame.soft ?? padded.byteLength / 3, frame.size.ss) : "";
29
+ const result = `${frame.code}${soft}${encodeBase64Url(padded).slice(padSize)}`;
30
+ if (frame.size.fs !== undefined && frame.size.fs > 0 && result.length < frame.size.fs) {
31
+ throw new Error(`Encoded size ${result.length} does not match expected size ${frame.size.fs}`);
32
+ }
33
+ return result;
34
+ }
35
+ export function encodeBinary(frame) {
36
+ const raw = frame.raw ?? new Uint8Array(0);
37
+ // TODO: xs
38
+ const ss = frame.size.ss ?? 0;
39
+ const cs = frame.size.hs + ss;
40
+ const ls = frame.size.ls ?? 0;
41
+ const n = Math.ceil((cs * 3) / 4);
42
+ const soft = ss ? encodeBase64Int(frame.soft ?? (ls + raw.length) / 3, ss) : "";
43
+ const padding = 2 * (cs % 4);
44
+ const bcode = toArray(lshift(decodeBase64Int(frame.code + soft), padding), n);
45
+ const result = new Uint8Array(bcode.length + ls + raw.length);
46
+ result.set(bcode, 0);
47
+ result.set(raw, bcode.length + ls);
48
+ return result;
49
+ }
50
+ export function peekText(input, entry) {
51
+ if (typeof input === "string") {
52
+ input = encodeUtf8(input);
53
+ }
54
+ if (input.length < 4) {
55
+ return { n: 0 };
56
+ }
57
+ const ss = entry.ss ?? 0;
58
+ const cs = entry.hs + ss;
59
+ if (input.length < cs) {
60
+ return { n: 0 };
61
+ }
62
+ const ls = entry.ls ?? 0;
63
+ const ps = (entry.hs + ss) % 4;
64
+ const hard = decodeUtf8(input.slice(0, entry.hs));
65
+ const soft0 = decodeBase64Int(decodeUtf8(input.slice(entry.hs, entry.hs + ss)));
66
+ const fs = entry.fs !== undefined && entry.fs > 0 ? entry.fs : cs + soft0 * 4;
67
+ if (input.length < fs - ls) {
68
+ return { n: 0 };
69
+ }
70
+ const padding = "A".repeat(ps);
71
+ const text = decodeUtf8(input.slice(0, fs));
72
+ const rawtext = padding + text.slice(cs);
73
+ const raw = decodeBase64Url(rawtext).slice(ps + ls);
74
+ return {
75
+ frame: {
76
+ code: hard,
77
+ soft: soft0,
78
+ raw,
79
+ size: {
80
+ hs: entry.hs,
81
+ fs,
82
+ ss,
83
+ ls,
84
+ xs: entry.xs ?? 0,
85
+ },
86
+ },
87
+ n: fs,
88
+ };
89
+ }
90
+ export function decodeText(input, entry) {
91
+ const result = peekText(input, entry);
92
+ if (!result.frame) {
93
+ throw new Error("Could not parse frame from input");
94
+ }
95
+ return result.frame;
96
+ }
97
+ //# sourceMappingURL=frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/cesr/frame.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type Frame, type FrameSize } from "./frame.ts";
2
+ export interface GenusInit {
3
+ protocol: string;
4
+ major: number;
5
+ minor?: number;
6
+ }
7
+ export declare class Genus implements Frame, GenusInit {
8
+ readonly code: string;
9
+ readonly protocol: string;
10
+ readonly major: number;
11
+ readonly minor: number;
12
+ constructor(init: GenusInit);
13
+ get size(): FrameSize;
14
+ get soft(): number;
15
+ get quadlets(): number;
16
+ text(): string;
17
+ binary(): Uint8Array;
18
+ static KERIACDC_10: Genus;
19
+ static KERIACDC_20: Genus;
20
+ static parse(input: string | Uint8Array): Genus;
21
+ }
@@ -0,0 +1,66 @@
1
+ import { decodeBase64Int, encodeBase64Int } from "../encoding/base64.js";
2
+ import { decodeText, encodeBinary, encodeText, resolveQuadletCount } from "./frame.js";
3
+ const Size = Object.freeze({
4
+ hs: 5,
5
+ ss: 3,
6
+ fs: 8,
7
+ ls: 0,
8
+ xs: 0,
9
+ });
10
+ export class Genus {
11
+ code;
12
+ protocol;
13
+ major;
14
+ minor;
15
+ constructor(init) {
16
+ if (typeof init.major !== "number" || init.major < 0 || init.major > 63) {
17
+ throw new Error(`Invalid major version: ${init.major}`);
18
+ }
19
+ const minor = init.minor ?? 0;
20
+ if (typeof minor !== "number" || minor < 0) {
21
+ throw new Error(`Invalid minor version: ${minor}`);
22
+ }
23
+ this.code = `-_${init.protocol}`;
24
+ this.protocol = init.protocol;
25
+ this.major = init.major;
26
+ this.minor = init.minor ?? 0;
27
+ }
28
+ get size() {
29
+ return Size;
30
+ }
31
+ get soft() {
32
+ return decodeBase64Int(`${encodeBase64Int(this.major, 1)}${encodeBase64Int(this.minor, 2)}`);
33
+ }
34
+ get quadlets() {
35
+ return resolveQuadletCount(this);
36
+ }
37
+ text() {
38
+ return encodeText(this);
39
+ }
40
+ binary() {
41
+ return encodeBinary(this);
42
+ }
43
+ static KERIACDC_10 = new Genus({
44
+ protocol: "AAA",
45
+ major: 1,
46
+ minor: 0,
47
+ });
48
+ static KERIACDC_20 = new Genus({
49
+ protocol: "AAA",
50
+ major: 2,
51
+ minor: 0,
52
+ });
53
+ static parse(input) {
54
+ const frame = decodeText(input, Size);
55
+ const genus = frame.code.slice(2);
56
+ const soft = encodeBase64Int(frame.soft ?? 0, 3);
57
+ const major = decodeBase64Int(soft.slice(0, 1));
58
+ const minor = decodeBase64Int(soft.slice(1, 3));
59
+ return new Genus({
60
+ protocol: genus,
61
+ major,
62
+ minor,
63
+ });
64
+ }
65
+ }
66
+ //# sourceMappingURL=genus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genus.js","sourceRoot":"","sources":["../../src/cesr/genus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export type GenericMapGroupInit = Record<string, unknown>;
2
+ /**
3
+ * CESR Generic Map
4
+ */
5
+ export declare class GenericMapGroup {
6
+ #private;
7
+ constructor(init: GenericMapGroupInit);
8
+ text(): string;
9
+ binary(): Uint8Array;
10
+ static from(init: GenericMapGroupInit): GenericMapGroup;
11
+ }
@@ -0,0 +1,59 @@
1
+ import { concat } from "../array-utils.js";
2
+ import { Counter } from "../counter.js";
3
+ import { Matter } from "../matter.js";
4
+ /**
5
+ * CESR Generic Map
6
+ */
7
+ export class GenericMapGroup {
8
+ #map;
9
+ constructor(init) {
10
+ this.#map = new Map(Object.entries(init));
11
+ }
12
+ #frames() {
13
+ const frames = [];
14
+ for (const [key, value] of this.#map.entries()) {
15
+ frames.push(Matter.primitive.tag(key));
16
+ switch (typeof value) {
17
+ case "string":
18
+ frames.push(Matter.primitive.string(value));
19
+ break;
20
+ case "number":
21
+ frames.push(Matter.primitive.decimal(value));
22
+ break;
23
+ case "boolean":
24
+ if (value) {
25
+ frames.push(Matter.from(Matter.Code.Yes, new Uint8Array()));
26
+ }
27
+ else {
28
+ frames.push(Matter.from(Matter.Code.No, new Uint8Array()));
29
+ }
30
+ break;
31
+ case "object": {
32
+ if (!Array.isArray(value) && value !== null && !(value instanceof Date)) {
33
+ frames.push(...new GenericMapGroup({ ...value }).#frames());
34
+ }
35
+ else {
36
+ throw new Error(`Unsupported object type for key ${key}: ${JSON.stringify(value)}`);
37
+ }
38
+ break;
39
+ }
40
+ default:
41
+ throw new Error(`Unsupported value type ${typeof value} for key ${key}`);
42
+ }
43
+ }
44
+ const size = frames.reduce((acc, frame) => acc + frame.quadlets, 0);
45
+ return [Counter.v2.GenericMapGroup(size), ...frames];
46
+ }
47
+ text() {
48
+ return this.#frames().reduce((acc, frame) => acc + frame.text(), "");
49
+ }
50
+ binary() {
51
+ return this.#frames().reduce((acc, frame) => {
52
+ return concat(acc, frame.binary());
53
+ }, new Uint8Array());
54
+ }
55
+ static from(init) {
56
+ return new GenericMapGroup(init);
57
+ }
58
+ }
59
+ //# sourceMappingURL=generic-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-map.js","sourceRoot":"","sources":["../../../src/cesr/groups/generic-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { type Frame, type FrameInit, type FrameSize, type ReadResult } from "./frame.ts";
2
+ export interface IndexerInit {
3
+ code: string;
4
+ raw: Uint8Array;
5
+ index: number;
6
+ ondex?: number;
7
+ }
8
+ type IndexCodeTableEntry = FrameSize & {
9
+ os: number;
10
+ };
11
+ export declare class Indexer implements IndexerInit, Frame {
12
+ readonly code: string;
13
+ readonly index: number;
14
+ readonly ondex?: number;
15
+ readonly raw: Uint8Array;
16
+ constructor(init: IndexerInit);
17
+ get quadlets(): number;
18
+ get soft(): number;
19
+ get size(): IndexCodeTableEntry;
20
+ text(): string;
21
+ binary(): Uint8Array;
22
+ static readonly Code: {
23
+ Ed25519_Sig: string;
24
+ Ed25519_Crt_Sig: string;
25
+ ECDSA_256k1_Sig: string;
26
+ ECDSA_256k1_Crt_Sig: string;
27
+ ECDSA_256r1_Sig: string;
28
+ ECDSA_256r1_Crt_Sig: string;
29
+ Ed448_Sig: string;
30
+ Ed448_Crt_Sig: string;
31
+ Ed25519_Big_Sig: string;
32
+ Ed25519_Big_Crt_Sig: string;
33
+ ECDSA_256k1_Big_Sig: string;
34
+ ECDSA_256k1_Big_Crt_Sig: string;
35
+ ECDSA_256r1_Big_Sig: string;
36
+ ECDSA_256r1_Big_Crt_Sig: string;
37
+ Ed448_Big_Sig: string;
38
+ Ed448_Big_Crt_Sig: string;
39
+ };
40
+ static peek(input: Uint8Array): ReadResult<Indexer>;
41
+ static parse(input: string | Uint8Array): Indexer;
42
+ /**
43
+ * Create a new Indexer frame.
44
+ *
45
+ * Note: It is recommended to use the helper methods in `Indexer.crypto` instead to ensure
46
+ * the correct code is used for the signature type.
47
+ *
48
+ * @param code The Indexer code, see {@link Indexer.Code}
49
+ * @param raw The raw signature bytes
50
+ * @param index The main index of the signature
51
+ * @param ondex The optional secondary index of the signature
52
+ */
53
+ static from(code: string, raw: Uint8Array, index: number, ondex?: number): Indexer;
54
+ /**
55
+ * Convert a Matter frame into an Indexer frame by providing the index and optional ondex.
56
+ *
57
+ * @param matter The Matter frame to convert
58
+ * @param index The main index of the signature
59
+ * @param ondex The optional secondary index of the signature
60
+ * @returns The created Indexer frame
61
+ */
62
+ static convert(matter: Pick<FrameInit, "code" | "raw">, index: number, ondex?: number): Indexer;
63
+ static readonly crypto: {
64
+ ed25519_sig(raw: Uint8Array, index: number, ondex?: number): Indexer;
65
+ ed448_sig(raw: Uint8Array, index: number, ondex?: number): Indexer;
66
+ ecdsa_256k1_sig(raw: Uint8Array, index: number, ondex?: number): Indexer;
67
+ ecdsa_256r1_sig(raw: Uint8Array, index: number, ondex?: number): Indexer;
68
+ };
69
+ }
70
+ export {};
@@ -0,0 +1,177 @@
1
+ import { decodeBase64Int, encodeBase64Int } from "../encoding/base64.js";
2
+ import { IndexCode, IndexTableInit } from "./codes.js";
3
+ import { decodeText, encodeBinary, encodeText, peekText, resolveQuadletCount, } from "./frame.js";
4
+ import { Matter } from "./matter.js";
5
+ const Hards = {};
6
+ const Table = {};
7
+ for (const [key, value] of Object.entries(IndexTableInit)) {
8
+ Hards[key.slice(0, 1)] = value.hs;
9
+ Table[key] = {
10
+ hs: value.hs,
11
+ fs: value.fs ?? 0,
12
+ os: value.os ?? 0,
13
+ ls: value.ls ?? 0,
14
+ ss: value.ss ?? 0,
15
+ xs: value.xs ?? 0,
16
+ };
17
+ }
18
+ function lookup(input) {
19
+ if (typeof input !== "string") {
20
+ input = new TextDecoder().decode(input.slice(0, 4));
21
+ }
22
+ if (input.length === 0) {
23
+ throw new Error("Received empty input code for lookup");
24
+ }
25
+ const hs = Hards[input.slice(0, 1)];
26
+ const hard = input.slice(0, hs ?? 4);
27
+ const entry = Table[hard];
28
+ if (!entry) {
29
+ throw new Error(`Code not found in Indexer table: ${hard}`);
30
+ }
31
+ return entry;
32
+ }
33
+ function resolveIndexerInit(frame, entry) {
34
+ const ms = entry.ss - entry.os;
35
+ const os = entry.os;
36
+ const text = encodeBase64Int(frame.soft ?? 0, entry.ss);
37
+ const index = decodeBase64Int(text.slice(0, ms));
38
+ const ondex = os > 0 ? decodeBase64Int(text.slice(ms)) : undefined;
39
+ return {
40
+ code: frame.code,
41
+ raw: frame.raw || new Uint8Array(),
42
+ index,
43
+ ondex,
44
+ };
45
+ }
46
+ export class Indexer {
47
+ code;
48
+ index;
49
+ ondex;
50
+ raw;
51
+ constructor(init) {
52
+ this.index = init.index;
53
+ this.ondex = init.ondex;
54
+ this.code = init.code;
55
+ this.raw = init.raw;
56
+ }
57
+ get quadlets() {
58
+ return resolveQuadletCount(this);
59
+ }
60
+ get soft() {
61
+ const entry = lookup(this.code);
62
+ const ms = entry.ss - entry.os;
63
+ const os = entry.os;
64
+ const index = encodeBase64Int(this.index, ms);
65
+ const ondex = os > 0 ? encodeBase64Int(this.ondex ?? 0, os) : "";
66
+ const soft = decodeBase64Int(index + ondex);
67
+ return soft;
68
+ }
69
+ get size() {
70
+ return lookup(this.code);
71
+ }
72
+ text() {
73
+ return encodeText(this);
74
+ }
75
+ binary() {
76
+ return encodeBinary(this);
77
+ }
78
+ static Code = IndexCode;
79
+ static peek(input) {
80
+ const entry = lookup(input);
81
+ const result = peekText(input, entry);
82
+ if (!result.frame) {
83
+ return { n: result.n };
84
+ }
85
+ return {
86
+ frame: new Indexer(resolveIndexerInit(result.frame, entry)),
87
+ n: result.n,
88
+ };
89
+ }
90
+ static parse(input) {
91
+ const entry = lookup(input);
92
+ const frame = decodeText(input, entry);
93
+ return new Indexer(resolveIndexerInit(frame, entry));
94
+ }
95
+ /**
96
+ * Create a new Indexer frame.
97
+ *
98
+ * Note: It is recommended to use the helper methods in `Indexer.crypto` instead to ensure
99
+ * the correct code is used for the signature type.
100
+ *
101
+ * @param code The Indexer code, see {@link Indexer.Code}
102
+ * @param raw The raw signature bytes
103
+ * @param index The main index of the signature
104
+ * @param ondex The optional secondary index of the signature
105
+ */
106
+ static from(code, raw, index, ondex) {
107
+ return new Indexer({ code, raw, index, ondex });
108
+ }
109
+ /**
110
+ * Convert a Matter frame into an Indexer frame by providing the index and optional ondex.
111
+ *
112
+ * @param matter The Matter frame to convert
113
+ * @param index The main index of the signature
114
+ * @param ondex The optional secondary index of the signature
115
+ * @returns The created Indexer frame
116
+ */
117
+ static convert(matter, index, ondex) {
118
+ if (!matter.raw) {
119
+ throw new Error("Cannot create Indexer from Matter without raw data");
120
+ }
121
+ switch (matter.code) {
122
+ case Matter.Code.Ed25519_Sig:
123
+ return Indexer.crypto.ed25519_sig(matter.raw, index, ondex);
124
+ case Matter.Code.Ed448_Sig:
125
+ return Indexer.crypto.ed448_sig(matter.raw, index, ondex);
126
+ case Matter.Code.ECDSA_256k1_Sig:
127
+ return Indexer.crypto.ecdsa_256k1_sig(matter.raw, index, ondex);
128
+ case Matter.Code.ECDSA_256r1_Sig:
129
+ return Indexer.crypto.ecdsa_256r1_sig(matter.raw, index, ondex);
130
+ default:
131
+ throw new Error(`Cannot create Indexer from unsupported Matter code: ${matter.code}`);
132
+ }
133
+ }
134
+ static crypto = {
135
+ ed25519_sig(raw, index, ondex) {
136
+ if (ondex !== undefined) {
137
+ // TODO: Keripy also checks if index === ondex and then use Crt_Sig
138
+ return Indexer.from(Indexer.Code.Ed25519_Big_Sig, raw, index, ondex);
139
+ }
140
+ if (index > 64) {
141
+ return Indexer.from(Indexer.Code.Ed25519_Big_Crt_Sig, raw, index);
142
+ }
143
+ return Indexer.from(Indexer.Code.Ed25519_Sig, raw, index);
144
+ },
145
+ ed448_sig(raw, index, ondex) {
146
+ if (ondex !== undefined) {
147
+ if (index > 64 || ondex > 64) {
148
+ return Indexer.from(Indexer.Code.Ed448_Big_Sig, raw, index, ondex);
149
+ }
150
+ return Indexer.from(Indexer.Code.Ed448_Sig, raw, index, ondex);
151
+ }
152
+ if (index > 64) {
153
+ return Indexer.from(Indexer.Code.Ed448_Big_Crt_Sig, raw, index);
154
+ }
155
+ return Indexer.from(Indexer.Code.Ed448_Crt_Sig, raw, index);
156
+ },
157
+ ecdsa_256k1_sig(raw, index, ondex) {
158
+ if (ondex !== undefined) {
159
+ return Indexer.from(Indexer.Code.ECDSA_256k1_Big_Sig, raw, index, ondex);
160
+ }
161
+ if (index > 64) {
162
+ return Indexer.from(Indexer.Code.ECDSA_256k1_Big_Sig, raw, index);
163
+ }
164
+ return Indexer.from(Indexer.Code.ECDSA_256k1_Sig, raw, index, ondex);
165
+ },
166
+ ecdsa_256r1_sig(raw, index, ondex) {
167
+ if (ondex !== undefined) {
168
+ return Indexer.from(Indexer.Code.ECDSA_256r1_Big_Sig, raw, index, ondex);
169
+ }
170
+ if (index > 64) {
171
+ return Indexer.from(Indexer.Code.ECDSA_256r1_Big_Sig, raw, index);
172
+ }
173
+ return Indexer.from(Indexer.Code.ECDSA_256r1_Sig, raw, index, ondex);
174
+ },
175
+ };
176
+ }
177
+ //# sourceMappingURL=indexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../src/cesr/indexer.ts"],"names":[],"mappings":"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"}