@byok-sdk/core 0.29.0 → 0.30.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.
- package/dist/index.js +18 -9
- package/dist/index.js.map +1 -1
- package/dist/sealed-payload/index.d.ts +10 -0
- package/dist/sealed-payload/index.js +573 -26
- package/dist/sealed-payload/index.js.map +1 -1
- package/dist/sealed-payload/member-bundle.d.ts +64 -0
- package/dist/sealed-payload/member-chain-walk.d.ts +77 -0
- package/dist/sealed-payload/member-fingerprint.d.ts +14 -0
- package/dist/sealed-payload/member-key-record.d.ts +61 -0
- package/dist/sealed-payload/pairing-verification.d.ts +51 -0
- package/dist/sealed-payload/sealed-blob.d.ts +94 -0
- package/dist/sealed-payload/sealed-content.d.ts +3 -2
- package/dist/sealed-payload/sealed-json.d.ts +17 -0
- package/dist/total-parse.d.ts +20 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1277,6 +1277,15 @@ async function hpkeOpenBase(input) {
|
|
|
1277
1277
|
return hpkeAeadOpen(schedule, 0, input.aad, input.ciphertext);
|
|
1278
1278
|
}
|
|
1279
1279
|
|
|
1280
|
+
// src/total-parse.ts
|
|
1281
|
+
function safeParseTotal(schema, value) {
|
|
1282
|
+
try {
|
|
1283
|
+
return schema.safeParse(value);
|
|
1284
|
+
} catch {
|
|
1285
|
+
return { success: false };
|
|
1286
|
+
}
|
|
1287
|
+
}
|
|
1288
|
+
|
|
1280
1289
|
// src/sealed-provider-secret.ts
|
|
1281
1290
|
var PROVIDER_SECRET_HPKE_SUITE = "hpke-base.dhkem-p256-hkdf-sha256.hkdf-sha256.aes-128-gcm";
|
|
1282
1291
|
var PROVIDER_SECRET_HPKE_INFO = "byok-sdk.provider-secret.v1";
|
|
@@ -1363,7 +1372,7 @@ var SealingPublicJwkSchema = z.strictObject({
|
|
|
1363
1372
|
});
|
|
1364
1373
|
var SealingKeyIdSchema = z.string().regex(new RegExp(`^[A-Za-z0-9_-]{${SEALING_KEY_ID_LENGTH}}$`));
|
|
1365
1374
|
function parseSealingPublicJwk(input) {
|
|
1366
|
-
const result = SealingPublicJwkSchema
|
|
1375
|
+
const result = safeParseTotal(SealingPublicJwkSchema, input);
|
|
1367
1376
|
if (!result.success) {
|
|
1368
1377
|
throw new ByokCoreError("sealed_secret_invalid", "Sealing public key must be a strict P-256 EC public JWK");
|
|
1369
1378
|
}
|
|
@@ -1389,7 +1398,7 @@ var SealingKeyClaimV1Schema = z.strictObject({
|
|
|
1389
1398
|
publicJwk: SealingPublicJwkSchema
|
|
1390
1399
|
});
|
|
1391
1400
|
function sealingKeyClaimCanonicalBytes(claim) {
|
|
1392
|
-
const result = SealingKeyClaimV1Schema
|
|
1401
|
+
const result = safeParseTotal(SealingKeyClaimV1Schema, claim);
|
|
1393
1402
|
if (!result.success) {
|
|
1394
1403
|
throw new ByokCoreError("sealed_secret_invalid", "Sealing key claim is invalid");
|
|
1395
1404
|
}
|
|
@@ -1486,11 +1495,11 @@ var ProviderProvisioningRequestV1Schema = z.strictObject({
|
|
|
1486
1495
|
}
|
|
1487
1496
|
});
|
|
1488
1497
|
function parseProviderProvisioningRequest(input) {
|
|
1489
|
-
const result = ProviderProvisioningRequestV1Schema
|
|
1498
|
+
const result = safeParseTotal(ProviderProvisioningRequestV1Schema, input);
|
|
1490
1499
|
if (!result.success) {
|
|
1491
1500
|
throw new ByokCoreError(
|
|
1492
1501
|
"provider_provisioning_request_invalid",
|
|
1493
|
-
`Invalid provider provisioning request: ${result.error
|
|
1502
|
+
`Invalid provider provisioning request: ${(result.error?.issues ?? [{ path: [], message: "is not readable" }]).map((issue) => `${issue.path.join(".") || "<root>"}: ${issue.message}`).join("; ")}`
|
|
1494
1503
|
);
|
|
1495
1504
|
}
|
|
1496
1505
|
return result.data;
|
|
@@ -1499,15 +1508,15 @@ function configJson(config) {
|
|
|
1499
1508
|
return config;
|
|
1500
1509
|
}
|
|
1501
1510
|
async function providerProvisioningConfigDigest(config) {
|
|
1502
|
-
const result = ProviderProvisioningConfigV1Schema
|
|
1511
|
+
const result = safeParseTotal(ProviderProvisioningConfigV1Schema, config);
|
|
1503
1512
|
if (!result.success) {
|
|
1504
1513
|
throw new ByokCoreError("provider_provisioning_request_invalid", "Provider provisioning config is invalid");
|
|
1505
1514
|
}
|
|
1506
1515
|
return contentDigest(configJson(result.data));
|
|
1507
1516
|
}
|
|
1508
1517
|
function providerSecretAadBytes(header, keyId) {
|
|
1509
|
-
const parsed = ProviderProvisioningHeaderV1Schema
|
|
1510
|
-
if (!parsed.success || !SealingKeyIdSchema
|
|
1518
|
+
const parsed = safeParseTotal(ProviderProvisioningHeaderV1Schema, header);
|
|
1519
|
+
if (!parsed.success || !safeParseTotal(SealingKeyIdSchema, keyId).success) {
|
|
1511
1520
|
throw new ByokCoreError("provider_provisioning_request_invalid", "Provider provisioning AAD input is invalid");
|
|
1512
1521
|
}
|
|
1513
1522
|
const value = parsed.data;
|
|
@@ -1575,12 +1584,12 @@ function unpadProviderSecret(padded) {
|
|
|
1575
1584
|
}
|
|
1576
1585
|
var INFO_BYTES = () => new TextEncoder().encode(PROVIDER_SECRET_HPKE_INFO);
|
|
1577
1586
|
async function sealProviderProvisioningRequest(input) {
|
|
1578
|
-
const configResult = ProviderProvisioningConfigV1Schema
|
|
1587
|
+
const configResult = safeParseTotal(ProviderProvisioningConfigV1Schema, input.config);
|
|
1579
1588
|
if (!configResult.success) {
|
|
1580
1589
|
throw new ByokCoreError("provider_provisioning_request_invalid", "Provider provisioning config is invalid");
|
|
1581
1590
|
}
|
|
1582
1591
|
const config = configResult.data;
|
|
1583
|
-
const headerResult = ProviderProvisioningHeaderV1Schema
|
|
1592
|
+
const headerResult = safeParseTotal(ProviderProvisioningHeaderV1Schema, {
|
|
1584
1593
|
...input.header,
|
|
1585
1594
|
configDigest: await providerProvisioningConfigDigest(config)
|
|
1586
1595
|
});
|