@openlv/core 0.0.1-beta.1

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 (63) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +3 -0
  3. package/dist/encryption/asymmetric.d.ts +22 -0
  4. package/dist/encryption/asymmetric.js +90 -0
  5. package/dist/encryption/asymmetric.js.map +1 -0
  6. package/dist/encryption/asymmetric.test.d.ts +1 -0
  7. package/dist/encryption/asymmetric.test.js +38 -0
  8. package/dist/encryption/asymmetric.test.js.map +1 -0
  9. package/dist/encryption/base64.d.ts +2 -0
  10. package/dist/encryption/base64.js +16 -0
  11. package/dist/encryption/base64.js.map +1 -0
  12. package/dist/encryption/base64.test.d.ts +1 -0
  13. package/dist/encryption/base64.test.js +21 -0
  14. package/dist/encryption/base64.test.js.map +1 -0
  15. package/dist/encryption/handshake.d.ts +10 -0
  16. package/dist/encryption/handshake.js +37 -0
  17. package/dist/encryption/handshake.js.map +1 -0
  18. package/dist/encryption/handshake.test.d.ts +1 -0
  19. package/dist/encryption/handshake.test.js +16 -0
  20. package/dist/encryption/handshake.test.js.map +1 -0
  21. package/dist/encryption/hash.d.ts +13 -0
  22. package/dist/encryption/hash.js +32 -0
  23. package/dist/encryption/hash.js.map +1 -0
  24. package/dist/encryption/index.d.ts +6 -0
  25. package/dist/encryption/index.js +7 -0
  26. package/dist/encryption/index.js.map +1 -0
  27. package/dist/encryption/random.d.ts +8 -0
  28. package/dist/encryption/random.js +21 -0
  29. package/dist/encryption/random.js.map +1 -0
  30. package/dist/errors/base.d.ts +29 -0
  31. package/dist/errors/base.js +99 -0
  32. package/dist/errors/base.js.map +1 -0
  33. package/dist/errors/index.d.ts +4 -0
  34. package/dist/errors/index.js +5 -0
  35. package/dist/errors/index.js.map +1 -0
  36. package/dist/errors/signal.d.ts +4 -0
  37. package/dist/errors/signal.js +7 -0
  38. package/dist/errors/signal.js.map +1 -0
  39. package/dist/icons/index.d.ts +1 -0
  40. package/dist/icons/index.js +3 -0
  41. package/dist/icons/index.js.map +1 -0
  42. package/dist/index.d.ts +7 -0
  43. package/dist/index.js +8 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/messages/index.d.ts +21 -0
  46. package/dist/messages/index.js +2 -0
  47. package/dist/messages/index.js.map +1 -0
  48. package/dist/session.d.ts +23 -0
  49. package/dist/session.js +2 -0
  50. package/dist/session.js.map +1 -0
  51. package/dist/settings.d.ts +15 -0
  52. package/dist/settings.js +2 -0
  53. package/dist/settings.js.map +1 -0
  54. package/dist/utils/encryption.d.ts +88 -0
  55. package/dist/utils/encryption.js +245 -0
  56. package/dist/utils/encryption.js.map +1 -0
  57. package/dist/utils/url.d.ts +3 -0
  58. package/dist/utils/url.js +66 -0
  59. package/dist/utils/url.js.map +1 -0
  60. package/dist/utils/url.test.d.ts +1 -0
  61. package/dist/utils/url.test.js +29 -0
  62. package/dist/utils/url.test.js.map +1 -0
  63. package/package.json +69 -0
