@tokensrc/codex 1.13.4 → 1.14.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/README.md +79 -3
- package/dist/client.d.ts +29 -1
- package/dist/client.js +221 -2
- package/dist/client.js.map +1 -1
- package/dist/command-directory.d.ts +1 -0
- package/dist/command-directory.js +3 -2
- package/dist/command-directory.js.map +1 -1
- package/dist/commands.d.ts +8 -2
- package/dist/commands.js +567 -40
- package/dist/commands.js.map +1 -1
- package/dist/console-status.js +1 -1
- package/dist/console-status.js.map +1 -1
- package/dist/credential-supervisor.d.ts +17 -0
- package/dist/credential-supervisor.js +84 -0
- package/dist/credential-supervisor.js.map +1 -0
- package/dist/credentials.d.ts +75 -3
- package/dist/credentials.js +357 -12
- package/dist/credentials.js.map +1 -1
- package/dist/enrollment-envelope.d.ts +18 -0
- package/dist/enrollment-envelope.js +112 -0
- package/dist/enrollment-envelope.js.map +1 -0
- package/dist/enrollment-flow.d.ts +27 -0
- package/dist/enrollment-flow.js +224 -0
- package/dist/enrollment-flow.js.map +1 -0
- package/dist/enrollment-login.d.ts +26 -0
- package/dist/enrollment-login.js +104 -0
- package/dist/enrollment-login.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +17 -3
- package/dist/index.js.map +1 -1
- package/dist/managed-credential-v3-envelope.d.ts +60 -0
- package/dist/managed-credential-v3-envelope.js +234 -0
- package/dist/managed-credential-v3-envelope.js.map +1 -0
- package/dist/managed-credential-v3-flow.d.ts +45 -0
- package/dist/managed-credential-v3-flow.js +499 -0
- package/dist/managed-credential-v3-flow.js.map +1 -0
- package/dist/managed-credential-v3-journal.d.ts +192 -0
- package/dist/managed-credential-v3-journal.js +153 -0
- package/dist/managed-credential-v3-journal.js.map +1 -0
- package/dist/managed-credential-v3.d.ts +117 -0
- package/dist/managed-credential-v3.js +423 -0
- package/dist/managed-credential-v3.js.map +1 -0
- package/dist/migration-login-batch.d.ts +66 -0
- package/dist/migration-login-batch.js +202 -0
- package/dist/migration-login-batch.js.map +1 -0
- package/dist/private-file.d.ts +10 -0
- package/dist/private-file.js +77 -2
- package/dist/private-file.js.map +1 -1
- package/dist/profile.d.ts +10 -0
- package/dist/profile.js +55 -2
- package/dist/profile.js.map +1 -1
- package/dist/protocol.d.ts +1070 -0
- package/dist/protocol.js +560 -0
- package/dist/protocol.js.map +1 -1
- package/dist/retirement-flow.d.ts +38 -0
- package/dist/retirement-flow.js +78 -0
- package/dist/retirement-flow.js.map +1 -0
- package/dist/runtime.d.ts +4 -1
- package/dist/runtime.js +29 -4
- package/dist/runtime.js.map +1 -1
- package/dist/selection.d.ts +10 -1
- package/dist/selection.js +38 -2
- package/dist/selection.js.map +1 -1
- package/dist/short-lived-delivery-flow.d.ts +41 -0
- package/dist/short-lived-delivery-flow.js +141 -0
- package/dist/short-lived-delivery-flow.js.map +1 -0
- package/dist/short-lived-delivery-journal.d.ts +34 -0
- package/dist/short-lived-delivery-journal.js +137 -0
- package/dist/short-lived-delivery-journal.js.map +1 -0
- package/dist/short-lived-delivery.d.ts +26 -0
- package/dist/short-lived-delivery.js +139 -0
- package/dist/short-lived-delivery.js.map +1 -0
- package/dist/tui.js +23 -0
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +6 -2
- package/package.json +2 -2
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { createCipheriv, createDecipheriv, createPublicKey, diffieHellman, generateKeyPairSync, hkdfSync, randomBytes } from "node:crypto";
|
|
2
|
+
import { CodexServiceError } from "./errors.js";
|
|
3
|
+
import { CodexV3FullCredentialBundleSchema } from "./protocol.js";
|
|
4
|
+
const ALGORITHM = "X25519-HKDF-SHA256-AES-256-GCM";
|
|
5
|
+
const ENROLLMENT_KDF = "active-code-inbox/codex-enrollment-candidate/key/v1\0";
|
|
6
|
+
const DELIVERY_KDF = "active-code-inbox/codex-short-lived-delivery/key/v1\0";
|
|
7
|
+
const BASE64URL = /^[A-Za-z0-9_-]+$/u;
|
|
8
|
+
const MAX_TOKEN_BYTES = 65_536;
|
|
9
|
+
export function codexV3EnrollmentAad(input) {
|
|
10
|
+
return Buffer.from(JSON.stringify({
|
|
11
|
+
schemaVersion: 3,
|
|
12
|
+
purpose: "ENROLLMENT",
|
|
13
|
+
tenant: required(input.tenantId, "tenantId"),
|
|
14
|
+
subject: required(input.subject, "subject"),
|
|
15
|
+
clientRequestId: required(input.clientRequestId, "clientRequestId"),
|
|
16
|
+
idempotencyKey: required(input.idempotencyKey, "idempotencyKey"),
|
|
17
|
+
keyId: required(input.keyId, "keyId")
|
|
18
|
+
}), "utf8");
|
|
19
|
+
}
|
|
20
|
+
export function codexV3GenerationReportAad(input) {
|
|
21
|
+
return Buffer.from(JSON.stringify({
|
|
22
|
+
schemaVersion: 3,
|
|
23
|
+
purpose: "GENERATION_REPORT",
|
|
24
|
+
tenant: required(input.tenantId, "tenantId"),
|
|
25
|
+
subject: required(input.subject, "subject"),
|
|
26
|
+
lineageId: required(input.lineageId, "lineageId"),
|
|
27
|
+
clientRequestId: required(input.clientRequestId, "clientRequestId"),
|
|
28
|
+
idempotencyKey: required(input.idempotencyKey, "idempotencyKey"),
|
|
29
|
+
expectedGenerationVersion: positive(input.expectedGenerationVersion, "expectedGenerationVersion"),
|
|
30
|
+
rotationMode: input.rotationMode,
|
|
31
|
+
keyId: required(input.keyId, "keyId")
|
|
32
|
+
}), "utf8");
|
|
33
|
+
}
|
|
34
|
+
export function sealCodexV3Enrollment(input) {
|
|
35
|
+
return sealToServer({
|
|
36
|
+
ingress: input.ingress,
|
|
37
|
+
aad: codexV3EnrollmentAad({ ...input, keyId: input.ingress.keyId }),
|
|
38
|
+
plaintext: {
|
|
39
|
+
schemaVersion: 3,
|
|
40
|
+
refreshToken: secret(input.credentials.refreshToken, "refreshToken"),
|
|
41
|
+
accessToken: secret(input.credentials.accessToken, "accessToken"),
|
|
42
|
+
idToken: secret(input.credentials.idToken, "idToken"),
|
|
43
|
+
providerAccountId: required(input.credentials.providerAccountId, "providerAccountId"),
|
|
44
|
+
expiresAt: instant(input.credentials.expiresAt, "expiresAt")
|
|
45
|
+
},
|
|
46
|
+
request: (envelope) => ({ clientRequestId: input.clientRequestId, envelope })
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
export function sealCodexV3GenerationReport(input) {
|
|
50
|
+
return sealToServer({
|
|
51
|
+
ingress: input.ingress,
|
|
52
|
+
aad: codexV3GenerationReportAad({ ...input, keyId: input.ingress.keyId }),
|
|
53
|
+
plaintext: {
|
|
54
|
+
schemaVersion: 3,
|
|
55
|
+
refreshToken: secret(input.credentials.refreshToken, "refreshToken"),
|
|
56
|
+
accessToken: secret(input.credentials.accessToken, "accessToken"),
|
|
57
|
+
idToken: secret(input.credentials.idToken, "idToken"),
|
|
58
|
+
providerAccountId: required(input.credentials.providerAccountId, "providerAccountId"),
|
|
59
|
+
expiresAt: instant(input.credentials.expiresAt, "expiresAt")
|
|
60
|
+
},
|
|
61
|
+
request: (envelope) => ({
|
|
62
|
+
clientRequestId: input.clientRequestId,
|
|
63
|
+
expectedGenerationVersion: input.expectedGenerationVersion,
|
|
64
|
+
rotationMode: input.rotationMode,
|
|
65
|
+
envelope
|
|
66
|
+
})
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function sealToServer(input) {
|
|
70
|
+
if (input.ingress.envelopeVersion !== 1 || input.ingress.algorithm !== ALGORITHM) {
|
|
71
|
+
throw invalidEnvelope("The account service advertised an unsupported v3 credential envelope.");
|
|
72
|
+
}
|
|
73
|
+
let plaintext;
|
|
74
|
+
let sharedSecret;
|
|
75
|
+
let key;
|
|
76
|
+
try {
|
|
77
|
+
decodeBase64url(input.ingress.publicKey, 32, "Invalid v3 ingress public key.");
|
|
78
|
+
plaintext = Buffer.from(JSON.stringify(input.plaintext), "utf8");
|
|
79
|
+
if (plaintext.length > input.ingress.maxCiphertextBytes) {
|
|
80
|
+
throw invalidEnvelope("The v3 credential bundle exceeds the service limit.");
|
|
81
|
+
}
|
|
82
|
+
const { publicKey, privateKey } = generateKeyPairSync("x25519");
|
|
83
|
+
const exported = publicKey.export({ format: "jwk" });
|
|
84
|
+
if (exported.kty !== "OKP" || exported.crv !== "X25519" || typeof exported.x !== "string") {
|
|
85
|
+
throw invalidEnvelope("Unable to create a v3 credential encryption key.");
|
|
86
|
+
}
|
|
87
|
+
const salt = randomBytes(32);
|
|
88
|
+
const nonce = randomBytes(12);
|
|
89
|
+
const remote = createPublicKey({
|
|
90
|
+
key: { kty: "OKP", crv: "X25519", x: input.ingress.publicKey },
|
|
91
|
+
format: "jwk"
|
|
92
|
+
});
|
|
93
|
+
sharedSecret = diffieHellman({ privateKey, publicKey: remote });
|
|
94
|
+
key = Buffer.from(hkdfSync("sha256", sharedSecret, salt, Buffer.from(`${ENROLLMENT_KDF}${input.ingress.keyId}`, "utf8"), 32));
|
|
95
|
+
const cipher = createCipheriv("aes-256-gcm", key, nonce, { authTagLength: 16 });
|
|
96
|
+
cipher.setAAD(input.aad);
|
|
97
|
+
const ciphertext = Buffer.concat([cipher.update(plaintext), cipher.final()]);
|
|
98
|
+
const envelope = {
|
|
99
|
+
version: 1,
|
|
100
|
+
algorithm: ALGORITHM,
|
|
101
|
+
keyId: input.ingress.keyId,
|
|
102
|
+
ephemeralPublicKey: exported.x,
|
|
103
|
+
salt: salt.toString("base64url"),
|
|
104
|
+
nonce: nonce.toString("base64url"),
|
|
105
|
+
ciphertext: ciphertext.toString("base64url"),
|
|
106
|
+
authenticationTag: cipher.getAuthTag().toString("base64url")
|
|
107
|
+
};
|
|
108
|
+
if (Buffer.byteLength(JSON.stringify(input.request(envelope)), "utf8") > input.ingress.maxRequestBytes) {
|
|
109
|
+
throw invalidEnvelope("The v3 credential request exceeds the service limit.");
|
|
110
|
+
}
|
|
111
|
+
return envelope;
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
if (error instanceof CodexServiceError)
|
|
115
|
+
throw error;
|
|
116
|
+
throw invalidEnvelope("Unable to create the authenticated v3 credential envelope.");
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
input.aad.fill(0);
|
|
120
|
+
plaintext?.fill(0);
|
|
121
|
+
sharedSecret?.fill(0);
|
|
122
|
+
key?.fill(0);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
export function createCodexV3DeliveryKeyPair() {
|
|
126
|
+
const { publicKey, privateKey } = generateKeyPairSync("x25519");
|
|
127
|
+
const exported = publicKey.export({ format: "jwk" });
|
|
128
|
+
if (exported.kty !== "OKP" || exported.crv !== "X25519" || typeof exported.x !== "string") {
|
|
129
|
+
throw invalidEnvelope("Unable to create a v3 delivery key.");
|
|
130
|
+
}
|
|
131
|
+
decodeBase64url(exported.x, 32, "Unable to create a v3 delivery key.");
|
|
132
|
+
return { clientKey: { version: 1, algorithm: ALGORITHM, publicKey: exported.x }, privateKey };
|
|
133
|
+
}
|
|
134
|
+
export function codexV3FullDeliveryAad(input) {
|
|
135
|
+
const delivery = input.delivery;
|
|
136
|
+
return Buffer.from(JSON.stringify({
|
|
137
|
+
schemaVersion: 3,
|
|
138
|
+
tenant: required(input.tenantId, "tenantId"),
|
|
139
|
+
subject: required(delivery.subject, "subject"),
|
|
140
|
+
assignmentId: required(delivery.assignmentId, "assignmentId"),
|
|
141
|
+
managedAccountId: required(delivery.managedAccountId, "managedAccountId"),
|
|
142
|
+
providerAccountId: required(delivery.providerAccountId, "providerAccountId"),
|
|
143
|
+
lineageId: required(delivery.lineageId, "lineageId"),
|
|
144
|
+
generationVersion: positive(delivery.generationVersion, "generationVersion"),
|
|
145
|
+
deliveryId: required(delivery.id, "deliveryId"),
|
|
146
|
+
clientRequestId: required(delivery.clientRequestId, "clientRequestId"),
|
|
147
|
+
issuedAt: instant(delivery.issuedAt, "issuedAt"),
|
|
148
|
+
credentialExpiresAt: instant(delivery.credentialExpiresAt, "credentialExpiresAt"),
|
|
149
|
+
ackExpiresAt: instant(delivery.ackExpiresAt, "ackExpiresAt")
|
|
150
|
+
}), "utf8");
|
|
151
|
+
}
|
|
152
|
+
export function openCodexV3FullCredentialDelivery(input) {
|
|
153
|
+
const delivery = input.response.delivery;
|
|
154
|
+
if (input.privateKey.asymmetricKeyType !== "x25519" || delivery.envelope.version !== 1
|
|
155
|
+
|| delivery.envelope.algorithm !== ALGORITHM) {
|
|
156
|
+
throw invalidEnvelope("The account service returned an unsupported v3 delivery envelope.");
|
|
157
|
+
}
|
|
158
|
+
const ephemeral = decodeBase64url(delivery.envelope.ephemeralPublicKey, 32, "Invalid v3 delivery public key.");
|
|
159
|
+
const salt = decodeBase64url(delivery.envelope.salt, 32, "Invalid v3 delivery salt.");
|
|
160
|
+
const nonce = decodeBase64url(delivery.envelope.nonce, 12, "Invalid v3 delivery nonce.");
|
|
161
|
+
const tag = decodeBase64url(delivery.envelope.authenticationTag, 16, "Invalid v3 delivery tag.");
|
|
162
|
+
const ciphertext = decodeBase64url(delivery.envelope.ciphertext, undefined, "Invalid v3 delivery ciphertext.");
|
|
163
|
+
const remote = createPublicKey({ key: { kty: "OKP", crv: "X25519", x: ephemeral.toString("base64url") }, format: "jwk" });
|
|
164
|
+
const sharedSecret = diffieHellman({ privateKey: input.privateKey, publicKey: remote });
|
|
165
|
+
const key = Buffer.from(hkdfSync("sha256", sharedSecret, salt, Buffer.from(`${DELIVERY_KDF}${delivery.id}`, "utf8"), 32));
|
|
166
|
+
let plaintext;
|
|
167
|
+
const aad = codexV3FullDeliveryAad({ tenantId: input.tenantId, delivery });
|
|
168
|
+
try {
|
|
169
|
+
const decipher = createDecipheriv("aes-256-gcm", key, nonce, { authTagLength: 16 });
|
|
170
|
+
decipher.setAAD(aad);
|
|
171
|
+
decipher.setAuthTag(tag);
|
|
172
|
+
plaintext = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
173
|
+
const parsed = CodexV3FullCredentialBundleSchema.safeParse(JSON.parse(plaintext.toString("utf8")));
|
|
174
|
+
if (!parsed.success)
|
|
175
|
+
throw invalidEnvelope("The account service returned an invalid v3 credential bundle.");
|
|
176
|
+
const bundle = parsed.data;
|
|
177
|
+
if (bundle.deliveryId !== delivery.id || bundle.managedAccountId !== delivery.managedAccountId
|
|
178
|
+
|| bundle.providerAccountId !== delivery.providerAccountId || bundle.lineageId !== delivery.lineageId
|
|
179
|
+
|| bundle.generationVersion !== delivery.generationVersion || bundle.expiresAt !== delivery.credentialExpiresAt) {
|
|
180
|
+
throw invalidEnvelope("The v3 credential bundle does not match its delivery metadata.");
|
|
181
|
+
}
|
|
182
|
+
if (Date.parse(bundle.expiresAt) <= (input.now ?? Date.now())
|
|
183
|
+
|| Date.parse(delivery.ackExpiresAt) <= (input.now ?? Date.now())) {
|
|
184
|
+
throw new CodexServiceError("The v3 credential delivery has expired.", "full_credential_delivery_expired");
|
|
185
|
+
}
|
|
186
|
+
return bundle;
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
if (error instanceof CodexServiceError)
|
|
190
|
+
throw error;
|
|
191
|
+
throw invalidEnvelope("Unable to authenticate the v3 credential delivery.");
|
|
192
|
+
}
|
|
193
|
+
finally {
|
|
194
|
+
aad.fill(0);
|
|
195
|
+
plaintext?.fill(0);
|
|
196
|
+
sharedSecret.fill(0);
|
|
197
|
+
key.fill(0);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
function decodeBase64url(value, length, message) {
|
|
201
|
+
if (!value || !BASE64URL.test(value))
|
|
202
|
+
throw invalidEnvelope(message);
|
|
203
|
+
const decoded = Buffer.from(value, "base64url");
|
|
204
|
+
if ((length !== undefined && decoded.length !== length) || decoded.toString("base64url") !== value) {
|
|
205
|
+
throw invalidEnvelope(message);
|
|
206
|
+
}
|
|
207
|
+
return decoded;
|
|
208
|
+
}
|
|
209
|
+
function required(value, name) {
|
|
210
|
+
if (value !== value.trim() || value.length < 1 || value.length > 512) {
|
|
211
|
+
throw invalidEnvelope(`${name} is invalid.`);
|
|
212
|
+
}
|
|
213
|
+
return value;
|
|
214
|
+
}
|
|
215
|
+
function secret(value, name) {
|
|
216
|
+
if (!value || Buffer.byteLength(value, "utf8") > MAX_TOKEN_BYTES) {
|
|
217
|
+
throw invalidEnvelope(`${name} is invalid.`);
|
|
218
|
+
}
|
|
219
|
+
return value;
|
|
220
|
+
}
|
|
221
|
+
function positive(value, name) {
|
|
222
|
+
if (!Number.isInteger(value) || value <= 0)
|
|
223
|
+
throw invalidEnvelope(`${name} is invalid.`);
|
|
224
|
+
return value;
|
|
225
|
+
}
|
|
226
|
+
function instant(value, name) {
|
|
227
|
+
if (value !== value.trim() || !Number.isFinite(Date.parse(value)))
|
|
228
|
+
throw invalidEnvelope(`${name} is invalid.`);
|
|
229
|
+
return value;
|
|
230
|
+
}
|
|
231
|
+
function invalidEnvelope(message) {
|
|
232
|
+
return new CodexServiceError(message, "invalid_managed_codex_v3_envelope");
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=managed-credential-v3-envelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-credential-v3-envelope.js","sourceRoot":"","sources":["../src/managed-credential-v3-envelope.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { CodexServiceClient } from "./client.js";
|
|
2
|
+
type V3Client = Pick<CodexServiceClient, "getCurrentActorSubject" | "getV3EnrollmentConfiguration" | "createV3Enrollment" | "resolveV3Enrollment" | "createV3FullCredentialDelivery" | "resolveV3FullCredentialDelivery" | "acknowledgeV3FullCredentialDelivery" | "listV3CredentialAssignments" | "reportV3Generation" | "resolveV3GenerationReport">;
|
|
3
|
+
export interface ManagedCodexV3EnrollmentResult {
|
|
4
|
+
enrollmentId: string;
|
|
5
|
+
assignmentId: string;
|
|
6
|
+
managedAccountId: string;
|
|
7
|
+
providerAccountId: string;
|
|
8
|
+
lineageId: string;
|
|
9
|
+
generationVersion: number;
|
|
10
|
+
authorityMode: "CLIENT_MANAGED";
|
|
11
|
+
authorityEpoch: number;
|
|
12
|
+
credentialExpiresAt: string;
|
|
13
|
+
enrollmentReplayed: boolean;
|
|
14
|
+
deliveryReplayed: boolean;
|
|
15
|
+
ackReplayed: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function executeManagedCodexV3Login(input: {
|
|
18
|
+
client: V3Client;
|
|
19
|
+
tenantId: string;
|
|
20
|
+
env?: NodeJS.ProcessEnv;
|
|
21
|
+
deviceAuth?: boolean;
|
|
22
|
+
newId?: () => string;
|
|
23
|
+
now?: () => number;
|
|
24
|
+
wait?: (milliseconds: number) => Promise<void>;
|
|
25
|
+
}): Promise<ManagedCodexV3EnrollmentResult>;
|
|
26
|
+
export declare function executeManagedCodexV3Upload(input: {
|
|
27
|
+
client: V3Client;
|
|
28
|
+
tenantId: string;
|
|
29
|
+
env?: NodeJS.ProcessEnv;
|
|
30
|
+
newId?: () => string;
|
|
31
|
+
now?: () => number;
|
|
32
|
+
wait?: (milliseconds: number) => Promise<void>;
|
|
33
|
+
}): Promise<ManagedCodexV3EnrollmentResult>;
|
|
34
|
+
export declare function reportManagedCodexV3Credentials(input: {
|
|
35
|
+
client: V3Client;
|
|
36
|
+
tenantId: string;
|
|
37
|
+
env?: NodeJS.ProcessEnv;
|
|
38
|
+
newId?: () => string;
|
|
39
|
+
now?: () => number;
|
|
40
|
+
}): Promise<{
|
|
41
|
+
reported: boolean;
|
|
42
|
+
generationVersion?: number;
|
|
43
|
+
warningCode?: string;
|
|
44
|
+
}>;
|
|
45
|
+
export {};
|