@intentic/keyring 0.0.0-stage → 1.338.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 +21 -0
- package/README.md +136 -2
- package/dist/address.d.ts +14 -0
- package/dist/address.d.ts.map +1 -0
- package/dist/address.js +17 -0
- package/dist/address.js.map +1 -0
- package/dist/app.d.ts +3 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +100 -0
- package/dist/app.js.map +1 -0
- package/dist/askpass/askpass-run.d.ts +7 -0
- package/dist/askpass/askpass-run.d.ts.map +1 -0
- package/dist/askpass/askpass-run.js +25 -0
- package/dist/askpass/askpass-run.js.map +1 -0
- package/dist/askpass/askpass.d.ts +9 -0
- package/dist/askpass/askpass.d.ts.map +1 -0
- package/dist/askpass/askpass.js +70 -0
- package/dist/askpass/askpass.js.map +1 -0
- package/dist/askpass-cli.d.ts +3 -0
- package/dist/askpass-cli.d.ts.map +1 -0
- package/dist/askpass-cli.js +4 -0
- package/dist/askpass-cli.js.map +1 -0
- package/dist/audit.d.ts +18 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +14 -0
- package/dist/audit.js.map +1 -0
- package/dist/backends.d.ts +19 -0
- package/dist/backends.d.ts.map +1 -0
- package/dist/backends.js +97 -0
- package/dist/backends.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +11 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +10 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +59 -0
- package/dist/client.js.map +1 -0
- package/dist/consent/consent-posix.d.ts +6 -0
- package/dist/consent/consent-posix.d.ts.map +1 -0
- package/dist/consent/consent-posix.js +57 -0
- package/dist/consent/consent-posix.js.map +1 -0
- package/dist/consent/consent-windows.d.ts +5 -0
- package/dist/consent/consent-windows.d.ts.map +1 -0
- package/dist/consent/consent-windows.js +244 -0
- package/dist/consent/consent-windows.js.map +1 -0
- package/dist/consent/consent.d.ts +67 -0
- package/dist/consent/consent.d.ts.map +1 -0
- package/dist/consent/consent.js +89 -0
- package/dist/consent/consent.js.map +1 -0
- package/dist/core.d.ts +61 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +882 -0
- package/dist/core.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/keyring-fetch.d.ts +4 -0
- package/dist/keyring-fetch.d.ts.map +1 -0
- package/dist/keyring-fetch.js +20 -0
- package/dist/keyring-fetch.js.map +1 -0
- package/dist/keys.d.ts +27 -0
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +55 -0
- package/dist/keys.js.map +1 -0
- package/dist/policy.d.ts +71 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +170 -0
- package/dist/policy.js.map +1 -0
- package/dist/powershell.d.ts +22 -0
- package/dist/powershell.d.ts.map +1 -0
- package/dist/powershell.js +53 -0
- package/dist/powershell.js.map +1 -0
- package/dist/protocol.d.ts +923 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +125 -0
- package/dist/protocol.js.map +1 -0
- package/dist/run.d.ts +20 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +34 -0
- package/dist/run.js.map +1 -0
- package/dist/seal.d.ts +3 -0
- package/dist/seal.d.ts.map +1 -0
- package/dist/seal.js +3 -0
- package/dist/seal.js.map +1 -0
- package/dist/serve.d.ts +17 -0
- package/dist/serve.d.ts.map +1 -0
- package/dist/serve.js +65 -0
- package/dist/serve.js.map +1 -0
- package/dist/server.d.ts +9 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +77 -0
- package/dist/server.js.map +1 -0
- package/dist/service/acl.d.ts +9 -0
- package/dist/service/acl.d.ts.map +1 -0
- package/dist/service/acl.js +25 -0
- package/dist/service/acl.js.map +1 -0
- package/dist/service/channel.d.ts +17 -0
- package/dist/service/channel.d.ts.map +1 -0
- package/dist/service/channel.js +64 -0
- package/dist/service/channel.js.map +1 -0
- package/dist/service/door.d.ts +89 -0
- package/dist/service/door.d.ts.map +1 -0
- package/dist/service/door.js +28 -0
- package/dist/service/door.js.map +1 -0
- package/dist/service/hello-verify.d.ts +2 -0
- package/dist/service/hello-verify.d.ts.map +1 -0
- package/dist/service/hello-verify.js +10 -0
- package/dist/service/hello-verify.js.map +1 -0
- package/dist/service/helper.d.ts +3 -0
- package/dist/service/helper.d.ts.map +1 -0
- package/dist/service/helper.js +117 -0
- package/dist/service/helper.js.map +1 -0
- package/dist/service/install.d.ts +10 -0
- package/dist/service/install.d.ts.map +1 -0
- package/dist/service/install.js +77 -0
- package/dist/service/install.js.map +1 -0
- package/dist/service/lines.d.ts +13 -0
- package/dist/service/lines.d.ts.map +1 -0
- package/dist/service/lines.js +89 -0
- package/dist/service/lines.js.map +1 -0
- package/dist/service/paths.d.ts +19 -0
- package/dist/service/paths.d.ts.map +1 -0
- package/dist/service/paths.js +27 -0
- package/dist/service/paths.js.map +1 -0
- package/dist/service/remote.d.ts +21 -0
- package/dist/service/remote.d.ts.map +1 -0
- package/dist/service/remote.js +83 -0
- package/dist/service/remote.js.map +1 -0
- package/dist/service/service-run.d.ts +3 -0
- package/dist/service/service-run.d.ts.map +1 -0
- package/dist/service/service-run.js +77 -0
- package/dist/service/service-run.js.map +1 -0
- package/dist/service/sid.d.ts +3 -0
- package/dist/service/sid.d.ts.map +1 -0
- package/dist/service/sid.js +10 -0
- package/dist/service/sid.js.map +1 -0
- package/dist/service/task.d.ts +11 -0
- package/dist/service/task.d.ts.map +1 -0
- package/dist/service/task.js +38 -0
- package/dist/service/task.js.map +1 -0
- package/dist/service/wire.d.ts +53 -0
- package/dist/service/wire.d.ts.map +1 -0
- package/dist/service/wire.js +17 -0
- package/dist/service/wire.js.map +1 -0
- package/dist/typing/android.d.ts +14 -0
- package/dist/typing/android.d.ts.map +1 -0
- package/dist/typing/android.js +117 -0
- package/dist/typing/android.js.map +1 -0
- package/dist/typing/index.d.ts +9 -0
- package/dist/typing/index.d.ts.map +1 -0
- package/dist/typing/index.js +21 -0
- package/dist/typing/index.js.map +1 -0
- package/dist/typing/linux.d.ts +6 -0
- package/dist/typing/linux.d.ts.map +1 -0
- package/dist/typing/linux.js +72 -0
- package/dist/typing/linux.js.map +1 -0
- package/dist/typing/mac.d.ts +5 -0
- package/dist/typing/mac.d.ts.map +1 -0
- package/dist/typing/mac.js +40 -0
- package/dist/typing/mac.js.map +1 -0
- package/dist/typing/typist.d.ts +32 -0
- package/dist/typing/typist.d.ts.map +1 -0
- package/dist/typing/typist.js +9 -0
- package/dist/typing/typist.js.map +1 -0
- package/dist/typing/windows.d.ts +4 -0
- package/dist/typing/windows.d.ts.map +1 -0
- package/dist/typing/windows.js +200 -0
- package/dist/typing/windows.js.map +1 -0
- package/dist/vault.d.ts +530 -0
- package/dist/vault.d.ts.map +1 -0
- package/dist/vault.js +188 -0
- package/dist/vault.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +10 -0
- package/dist/version.js.map +1 -0
- package/package.json +56 -3
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { KEYRING_GRANT_TTL_MAX_MS } from "@intentic/sandbox-contract/schemas/keyring";
|
|
2
|
+
const nobodyToAsk = (request, reason) => request.unlock ? { ok: false, code: "locked", reason: `The keyring is locked and ${reason}` } : { ok: false, code: "declined", reason: `Nobody could be asked: ${reason}` };
|
|
3
|
+
export const refusingConsent = (why) => ({
|
|
4
|
+
ask: (request) => Promise.resolve(nobodyToAsk(request, why)),
|
|
5
|
+
hello: undefined,
|
|
6
|
+
});
|
|
7
|
+
const PASSPHRASE_TRIES = 3;
|
|
8
|
+
export const passphraseConsent = (prompt) => ({
|
|
9
|
+
hello: undefined,
|
|
10
|
+
ask: async (request) => {
|
|
11
|
+
const opener = request.opener;
|
|
12
|
+
if (opener === undefined) {
|
|
13
|
+
return nobodyToAsk(request, "the keyring is not set up yet: `intentic-machine keyring setup` sets it up.");
|
|
14
|
+
}
|
|
15
|
+
for (let attempt = 1; attempt <= PASSPHRASE_TRIES; attempt++) {
|
|
16
|
+
const message = attempt === 1 ? request.message : `That was not the keyring's passphrase. ${request.message}`;
|
|
17
|
+
const answer = await prompt({ title: request.title, message });
|
|
18
|
+
if (answer.kind === "cancelled") {
|
|
19
|
+
return { ok: false, code: "declined", reason: "The person at the computer said no." };
|
|
20
|
+
}
|
|
21
|
+
if (answer.kind === "unavailable") {
|
|
22
|
+
return nobodyToAsk(request, `no passphrase prompt could be shown: ${answer.reason}.`);
|
|
23
|
+
}
|
|
24
|
+
const vaultKey = await opener.withPassphrase(answer.passphrase);
|
|
25
|
+
if (vaultKey !== undefined) {
|
|
26
|
+
return { ok: true, vaultKey, how: "passphrase" };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return { ok: false, code: "declined", reason: `The passphrase was not the keyring's, ${String(PASSPHRASE_TRIES)} times.` };
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
export const helloConsent = (hello, fallback) => ({
|
|
33
|
+
hello,
|
|
34
|
+
ask: async (request) => {
|
|
35
|
+
const notice = { title: request.title, message: request.message };
|
|
36
|
+
if (!(await hello.available())) {
|
|
37
|
+
return await fallback.ask(request);
|
|
38
|
+
}
|
|
39
|
+
const opener = request.opener?.hello;
|
|
40
|
+
if (request.unlock) {
|
|
41
|
+
if (opener === undefined) {
|
|
42
|
+
return await fallback.ask(request);
|
|
43
|
+
}
|
|
44
|
+
const signed = await hello.sign(opener.credential, opener.challenge, notice);
|
|
45
|
+
if (!signed.ok) {
|
|
46
|
+
return signed.cancelled ? { ok: false, code: "declined", reason: "The person at the computer said no." } : await fallback.ask(request);
|
|
47
|
+
}
|
|
48
|
+
const vaultKey = opener.withSignature(signed.value);
|
|
49
|
+
return vaultKey === undefined ? await fallback.ask(request) : { ok: true, vaultKey, how: "hello" };
|
|
50
|
+
}
|
|
51
|
+
const verified = await hello.verify(notice);
|
|
52
|
+
if (verified.ok) {
|
|
53
|
+
return { ok: true, vaultKey: undefined, how: "verified" };
|
|
54
|
+
}
|
|
55
|
+
return verified.cancelled ? { ok: false, code: "declined", reason: "The person at the computer said no." } : await fallback.ask(request);
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
export const serialConsent = (inner, defaultWaitMs = KEYRING_GRANT_TTL_MAX_MS) => {
|
|
59
|
+
let tail = Promise.resolve();
|
|
60
|
+
return {
|
|
61
|
+
hello: inner.hello,
|
|
62
|
+
ask: async (request) => {
|
|
63
|
+
const before = tail;
|
|
64
|
+
let release = () => undefined;
|
|
65
|
+
const mine = new Promise((resolve) => {
|
|
66
|
+
release = resolve;
|
|
67
|
+
});
|
|
68
|
+
tail = before.then(async () => await mine);
|
|
69
|
+
let timer;
|
|
70
|
+
const late = new Promise((resolve) => {
|
|
71
|
+
timer = setTimeout(() => resolve("late"), request.waitMs ?? defaultWaitMs);
|
|
72
|
+
timer.unref?.();
|
|
73
|
+
});
|
|
74
|
+
const turn = await Promise.race([before.then(() => "turn"), late]);
|
|
75
|
+
clearTimeout(timer);
|
|
76
|
+
if (turn === "late") {
|
|
77
|
+
void before.then(release);
|
|
78
|
+
return { ok: false, code: "busy", reason: "Another prompt is open at the computer: ask again once it is answered." };
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
return await inner.ask(request);
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
release();
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=consent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consent.js","sourceRoot":"","sources":["../../src/consent/consent.ts"],"names":[],"mappings":"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"}
|
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type KeyringInboxItem, type KeyringSandboxKeys, type KeyringSyncItem, type SealedBox } from "@intentic/sandbox-contract/schemas/keyring";
|
|
2
|
+
import type { Audit } from "./audit.js";
|
|
3
|
+
import type { BackendReader } from "./backends.js";
|
|
4
|
+
import type { Consent } from "./consent/consent.js";
|
|
5
|
+
import { type KeysFile } from "./keys.js";
|
|
6
|
+
import type { KeyringRequest, KeyringResponse } from "./protocol.js";
|
|
7
|
+
import type { Typist } from "./typing/typist.js";
|
|
8
|
+
import { type ScryptCost, type VaultFile } from "./vault.js";
|
|
9
|
+
export interface KeyringDeps {
|
|
10
|
+
readonly vault: {
|
|
11
|
+
readonly read: () => Promise<VaultFile | undefined>;
|
|
12
|
+
readonly write: (file: VaultFile) => Promise<void>;
|
|
13
|
+
};
|
|
14
|
+
readonly keys: {
|
|
15
|
+
readonly read: () => Promise<KeysFile>;
|
|
16
|
+
readonly write: (keys: KeysFile) => Promise<void>;
|
|
17
|
+
};
|
|
18
|
+
readonly consent: Consent;
|
|
19
|
+
readonly typist: Typist;
|
|
20
|
+
readonly backends: BackendReader;
|
|
21
|
+
readonly fetchKeys: (sandbox: string) => Promise<KeyringSandboxKeys>;
|
|
22
|
+
readonly audit: Audit;
|
|
23
|
+
readonly now: () => number;
|
|
24
|
+
readonly sleep: (ms: number) => Promise<void>;
|
|
25
|
+
readonly version: string;
|
|
26
|
+
readonly helloCredential: string;
|
|
27
|
+
readonly scrypt?: ScryptCost;
|
|
28
|
+
}
|
|
29
|
+
type Op = KeyringRequest["op"];
|
|
30
|
+
type RequestOf<K extends Op> = Extract<KeyringRequest, {
|
|
31
|
+
op: K;
|
|
32
|
+
}>;
|
|
33
|
+
type Answer<K extends Op> = Promise<KeyringResponse<K>>;
|
|
34
|
+
export declare class Keyring {
|
|
35
|
+
#private;
|
|
36
|
+
private readonly deps;
|
|
37
|
+
constructor(deps: KeyringDeps);
|
|
38
|
+
handle(request: KeyringRequest): Promise<KeyringResponse<Op>>;
|
|
39
|
+
state(): Answer<"state">;
|
|
40
|
+
setup(passphrase: string, withHello: boolean): Answer<"setup">;
|
|
41
|
+
unlock(minutes: number): Answer<"unlock">;
|
|
42
|
+
list(): KeyringResponse<"list">;
|
|
43
|
+
add(request: RequestOf<"add">): Answer<"add">;
|
|
44
|
+
edit(request: RequestOf<"edit">): Answer<"edit">;
|
|
45
|
+
remove(name: string): Answer<"remove">;
|
|
46
|
+
share(asked: RequestOf<"share">): Answer<"share">;
|
|
47
|
+
unshare(name: string, asked: string): Answer<"unshare">;
|
|
48
|
+
backend(config: RequestOf<"backend">["config"]): Answer<"backend">;
|
|
49
|
+
shares(sandbox: string): KeyringResponse<"shares">;
|
|
50
|
+
release(signed: RequestOf<"release">["grant"]): Answer<"release">;
|
|
51
|
+
type(signed: RequestOf<"type">["input"]["grant"], box: SealedBox | undefined): Answer<"type">;
|
|
52
|
+
inbox(item: KeyringInboxItem): Answer<"inbox">;
|
|
53
|
+
syncState(): Answer<"sync-state">;
|
|
54
|
+
syncPair(pair: RequestOf<"sync-pair">["pair"]): Answer<"sync-pair">;
|
|
55
|
+
syncOutbox(): Answer<"sync-outbox">;
|
|
56
|
+
syncDeliver(items: readonly KeyringSyncItem[]): Answer<"sync-deliver">;
|
|
57
|
+
askpass(prompt: string, parent: string | undefined): Answer<"askpass">;
|
|
58
|
+
consentUpgrade(version: string): Answer<"consent-upgrade">;
|
|
59
|
+
}
|
|
60
|
+
export {};
|
|
61
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|