@@ -0,0 +1,99 @@
1
+ const version = `openlv@0.0.1-beta.1`;
2
+ let errorConfig = {
3
+ // getDocsUrl: ({
4
+ // docsBaseUrl,
5
+ // docsPath = '',
6
+ // docsSlug,
7
+ // }: BaseErrorParameters) =>
8
+ // docsPath
9
+ // ? `${docsBaseUrl ?? 'https://viem.sh'}${docsPath}${docsSlug ? `#${docsSlug}` : ''
10
+ // }`
11
+ // : undefined,
12
+ version,
13
+ };
14
+ export function setErrorConfig(config) {
15
+ errorConfig = config;
16
+ }
17
+ export class BaseError extends Error {
18
+ constructor(shortMessage, args = {}) {
19
+ const details = (() => {
20
+ if (args.cause instanceof BaseError)
21
+ return args.cause.details;
22
+ if (args.cause?.message)
23
+ return args.cause.message;
24
+ return args.details;
25
+ })();
26
+ const docsPath = (() => {
27
+ if (args.cause instanceof BaseError)
28
+ return args.cause.docsPath || args.docsPath;
29
+ return args.docsPath;
30
+ })();
31
+ const docsUrl = errorConfig.getDocsUrl?.({ ...args, docsPath });
32
+ const message = [
33
+ shortMessage || "An error occurred.",
34
+ "",
35
+ ...(args.metaMessages ? [...args.metaMessages, ""] : []),
36
+ ...(docsUrl ? [`Docs: ${docsUrl}`] : []),
37
+ ...(details ? [`Details: ${details}`] : []),
38
+ ...(errorConfig.version ? [`Version: ${errorConfig.version}`] : []),
39
+ ].join("\n");
40
+ // @ts-expect-error - cause is not supported in the constructor
41
+ super(message, args.cause ? { cause: args.cause } : undefined);
42
+ Object.defineProperty(this, "details", {
43
+ enumerable: true,
44
+ configurable: true,
45
+ writable: true,
46
+ value: void 0
47
+ });
48
+ Object.defineProperty(this, "docsPath", {
49
+ enumerable: true,
50
+ configurable: true,
51
+ writable: true,
52
+ value: void 0
53
+ });
54
+ Object.defineProperty(this, "metaMessages", {
55
+ enumerable: true,
56
+ configurable: true,
57
+ writable: true,
58
+ value: void 0
59
+ });
60
+ Object.defineProperty(this, "shortMessage", {
61
+ enumerable: true,
62
+ configurable: true,
63
+ writable: true,
64
+ value: void 0
65
+ });
66
+ Object.defineProperty(this, "version", {
67
+ enumerable: true,
68
+ configurable: true,
69
+ writable: true,
70
+ value: void 0
71
+ });
72
+ Object.defineProperty(this, "name", {
73
+ enumerable: true,
74
+ configurable: true,
75
+ writable: true,
76
+ value: "BaseError"
77
+ });
78
+ this.details = details;
79
+ this.docsPath = docsPath;
80
+ this.metaMessages = args.metaMessages;
81
+ this.name = args.name ?? this.name;
82
+ this.shortMessage = shortMessage;
83
+ this.version = version;
84
+ }
85
+ walk(fn) {
86
+ return walk(this, fn);
87
+ }
88
+ }
89
+ function walk(err, fn) {
90
+ if (fn?.(err))
91
+ return err;
92
+ if (err &&
93
+ typeof err === "object" &&
94
+ "cause" in err &&
95
+ err.cause !== undefined)
96
+ return walk(err.cause, fn);
97
+ return fn ? null : err;
98
+ }
99
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/errors/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** biome-ignore-all lint/performance/noBarrelFile: package entrypoint */
2
+ /** biome-ignore-all lint/performance/noReExportAll: package entrypoint */
3
+ export * from "./base.js";
4
+ export * from "./signal.js";
@@ -0,0 +1,5 @@
1
+ /** biome-ignore-all lint/performance/noBarrelFile: package entrypoint */
2
+ /** biome-ignore-all lint/performance/noReExportAll: package entrypoint */
3
+ export * from "./base.js";
4
+ export * from "./signal.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,0EAA0E;AAE1E,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { BaseError } from "./base.js";
2
+ export declare class SignalNoConnectionError extends BaseError {
3
+ constructor();
4
+ }
@@ -0,0 +1,7 @@
1
+ import { BaseError } from "./base.js";
2
+ export class SignalNoConnectionError extends BaseError {
3
+ constructor() {
4
+ super(["Hello", "World"].join("\n"), { name: "SignalConnectionError" });
5
+ }
6
+ }
7
+ //# sourceMappingURL=signal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal.js","sourceRoot":"","sources":["../../src/errors/signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,OAAO,uBAAwB,SAAQ,SAAS;IACpD;QACE,KAAK,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC1E,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ export declare const OPENLV_ICON_128_WHITE: string;
@@ -0,0 +1,3 @@
1
+ const openLvIcon = '<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg" style="color: #fe7d37;"><path d="M318.354 141.355C333.64 141.355 346.952 152.55 356.358 170.152C365.791 187.805 371.5 212.223 371.5 239.509V338.41C371.5 342.98 369.686 347.365 366.457 350.597C363.228 353.829 358.849 355.644 354.282 355.645H228.536C223.969 355.644 219.589 353.829 216.36 350.597C213.131 347.365 211.318 342.98 211.318 338.41V311.256C202 327.486 189.221 337.662 174.646 337.662C159.36 337.662 146.048 326.468 136.642 308.865C127.209 291.213 121.5 266.794 121.5 239.509C121.5 212.223 127.209 187.805 136.642 170.152C146.048 152.55 159.36 141.355 174.646 141.355H318.354ZM204.572 157.842C217.61 173.942 226.28 200.459 227.599 231.266H246.5C248.685 231.266 250.78 232.135 252.324 233.681C253.869 235.227 254.736 237.323 254.736 239.509C254.736 241.695 253.869 243.791 252.324 245.337C250.78 246.883 248.685 247.752 246.5 247.752H227.791V338.41C227.791 338.609 227.87 338.799 228.01 338.939C228.15 339.079 228.339 339.158 228.536 339.158H354.282C354.479 339.158 354.669 339.079 354.809 338.939C354.948 338.799 355.027 338.609 355.027 338.41V247.752H336.318C334.133 247.752 332.038 246.883 330.493 245.337C328.949 243.791 328.082 241.694 328.082 239.509C328.082 237.323 328.949 235.227 330.493 233.681C332.038 232.135 334.133 231.266 336.318 231.266H354.827C353.818 209.144 348.822 190.829 342.011 178.012C334.979 164.781 326.28 157.842 318.354 157.842H204.572ZM174.646 157.842C170.506 157.842 166.154 159.719 161.895 163.468C157.636 167.216 153.548 172.774 149.989 179.939C142.873 194.267 137.973 214.821 137.973 239.509C137.973 264.197 142.873 284.752 149.989 299.079C153.548 306.244 157.636 311.803 161.895 315.551C166.154 319.3 170.506 321.176 174.646 321.176C178.785 321.176 183.137 319.3 187.396 315.552C191.655 311.804 195.743 306.248 199.302 299.083C206.418 284.757 211.318 264.203 211.318 239.509C211.318 214.821 206.418 194.267 199.302 179.939C195.743 172.774 191.655 167.216 187.396 163.468C183.137 159.719 178.785 157.842 174.646 157.842ZM174.646 226.771C178.021 226.771 181.259 228.113 183.646 230.502C186.032 232.891 187.373 236.131 187.373 239.509C187.373 242.028 186.627 244.491 185.229 246.586C183.83 248.681 181.842 250.314 179.517 251.278C177.191 252.243 174.631 252.495 172.162 252.003C169.693 251.511 167.425 250.298 165.646 248.517C163.866 246.735 162.654 244.465 162.163 241.994C161.672 239.523 161.924 236.962 162.887 234.635C163.85 232.307 165.481 230.318 167.574 228.918C169.667 227.518 172.128 226.771 174.646 226.771ZM300.391 231.266C302.576 231.266 304.671 232.135 306.216 233.681C307.76 235.227 308.627 237.323 308.627 239.509C308.627 241.694 307.76 243.791 306.216 245.337C304.671 246.883 302.576 247.752 300.391 247.752H282.428C280.243 247.752 278.147 246.883 276.603 245.337C275.058 243.791 274.19 241.694 274.19 239.509C274.19 237.323 275.058 235.227 276.603 233.681C278.147 232.135 280.243 231.266 282.428 231.266H300.391Z" fill="currentColor" stroke="currentColor" stroke-width="3"/><path d="M361.576 433C367.651 433.042 372.542 438 372.501 444.074C372.46 450.149 367.501 455.04 361.426 454.999L287.926 454.499C281.851 454.457 276.96 449.5 277.001 443.425C277.042 437.35 282.001 432.459 288.076 432.5L361.576 433ZM65.8721 418.682C68.8091 413.364 75.5006 411.434 80.8184 414.37C91.4364 420.234 118.045 431.791 139.861 432.506C159.077 433.136 187.16 432.832 196.622 432.506C202.693 432.297 207.784 437.049 207.994 443.12C208.203 449.191 203.451 454.284 197.38 454.493C187.508 454.834 158.925 455.142 139.141 454.493C112.158 453.608 81.8993 440.099 70.1836 433.629C64.8655 430.692 62.9352 424 65.8721 418.682ZM450.445 304.61C456.459 303.752 462.031 307.93 462.891 313.943C466.733 340.838 467.437 337.258 469.466 362.622C470.429 374.662 467.727 387.312 464.389 397.731C461.013 408.267 456.677 417.463 453.562 422.939C450.557 428.219 443.842 430.064 438.562 427.061C433.281 424.056 431.436 417.34 434.44 412.06C436.825 407.869 440.539 400.065 443.438 391.018C446.375 381.854 448.173 372.337 447.536 364.377C445.565 339.742 445.269 346.16 441.111 317.055C440.253 311.041 444.432 305.47 450.445 304.61ZM50.9824 264.547C57.031 263.985 62.3912 268.432 62.9541 274.48C64.4004 290.028 62.5774 325.126 56.6836 349.123C55.2346 355.023 49.2766 358.63 43.377 357.182C37.4775 355.732 33.8695 349.776 35.3184 343.876C40.6243 322.273 42.2682 289.638 41.0479 276.519C40.4853 270.47 44.9335 265.11 50.9824 264.547ZM456.157 143.032C462.214 142.567 467.503 147.099 467.969 153.156C470.807 190.052 468.426 217.548 465.649 228.26C464.125 234.14 458.121 237.672 452.24 236.147C446.36 234.623 442.828 228.62 444.353 222.739C446.242 215.45 448.795 190.745 446.033 154.843C445.568 148.786 450.1 143.498 456.157 143.032ZM56.5391 78.1777C60.3071 73.4125 67.2249 72.6033 71.9902 76.3711C76.7553 80.1391 77.5637 87.057 73.7959 91.8223C71.2797 95.0046 67.2903 100.648 63.8408 106.811C60.2144 113.289 57.9762 118.966 57.6133 122.595C56.1782 136.946 57.668 156.507 57.668 164.5V183.5C57.6679 189.575 52.7427 194.5 46.668 194.5C40.5929 194.5 35.668 189.575 35.668 183.5V164.5C35.668 159.493 34.1578 136.054 35.7227 120.405C36.5598 112.035 40.7378 103.044 44.6445 96.0645C48.7283 88.7689 53.3887 82.162 56.5391 78.1777ZM299.442 44.5137C309.489 44.0029 334.979 43.287 357.111 44.5166C370.073 45.2368 385.732 50.9517 399.119 56.9824C412.843 63.1653 425.631 70.3596 433.331 75.1719C438.482 78.3916 440.048 85.1776 436.829 90.3291C433.609 95.4808 426.823 97.0468 421.671 93.8271C414.704 89.4729 402.792 82.7664 390.083 77.041C377.037 71.1636 364.529 66.9624 355.891 66.4824C334.824 65.3121 310.181 65.9962 300.56 66.4854C294.492 66.7939 289.324 62.1249 289.016 56.0576C288.708 49.9907 293.375 44.8222 299.442 44.5137ZM171.858 44.0498C187.6 43.8642 205.309 44.1678 216.822 44.5039C222.894 44.6816 227.673 49.7482 227.496 55.8203C227.319 61.8927 222.252 66.6722 216.18 66.4951C204.86 66.1646 187.468 65.8678 172.118 66.0488C164.427 66.1395 157.389 66.3484 151.934 66.7178C149.195 66.9032 147.009 67.1197 145.413 67.3525C144.301 67.5148 143.806 67.6393 143.724 67.6543C138.326 69.9036 132.063 67.5277 129.548 62.1836C126.961 56.6867 129.321 50.1336 134.817 47.5469L135.286 47.3359C137.655 46.3203 140.36 45.8569 142.237 45.583C144.622 45.2352 147.433 44.9727 150.447 44.7686C156.499 44.3588 164.005 44.1424 171.858 44.0498Z" fill="currentColor"/></svg>';
2
+ export const OPENLV_ICON_128_WHITE = `data:image/svg+xml;base64,${btoa(openLvIcon)}`;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/icons/index.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GACd,mtMAAmtM,CAAC;AAEttM,MAAM,CAAC,MAAM,qBAAqB,GAAG,6BAA6B,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** biome-ignore-all lint/performance/noReExportAll: package entrypoint */
2
+ /** biome-ignore-all lint/performance/noBarrelFile: package entrypoint */
3
+ export * from "./messages/index.js";
4
+ export * from "./session.js";
5
+ export * from "./session.js";
6
+ export * from "./settings.js";
7
+ export * from "./utils/url.js";
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ /** biome-ignore-all lint/performance/noReExportAll: package entrypoint */
2
+ /** biome-ignore-all lint/performance/noBarrelFile: package entrypoint */
3
+ export * from "./messages/index.js";
4
+ export * from "./session.js";
5
+ export * from "./session.js";
6
+ export * from "./settings.js";
7
+ export * from "./utils/url.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,yEAAyE;AAEzE,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,21 @@
1
+ export type SignalMessageBase<T extends string, P> = {
2
+ type: T;
3
+ payload: P;
4
+ timestamp: number;
5
+ };
6
+ /**
7
+ * Flash message
8
+ * Sent to initiate handshake by non-host
9
+ */
10
+ export type SignalMessageFlash = SignalMessageBase<"flash", object>;
11
+ export type SignalMessagePubkey = SignalMessageBase<"pubkey", {
12
+ publicKey: string;
13
+ dAppInfo?: {
14
+ name: string;
15
+ url: string;
16
+ icon: string;
17
+ };
18
+ }>;
19
+ export type SignalMessageAck = SignalMessageBase<"ack", undefined>;
20
+ export type SignalMessageData = SignalMessageBase<"data", object>;
21
+ export type SignalMessage = SignalMessageFlash | SignalMessagePubkey | SignalMessageAck | SignalMessageData;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import type { DecryptionKey, EncryptionKey } from "./encryption/asymmetric.js";
2
+ export type Hex<_L> = string;
3
+ /**
4
+ * The parameters from the connection url
5
+ */
6
+ export type SessionHandshakeParameters = {
7
+ sessionId: Hex<16>;
8
+ h: Hex<16>;
9
+ k: Hex<16>;
10
+ p: string;
11
+ s: string;
12
+ };
13
+ /**
14
+ * The parameters that describe a session
15
+ * these can be used to restart a session
16
+ */
17
+ export type SessionConnectionParameters = SessionHandshakeParameters & {
18
+ relyingPublicKey: EncryptionKey;
19
+ encryptionKey: EncryptionKey;
20
+ decryptionKey: DecryptionKey;
21
+ };
22
+ export type SessionCreationParameters = Pick<SessionHandshakeParameters, "p" | "s">;
23
+ export type SessionLinkParameters = SessionConnectionParameters | SessionHandshakeParameters | SessionCreationParameters;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import type { EventEmitter } from "eventemitter3";
2
+ import type { SessionCreationParameters } from "./session.js";
3
+ export type SignalingSettings = SessionCreationParameters;
4
+ export type ConnectorSettings = {
5
+ retainHistory: boolean;
6
+ autoReconnect: boolean;
7
+ session: SignalingSettings;
8
+ };
9
+ export type ConnectorStorage = {
10
+ emitter: EventEmitter<{
11
+ settings_change: (settings: ConnectorSettings) => void;
12
+ }>;
13
+ getSettings: () => ConnectorSettings;
14
+ setSettings: (settings: ConnectorSettings) => void;
15
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":""}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Encryption utilities for Open Lavatory Protocol
3
+ * Implements ECDH key exchange with P-256 curve and ECIES encryption
4
+ */
5
+ /** biome-ignore-all lint/suspicious/noConsole: temp */
6
+ /** biome-ignore-all lint/complexity/noStaticOnlyClass: temp */
7
+ export declare class EncryptionUtils {
8
+ /**
9
+ * URL-safe alphabet for session ID generation
10
+ */
11
+ private static readonly URL_SAFE_ALPHABET;
12
+ /**
13
+ * Generate a cryptographically secure URL-safe random string
14
+ */
15
+ static generateUrlSafeRandomString(length: number): string;
16
+ /**
17
+ * Generate a 16-character URL-safe session ID
18
+ */
19
+ static generateSessionId(): string;
20
+ /**
21
+ * Generate a 32-byte random shared key and return as hex
22
+ */
23
+ static generateSharedKey(): string;
24
+ /**
25
+ * Convert hex string to Uint8Array
26
+ */
27
+ static hexToBytes(hex: string): Uint8Array;
28
+ /**
29
+ * Convert Uint8Array to hex string
30
+ */
31
+ static bytesToHex(bytes: Uint8Array): string;
32
+ /**
33
+ * Generate an ECDH keypair using P-256 curve
34
+ */
35
+ static generateKeyPair(): Promise<{
36
+ privateKey: CryptoKey;
37
+ publicKey: CryptoKey;
38
+ }>;
39
+ /**
40
+ * Export public key to raw format (65 bytes uncompressed)
41
+ */
42
+ static exportPublicKey(publicKey: CryptoKey): Promise<ArrayBuffer>;
43
+ /**
44
+ * Import public key from raw format
45
+ */
46
+ static importPublicKey(keyData: ArrayBuffer): Promise<CryptoKey>;
47
+ /**
48
+ * Compute SHA-256 hash of public key and return first 8 bytes as hex
49
+ */
50
+ static computePublicKeyHash(publicKey: CryptoKey): Promise<string>;
51
+ /**
52
+ * Compute SHA-256 hash of raw public key data
53
+ */
54
+ static computePublicKeyHashFromRaw(publicKeyData: Uint8Array): Promise<string>;
55
+ /**
56
+ * Derive shared AES-GCM key from ECDH key exchange
57
+ */
58
+ static deriveSharedKey(privateKey: CryptoKey, peerPublicKey: CryptoKey): Promise<CryptoKey>;
59
+ /**
60
+ * Encrypt message using ECIES scheme
61
+ * Format: ephemeral_pubkey || iv || encrypted_data || auth_tag
62
+ */
63
+ static encryptMessage(message: any, recipientPublicKey: CryptoKey, senderPrivateKey: CryptoKey, senderPublicKey: CryptoKey): Promise<string>;
64
+ /**
65
+ * Decrypt message using ECIES scheme
66
+ */
67
+ static decryptMessage(encryptedMessage: string, recipientPrivateKey: CryptoKey): Promise<any>;
68
+ /**
69
+ * Convert public key to base64 string for transmission
70
+ */
71
+ static publicKeyToBase64(publicKey: CryptoKey): Promise<string>;
72
+ /**
73
+ * Convert base64 string back to public key
74
+ */
75
+ static publicKeyFromBase64(base64Key: string): Promise<CryptoKey>;
76
+ /**
77
+ * Derive symmetric key from hex-encoded shared secret (for initial handshake)
78
+ */
79
+ static deriveSymmetricKey(sharedSecretHex: string): Promise<CryptoKey>;
80
+ /**
81
+ * Encrypt message using symmetric key (for initial handshake)
82
+ */
83
+ static encryptSymmetric(message: any, sharedKey: CryptoKey): Promise<string>;
84
+ /**
85
+ * Decrypt message using symmetric key (for initial handshake)
86
+ */
87
+ static decryptSymmetric(encryptedMessage: string, sharedKey: CryptoKey): Promise<any>;
88
+ }
@@ -0,0 +1,245 @@
1
+ /**
2
+ * Encryption utilities for Open Lavatory Protocol
3
+ * Implements ECDH key exchange with P-256 curve and ECIES encryption
4
+ */
5
+ /** biome-ignore-all lint/suspicious/noConsole: temp */
6
+ /** biome-ignore-all lint/complexity/noStaticOnlyClass: temp */
7
+ export class EncryptionUtils {
8
+ /**
9
+ * Generate a cryptographically secure URL-safe random string
10
+ */
11
+ static generateUrlSafeRandomString(length) {
12
+ const array = new Uint8Array(length);
13
+ crypto.getRandomValues(array);
14
+ return Array.from(array)
15
+ .map((byte) => EncryptionUtils.URL_SAFE_ALPHABET[byte % EncryptionUtils.URL_SAFE_ALPHABET.length])
16
+ .join("");
17
+ }
18
+ /**
19
+ * Generate a 16-character URL-safe session ID
20
+ */
21
+ static generateSessionId() {
22
+ return EncryptionUtils.generateUrlSafeRandomString(16);
23
+ }
24
+ /**
25
+ * Generate a 32-byte random shared key and return as hex
26
+ */
27
+ static generateSharedKey() {
28
+ const array = new Uint8Array(32);
29
+ crypto.getRandomValues(array);
30
+ return Array.from(array)
31
+ .map((b) => b.toString(16).padStart(2, "0"))
32
+ .join("");
33
+ }
34
+ /**
35
+ * Convert hex string to Uint8Array
36
+ */
37
+ static hexToBytes(hex) {
38
+ if (hex.length % 2 !== 0) {
39
+ throw new Error("Hex string must have even length");
40
+ }
41
+ const array = new Uint8Array(hex.length / 2);
42
+ for (let i = 0; i < hex.length; i += 2) {
43
+ array[i / 2] = parseInt(hex.substr(i, 2), 16);
44
+ }
45
+ return array;
46
+ }
47
+ /**
48
+ * Convert Uint8Array to hex string
49
+ */
50
+ static bytesToHex(bytes) {
51
+ return Array.from(bytes)
52
+ .map((b) => b.toString(16).padStart(2, "0"))
53
+ .join("");
54
+ }
55
+ /**
56
+ * Generate an ECDH keypair using P-256 curve
57
+ */
58
+ static async generateKeyPair() {
59
+ return await crypto.subtle.generateKey({
60
+ name: "ECDH",
61
+ namedCurve: "P-256",
62
+ }, true, ["deriveKey"]);
63
+ }
64
+ /**
65
+ * Export public key to raw format (65 bytes uncompressed)
66
+ */
67
+ static async exportPublicKey(publicKey) {
68
+ return await crypto.subtle.exportKey("raw", publicKey);
69
+ }
70
+ /**
71
+ * Import public key from raw format
72
+ */
73
+ static async importPublicKey(keyData) {
74
+ return await crypto.subtle.importKey("raw", keyData, {
75
+ name: "ECDH",
76
+ namedCurve: "P-256",
77
+ }, false, []);
78
+ }
79
+ /**
80
+ * Compute SHA-256 hash of public key and return first 8 bytes as hex
81
+ */
82
+ static async computePublicKeyHash(publicKey) {
83
+ const exportedKey = await EncryptionUtils.exportPublicKey(publicKey);
84
+ const hashBuffer = await crypto.subtle.digest("SHA-256", exportedKey);
85
+ const hashArray = new Uint8Array(hashBuffer);
86
+ const shortHash = hashArray.slice(0, 8); // First 8 bytes
87
+ return Array.from(shortHash)
88
+ .map((b) => b.toString(16).padStart(2, "0"))
89
+ .join("");
90
+ }
91
+ /**
92
+ * Compute SHA-256 hash of raw public key data
93
+ */
94
+ static async computePublicKeyHashFromRaw(publicKeyData) {
95
+ // @ts-expect-error
96
+ const hashBuffer = await crypto.subtle.digest("SHA-256", publicKeyData);
97
+ const hashArray = new Uint8Array(hashBuffer);
98
+ const shortHash = hashArray.slice(0, 8); // First 8 bytes
99
+ return Array.from(shortHash)
100
+ .map((b) => b.toString(16).padStart(2, "0"))
101
+ .join("");
102
+ }
103
+ /**
104
+ * Derive shared AES-GCM key from ECDH key exchange
105
+ */
106
+ static async deriveSharedKey(privateKey, peerPublicKey) {
107
+ const sharedSecret = await crypto.subtle.deriveKey({
108
+ name: "ECDH",
109
+ public: peerPublicKey,
110
+ }, privateKey, {
111
+ name: "AES-GCM",
112
+ length: 256,
113
+ }, false, ["encrypt", "decrypt"]);
114
+ return sharedSecret;
115
+ }
116
+ /**
117
+ * Encrypt message using ECIES scheme
118
+ * Format: ephemeral_pubkey || iv || encrypted_data || auth_tag
119
+ */
120
+ static async encryptMessage(message, recipientPublicKey, senderPrivateKey, senderPublicKey) {
121
+ const sharedKey = await EncryptionUtils.deriveSharedKey(senderPrivateKey, recipientPublicKey);
122
+ const encoder = new TextEncoder();
123
+ const data = encoder.encode(JSON.stringify(message));
124
+ const iv = crypto.getRandomValues(new Uint8Array(12));
125
+ const encrypted = await crypto.subtle.encrypt({ name: "AES-GCM", iv }, sharedKey, data);
126
+ // Get ephemeral public key for ECIES
127
+ const ephemeralPublicKey = await EncryptionUtils.exportPublicKey(senderPublicKey);
128
+ // Combine ephemeral public key, IV and encrypted data
129
+ const combined = new Uint8Array(ephemeralPublicKey.byteLength + iv.length + encrypted.byteLength);
130
+ combined.set(new Uint8Array(ephemeralPublicKey));
131
+ combined.set(iv, ephemeralPublicKey.byteLength);
132
+ combined.set(new Uint8Array(encrypted), ephemeralPublicKey.byteLength + iv.length);
133
+ // Return as base64
134
+ return btoa(String.fromCharCode.apply(null, Array.from(combined)));
135
+ }
136
+ /**
137
+ * Decrypt message using ECIES scheme
138
+ */
139
+ static async decryptMessage(encryptedMessage, recipientPrivateKey) {
140
+ try {
141
+ // Decode from base64
142
+ const combined = new Uint8Array(atob(encryptedMessage)
143
+ .split("")
144
+ .map((char) => char.charCodeAt(0)));
145
+ // Extract ephemeral public key, IV and encrypted data
146
+ const ephemeralPublicKey = combined.slice(0, 65); // P-256 uncompressed key is 65 bytes
147
+ const iv = combined.slice(65, 77); // 12 bytes
148
+ const encrypted = combined.slice(77);
149
+ // Import ephemeral public key
150
+ const senderPublicKey = await EncryptionUtils.importPublicKey(ephemeralPublicKey.buffer);
151
+ // Derive shared key
152
+ const sharedKey = await EncryptionUtils.deriveSharedKey(recipientPrivateKey, senderPublicKey);
153
+ const decrypted = await crypto.subtle.decrypt({ name: "AES-GCM", iv }, sharedKey, encrypted);
154
+ const decoder = new TextDecoder();
155
+ const messageStr = decoder.decode(decrypted);
156
+ return JSON.parse(messageStr);
157
+ }
158
+ catch (error) {
159
+ console.error("Failed to decrypt message:", error);
160
+ throw new Error("Message decryption failed");
161
+ }
162
+ }
163
+ /**
164
+ * Convert public key to base64 string for transmission
165
+ */
166
+ static async publicKeyToBase64(publicKey) {
167
+ const exportedKey = await EncryptionUtils.exportPublicKey(publicKey);
168
+ return btoa(String.fromCharCode.apply(null, Array.from(new Uint8Array(exportedKey))));
169
+ }
170
+ /**
171
+ * Convert base64 string back to public key
172
+ */
173
+ static async publicKeyFromBase64(base64Key) {
174
+ const keyData = new Uint8Array(atob(base64Key)
175
+ .split("")
176
+ .map((char) => char.charCodeAt(0)));
177
+ return await EncryptionUtils.importPublicKey(keyData.buffer);
178
+ }
179
+ /**
180
+ * Derive symmetric key from hex-encoded shared secret (for initial handshake)
181
+ */
182
+ static async deriveSymmetricKey(sharedSecretHex) {
183
+ const sharedSecretBytes = EncryptionUtils.hexToBytes(sharedSecretHex);
184
+ // @ts-expect-error
185
+ const sharedSecretBytesBufferSource = sharedSecretBytes;
186
+ const keyMaterial = await crypto.subtle.importKey("raw", sharedSecretBytesBufferSource, "PBKDF2", false, ["deriveKey"]);
187
+ const encoder = new TextEncoder();
188
+ return await crypto.subtle.deriveKey({
189
+ name: "PBKDF2",
190
+ salt: encoder.encode("openlv-salt"), // Fixed salt for deterministic key
191
+ iterations: 100000,
192
+ hash: "SHA-256",
193
+ }, keyMaterial, {
194
+ name: "AES-GCM",
195
+ length: 256,
196
+ }, false, ["encrypt", "decrypt"]);
197
+ }
198
+ /**
199
+ * Encrypt message using symmetric key (for initial handshake)
200
+ */
201
+ static async encryptSymmetric(message, sharedKey) {
202
+ const encoder = new TextEncoder();
203
+ const data = encoder.encode(JSON.stringify(message));
204
+ const iv = crypto.getRandomValues(new Uint8Array(12));
205
+ const encrypted = await crypto.subtle.encrypt({ name: "AES-GCM", iv }, sharedKey, data);
206
+ // Combine IV and encrypted data
207
+ const combined = new Uint8Array(iv.length + encrypted.byteLength);
208
+ combined.set(iv);
209
+ combined.set(new Uint8Array(encrypted), iv.length);
210
+ // Return as base64
211
+ return btoa(String.fromCharCode.apply(null, Array.from(combined)));
212
+ }
213
+ /**
214
+ * Decrypt message using symmetric key (for initial handshake)
215
+ */
216
+ static async decryptSymmetric(encryptedMessage, sharedKey) {
217
+ try {
218
+ // Decode from base64
219
+ const combined = new Uint8Array(atob(encryptedMessage)
220
+ .split("")
221
+ .map((char) => char.charCodeAt(0)));
222
+ // Extract IV and encrypted data
223
+ const iv = combined.slice(0, 12); // 12 bytes
224
+ const encrypted = combined.slice(12);
225
+ const decrypted = await crypto.subtle.decrypt({ name: "AES-GCM", iv }, sharedKey, encrypted);
226
+ const decoder = new TextDecoder();
227
+ const messageStr = decoder.decode(decrypted);
228
+ return JSON.parse(messageStr);
229
+ }
230
+ catch (error) {
231
+ console.error("Failed to decrypt symmetric message:", error);
232
+ throw new Error("Symmetric message decryption failed");
233
+ }
234
+ }
235
+ }
236
+ /**
237
+ * URL-safe alphabet for session ID generation
238
+ */
239
+ Object.defineProperty(EncryptionUtils, "URL_SAFE_ALPHABET", {
240
+ enumerable: true,
241
+ configurable: true,
242
+ writable: true,
243
+ value: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
244
+ });
245
+ //# sourceMappingURL=encryption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.js","sourceRoot":"","sources":["../../src/utils/encryption.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { SessionHandshakeParameters } from "../session.js";
2
+ export declare const encodeConnectionURL: (payload: SessionHandshakeParameters) => string;
3
+ export declare const decodeConnectionURL: (url: string) => SessionHandshakeParameters;