@qnsp/tenant-sdk 0.2.0 → 0.3.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 CHANGED
@@ -1,49 +1,274 @@
1
1
  import { performance } from "node:perf_hooks";
2
+ import { activateSdk } from "@qnsp/sdk-activation";
2
3
  import { createTenantClientTelemetry, isTenantClientTelemetry } from "./observability.js";
3
4
  import { validateUUID } from "./validation.js";
4
5
  /**
5
6
  * Default algorithms per crypto policy tier.
7
+ * These match the definitions in packages/security/src/crypto-policy.ts
8
+ * and determine which algorithms appear in the portal's Generate Key dropdown.
9
+ *
10
+ * default: All supported PQC algorithms (NIST-finalized + candidates via liboqs)
11
+ * strict: NIST-finalized/selected at higher security levels
12
+ * maximum: Highest-security NIST-finalized only
13
+ * government: FIPS-finalized only (no draft standards)
6
14
  */
7
15
  export const CRYPTO_POLICY_ALGORITHMS = {
8
16
  default: {
9
- kemAlgorithms: ["kyber-512", "kyber-768", "kyber-1024"],
10
- signatureAlgorithms: ["dilithium-2", "dilithium-3", "dilithium-5"],
17
+ kemAlgorithms: [
18
+ // FIPS 203 — ML-KEM (NIST finalized)
19
+ "kyber-512",
20
+ "kyber-768",
21
+ "kyber-1024",
22
+ // HQC (NIST selected March 2025)
23
+ "hqc-128",
24
+ "hqc-192",
25
+ "hqc-256",
26
+ // BIKE (NIST Round 4 candidate)
27
+ "bike-l1",
28
+ "bike-l3",
29
+ "bike-l5",
30
+ // Classic McEliece (ISO standard)
31
+ "mceliece-348864",
32
+ "mceliece-460896",
33
+ "mceliece-6688128",
34
+ "mceliece-6960119",
35
+ "mceliece-8192128",
36
+ // FrodoKEM (ISO standard)
37
+ "frodokem-640-aes",
38
+ "frodokem-640-shake",
39
+ "frodokem-976-aes",
40
+ "frodokem-976-shake",
41
+ "frodokem-1344-aes",
42
+ "frodokem-1344-shake",
43
+ // NTRU (lattice-based)
44
+ "ntru-hps-2048-509",
45
+ "ntru-hps-2048-677",
46
+ "ntru-hps-4096-821",
47
+ "ntru-hps-4096-1229",
48
+ "ntru-hrss-701",
49
+ "ntru-hrss-1373",
50
+ // NTRU-Prime
51
+ "sntrup761",
52
+ ],
53
+ signatureAlgorithms: [
54
+ // FIPS 204 — ML-DSA (NIST finalized)
55
+ "dilithium-2",
56
+ "dilithium-3",
57
+ "dilithium-5",
58
+ // FIPS 205 — SLH-DSA (NIST finalized, SHA-2 variants)
59
+ "sphincs-sha2-128f-simple",
60
+ "sphincs-sha2-128s-simple",
61
+ "sphincs-sha2-192f-simple",
62
+ "sphincs-sha2-192s-simple",
63
+ "sphincs-sha2-256f-simple",
64
+ "sphincs-sha2-256s-simple",
65
+ // FIPS 205 — SLH-DSA (NIST finalized, SHAKE variants)
66
+ "sphincs-shake-128f-simple",
67
+ "sphincs-shake-128s-simple",
68
+ "sphincs-shake-192f-simple",
69
+ "sphincs-shake-192s-simple",
70
+ "sphincs-shake-256f-simple",
71
+ "sphincs-shake-256s-simple",
72
+ // FN-DSA / Falcon (FIPS 206 draft)
73
+ "falcon-512",
74
+ "falcon-1024",
75
+ // MAYO (NIST Additional Signatures Round 2)
76
+ "mayo-1",
77
+ "mayo-2",
78
+ "mayo-3",
79
+ "mayo-5",
80
+ // CROSS (NIST Additional Signatures Round 2)
81
+ "cross-rsdp-128-balanced",
82
+ "cross-rsdp-128-fast",
83
+ "cross-rsdp-128-small",
84
+ "cross-rsdp-192-balanced",
85
+ "cross-rsdp-192-fast",
86
+ "cross-rsdp-192-small",
87
+ "cross-rsdp-256-balanced",
88
+ "cross-rsdp-256-fast",
89
+ "cross-rsdp-256-small",
90
+ "cross-rsdpg-128-balanced",
91
+ "cross-rsdpg-128-fast",
92
+ "cross-rsdpg-128-small",
93
+ "cross-rsdpg-192-balanced",
94
+ "cross-rsdpg-192-fast",
95
+ "cross-rsdpg-192-small",
96
+ "cross-rsdpg-256-balanced",
97
+ "cross-rsdpg-256-fast",
98
+ "cross-rsdpg-256-small",
99
+ // UOV (NIST Additional Signatures Round 2)
100
+ "ov-Is",
101
+ "ov-Ip",
102
+ "ov-III",
103
+ "ov-V",
104
+ "ov-Is-pkc",
105
+ "ov-Ip-pkc",
106
+ "ov-III-pkc",
107
+ "ov-V-pkc",
108
+ "ov-Is-pkc-skc",
109
+ "ov-Ip-pkc-skc",
110
+ "ov-III-pkc-skc",
111
+ "ov-V-pkc-skc",
112
+ // SNOVA (NIST Additional Signatures Round 2)
113
+ "snova-24-5-4",
114
+ "snova-24-5-4-shake",
115
+ "snova-24-5-4-esk",
116
+ "snova-24-5-4-shake-esk",
117
+ "snova-25-8-3",
118
+ "snova-37-17-2",
119
+ "snova-37-8-4",
120
+ "snova-24-5-5",
121
+ "snova-56-25-2",
122
+ "snova-49-11-3",
123
+ "snova-60-10-4",
124
+ "snova-29-6-5",
125
+ ],
11
126
  defaultKemAlgorithm: "kyber-768",
12
127
  defaultSignatureAlgorithm: "dilithium-3",
13
128
  },
14
129
  strict: {
15
- kemAlgorithms: ["kyber-768", "kyber-1024"],
16
- signatureAlgorithms: ["dilithium-3", "dilithium-5", "falcon-1024"],
130
+ kemAlgorithms: ["kyber-768", "kyber-1024", "hqc-192", "hqc-256"],
131
+ signatureAlgorithms: [
132
+ "dilithium-3",
133
+ "dilithium-5",
134
+ "falcon-1024",
135
+ "sphincs-sha2-256f-simple",
136
+ "sphincs-sha2-256s-simple",
137
+ "sphincs-shake-256f-simple",
138
+ "sphincs-shake-256s-simple",
139
+ ],
17
140
  defaultKemAlgorithm: "kyber-768",
18
141
  defaultSignatureAlgorithm: "dilithium-3",
19
142
  },
20
143
  maximum: {
21
- kemAlgorithms: ["kyber-1024"],
22
- signatureAlgorithms: ["dilithium-5", "falcon-1024", "sphincs-shake-256f-simple"],
144
+ kemAlgorithms: ["kyber-1024", "hqc-256"],
145
+ signatureAlgorithms: [
146
+ "dilithium-5",
147
+ "falcon-1024",
148
+ "sphincs-sha2-256f-simple",
149
+ "sphincs-shake-256f-simple",
150
+ ],
23
151
  defaultKemAlgorithm: "kyber-1024",
24
152
  defaultSignatureAlgorithm: "dilithium-5",
25
153
  },
26
154
  government: {
27
155
  kemAlgorithms: ["kyber-1024"],
28
- signatureAlgorithms: ["dilithium-5", "sphincs-shake-256f-simple"],
156
+ signatureAlgorithms: ["dilithium-5", "sphincs-sha2-256f-simple", "sphincs-shake-256f-simple"],
29
157
  defaultKemAlgorithm: "kyber-1024",
30
158
  defaultSignatureAlgorithm: "dilithium-5",
31
159
  },
32
160
  };
33
161
  /**
34
- * Mapping from internal algorithm names to NIST standardized names.
162
+ * Mapping from internal algorithm names to NIST/standards display names.
163
+ * Covers all 90 PQC algorithms supported by QNSP.
164
+ * Canonical source: @qnsp/cryptography pqc-standards.ts ALGORITHM_NIST_NAMES
35
165
  */
36
166
  export const ALGORITHM_TO_NIST = {
167
+ // FIPS 203 — ML-KEM
37
168
  "kyber-512": "ML-KEM-512",
38
169
  "kyber-768": "ML-KEM-768",
39
170
  "kyber-1024": "ML-KEM-1024",
171
+ // FIPS 204 — ML-DSA
40
172
  "dilithium-2": "ML-DSA-44",
41
173
  "dilithium-3": "ML-DSA-65",
42
174
  "dilithium-5": "ML-DSA-87",
43
- "falcon-512": "FN-DSA-512",
44
- "falcon-1024": "FN-DSA-1024",
175
+ // FIPS 205 — SLH-DSA (SHA-2 variants)
176
+ "sphincs-sha2-128f-simple": "SLH-DSA-SHA2-128f",
177
+ "sphincs-sha2-128s-simple": "SLH-DSA-SHA2-128s",
178
+ "sphincs-sha2-192f-simple": "SLH-DSA-SHA2-192f",
179
+ "sphincs-sha2-192s-simple": "SLH-DSA-SHA2-192s",
180
+ "sphincs-sha2-256f-simple": "SLH-DSA-SHA2-256f",
181
+ "sphincs-sha2-256s-simple": "SLH-DSA-SHA2-256s",
182
+ // FIPS 205 — SLH-DSA (SHAKE variants)
45
183
  "sphincs-shake-128f-simple": "SLH-DSA-SHAKE-128f",
184
+ "sphincs-shake-128s-simple": "SLH-DSA-SHAKE-128s",
185
+ "sphincs-shake-192f-simple": "SLH-DSA-SHAKE-192f",
186
+ "sphincs-shake-192s-simple": "SLH-DSA-SHAKE-192s",
46
187
  "sphincs-shake-256f-simple": "SLH-DSA-SHAKE-256f",
188
+ "sphincs-shake-256s-simple": "SLH-DSA-SHAKE-256s",
189
+ // FN-DSA (FIPS 206 draft)
190
+ "falcon-512": "FN-DSA-512",
191
+ "falcon-1024": "FN-DSA-1024",
192
+ // HQC (NIST selected March 2025)
193
+ "hqc-128": "HQC-128",
194
+ "hqc-192": "HQC-192",
195
+ "hqc-256": "HQC-256",
196
+ // BIKE (NIST Round 4)
197
+ "bike-l1": "BIKE-L1",
198
+ "bike-l3": "BIKE-L3",
199
+ "bike-l5": "BIKE-L5",
200
+ // Classic McEliece (ISO standard)
201
+ "mceliece-348864": "Classic-McEliece-348864",
202
+ "mceliece-460896": "Classic-McEliece-460896",
203
+ "mceliece-6688128": "Classic-McEliece-6688128",
204
+ "mceliece-6960119": "Classic-McEliece-6960119",
205
+ "mceliece-8192128": "Classic-McEliece-8192128",
206
+ // FrodoKEM (ISO standard)
207
+ "frodokem-640-aes": "FrodoKEM-640-AES",
208
+ "frodokem-640-shake": "FrodoKEM-640-SHAKE",
209
+ "frodokem-976-aes": "FrodoKEM-976-AES",
210
+ "frodokem-976-shake": "FrodoKEM-976-SHAKE",
211
+ "frodokem-1344-aes": "FrodoKEM-1344-AES",
212
+ "frodokem-1344-shake": "FrodoKEM-1344-SHAKE",
213
+ // NTRU (lattice-based, re-added in liboqs 0.15)
214
+ "ntru-hps-2048-509": "NTRU-HPS-2048-509",
215
+ "ntru-hps-2048-677": "NTRU-HPS-2048-677",
216
+ "ntru-hps-4096-821": "NTRU-HPS-4096-821",
217
+ "ntru-hps-4096-1229": "NTRU-HPS-4096-1229",
218
+ "ntru-hrss-701": "NTRU-HRSS-701",
219
+ "ntru-hrss-1373": "NTRU-HRSS-1373",
220
+ // NTRU-Prime
221
+ sntrup761: "sntrup761",
222
+ // MAYO (NIST Additional Signatures Round 2)
223
+ "mayo-1": "MAYO-1",
224
+ "mayo-2": "MAYO-2",
225
+ "mayo-3": "MAYO-3",
226
+ "mayo-5": "MAYO-5",
227
+ // CROSS (NIST Additional Signatures Round 2)
228
+ "cross-rsdp-128-balanced": "CROSS-RSDP-128-balanced",
229
+ "cross-rsdp-128-fast": "CROSS-RSDP-128-fast",
230
+ "cross-rsdp-128-small": "CROSS-RSDP-128-small",
231
+ "cross-rsdp-192-balanced": "CROSS-RSDP-192-balanced",
232
+ "cross-rsdp-192-fast": "CROSS-RSDP-192-fast",
233
+ "cross-rsdp-192-small": "CROSS-RSDP-192-small",
234
+ "cross-rsdp-256-balanced": "CROSS-RSDP-256-balanced",
235
+ "cross-rsdp-256-fast": "CROSS-RSDP-256-fast",
236
+ "cross-rsdp-256-small": "CROSS-RSDP-256-small",
237
+ "cross-rsdpg-128-balanced": "CROSS-RSDPG-128-balanced",
238
+ "cross-rsdpg-128-fast": "CROSS-RSDPG-128-fast",
239
+ "cross-rsdpg-128-small": "CROSS-RSDPG-128-small",
240
+ "cross-rsdpg-192-balanced": "CROSS-RSDPG-192-balanced",
241
+ "cross-rsdpg-192-fast": "CROSS-RSDPG-192-fast",
242
+ "cross-rsdpg-192-small": "CROSS-RSDPG-192-small",
243
+ "cross-rsdpg-256-balanced": "CROSS-RSDPG-256-balanced",
244
+ "cross-rsdpg-256-fast": "CROSS-RSDPG-256-fast",
245
+ "cross-rsdpg-256-small": "CROSS-RSDPG-256-small",
246
+ // UOV (NIST Additional Signatures Round 2)
247
+ "ov-Is": "UOV-Is",
248
+ "ov-Ip": "UOV-Ip",
249
+ "ov-III": "UOV-III",
250
+ "ov-V": "UOV-V",
251
+ "ov-Is-pkc": "UOV-Is-pkc",
252
+ "ov-Ip-pkc": "UOV-Ip-pkc",
253
+ "ov-III-pkc": "UOV-III-pkc",
254
+ "ov-V-pkc": "UOV-V-pkc",
255
+ "ov-Is-pkc-skc": "UOV-Is-pkc-skc",
256
+ "ov-Ip-pkc-skc": "UOV-Ip-pkc-skc",
257
+ "ov-III-pkc-skc": "UOV-III-pkc-skc",
258
+ "ov-V-pkc-skc": "UOV-V-pkc-skc",
259
+ // SNOVA (NIST Additional Signatures Round 2, liboqs 0.14+)
260
+ "snova-24-5-4": "SNOVA-24-5-4",
261
+ "snova-24-5-4-shake": "SNOVA-24-5-4-SHAKE",
262
+ "snova-24-5-4-esk": "SNOVA-24-5-4-ESK",
263
+ "snova-24-5-4-shake-esk": "SNOVA-24-5-4-SHAKE-ESK",
264
+ "snova-25-8-3": "SNOVA-25-8-3",
265
+ "snova-37-17-2": "SNOVA-37-17-2",
266
+ "snova-37-8-4": "SNOVA-37-8-4",
267
+ "snova-24-5-5": "SNOVA-24-5-5",
268
+ "snova-56-25-2": "SNOVA-56-25-2",
269
+ "snova-49-11-3": "SNOVA-49-11-3",
270
+ "snova-60-10-4": "SNOVA-60-10-4",
271
+ "snova-29-6-5": "SNOVA-29-6-5",
47
272
  };
48
273
  /**
49
274
  * Convert internal algorithm name to NIST standardized name.
@@ -61,19 +286,47 @@ export class TenantClient {
61
286
  config;
62
287
  telemetry;
63
288
  targetService;
289
+ activationPromise = null;
290
+ activationConfig;
291
+ async ensureActivated() {
292
+ if (!this.activationPromise) {
293
+ this.activationPromise = activateSdk(this.activationConfig).then(() => undefined);
294
+ }
295
+ await this.activationPromise;
296
+ }
64
297
  constructor(config) {
298
+ if (!config.apiKey || config.apiKey.trim().length === 0) {
299
+ throw new Error("QNSP Tenant SDK: apiKey is required. " +
300
+ "Get your free API key at https://cloud.qnsp.cuilabs.io/signup — " +
301
+ "no credit card required (FREE tier: 10 GB storage, 50,000 API calls/month). " +
302
+ "Docs: https://docs.qnsp.cuilabs.io/sdk/tenant-sdk");
303
+ }
65
304
  const baseUrl = config.baseUrl.replace(/\/$/, "");
66
- // Enforce HTTPS in production (allow HTTP only for localhost in development)
305
+ // Enforce HTTPS in production (allow HTTP for localhost in development and
306
+ // for internal service-mesh hostnames — e.g. *.internal — which are on a
307
+ // private VPC network and do not require TLS termination at the transport layer).
67
308
  if (!baseUrl.startsWith("https://")) {
68
309
  const isLocalhost = baseUrl.startsWith("http://localhost") || baseUrl.startsWith("http://127.0.0.1");
310
+ let isInternalService = false;
311
+ try {
312
+ const parsed = new URL(baseUrl);
313
+ isInternalService =
314
+ parsed.protocol === "http:" &&
315
+ (parsed.hostname.endsWith(".internal") ||
316
+ parsed.hostname === "localhost" ||
317
+ parsed.hostname === "127.0.0.1");
318
+ }
319
+ catch {
320
+ // ignore; invalid URL will be caught later by fetch
321
+ }
69
322
  const isDevelopment = process.env["NODE_ENV"] === "development" || process.env["NODE_ENV"] === "test";
70
- if (!isLocalhost || !isDevelopment) {
323
+ if ((!isLocalhost || !isDevelopment) && !isInternalService) {
71
324
  throw new Error("baseUrl must use HTTPS in production. HTTP is only allowed for localhost in development.");
72
325
  }
73
326
  }
74
327
  this.config = {
75
328
  baseUrl,
76
- apiKey: config.apiKey ?? "",
329
+ apiKey: config.apiKey,
77
330
  timeoutMs: config.timeoutMs ?? 30_000,
78
331
  maxRetries: config.maxRetries ?? 3,
79
332
  retryDelayMs: config.retryDelayMs ?? 1_000,
@@ -89,6 +342,12 @@ export class TenantClient {
89
342
  catch {
90
343
  this.targetService = "tenant-service";
91
344
  }
345
+ this.activationConfig = {
346
+ apiKey: config.apiKey,
347
+ sdkId: "tenant-sdk",
348
+ sdkVersion: "0.3.0",
349
+ platformUrl: config.baseUrl,
350
+ };
92
351
  }
93
352
  async request(method, path, options) {
94
353
  return this.requestWithRetry(method, path, options, 0);
@@ -99,9 +358,7 @@ export class TenantClient {
99
358
  "Content-Type": "application/json",
100
359
  ...options?.headers,
101
360
  };
102
- if (this.config.apiKey) {
103
- headers["Authorization"] = `Bearer ${this.config.apiKey}`;
104
- }
361
+ headers["Authorization"] = `Bearer ${this.config.apiKey}`;
105
362
  const controller = new AbortController();
106
363
  const timeoutId = setTimeout(() => controller.abort(), this.config.timeoutMs);
107
364
  const signal = options?.signal ?? controller.signal;
@@ -195,6 +452,7 @@ export class TenantClient {
195
452
  * Requires PQC-signed security envelope and optional signature.
196
453
  */
197
454
  async createTenant(request) {
455
+ await this.ensureActivated();
198
456
  // Validation is handled by the service, but we validate format here for early feedback
199
457
  return this.request("POST", "/tenant/v1/tenants", {
200
458
  body: {
@@ -203,6 +461,7 @@ export class TenantClient {
203
461
  ...(request.plan !== undefined ? { plan: request.plan } : {}),
204
462
  ...(request.region !== undefined ? { region: request.region } : {}),
205
463
  ...(request.complianceTags !== undefined ? { complianceTags: request.complianceTags } : {}),
464
+ ...(request.hsmMode !== undefined ? { hsmMode: request.hsmMode } : {}),
206
465
  ...(request.metadata !== undefined ? { metadata: request.metadata } : {}),
207
466
  ...(request.domains !== undefined ? { domains: request.domains } : {}),
208
467
  security: request.security,
@@ -217,11 +476,13 @@ export class TenantClient {
217
476
  */
218
477
  async updateTenant(id, request) {
219
478
  validateUUID(id, "id");
479
+ await this.ensureActivated();
220
480
  return this.request("PATCH", `/tenant/v1/tenants/${id}`, {
221
481
  body: {
222
482
  ...(request.plan !== undefined ? { plan: request.plan } : {}),
223
483
  ...(request.status !== undefined ? { status: request.status } : {}),
224
484
  ...(request.complianceTags !== undefined ? { complianceTags: request.complianceTags } : {}),
485
+ ...(request.hsmMode !== undefined ? { hsmMode: request.hsmMode } : {}),
225
486
  ...(request.metadata !== undefined ? { metadata: request.metadata } : {}),
226
487
  security: request.security,
227
488
  ...(request.signature !== undefined ? { signature: request.signature } : {}),
@@ -235,6 +496,7 @@ export class TenantClient {
235
496
  */
236
497
  async getTenant(id) {
237
498
  validateUUID(id, "id");
499
+ await this.ensureActivated();
238
500
  return this.request("GET", `/tenant/v1/tenants/${id}`, {
239
501
  operation: "getTenant",
240
502
  });
@@ -244,6 +506,7 @@ export class TenantClient {
244
506
  * Returns a list of tenants and an optional next cursor for pagination.
245
507
  */
246
508
  async listTenants(options) {
509
+ await this.ensureActivated();
247
510
  const params = new URLSearchParams();
248
511
  if (options?.limit !== undefined) {
249
512
  params.set("limit", String(options.limit));
@@ -264,16 +527,47 @@ export class TenantClient {
264
527
  */
265
528
  async getTenantCryptoPolicy(tenantId) {
266
529
  validateUUID(tenantId, "tenantId");
530
+ await this.ensureActivated();
267
531
  return this.request("GET", `/tenant/v1/tenants/${tenantId}/crypto-policy`, {
268
532
  operation: "getTenantCryptoPolicy",
269
533
  });
270
534
  }
535
+ /**
536
+ * Get the v1 crypto policy for a tenant (profiles + tiers model).
537
+ * If no policy exists, a default policy is created and returned.
538
+ */
539
+ async getTenantCryptoPolicyV1(tenantId) {
540
+ validateUUID(tenantId, "tenantId");
541
+ await this.ensureActivated();
542
+ return this.request("GET", `/tenant/v1/tenants/${tenantId}/crypto-policy-v1`, {
543
+ operation: "getTenantCryptoPolicyV1",
544
+ });
545
+ }
546
+ /**
547
+ * List v1 crypto policy history entries.
548
+ */
549
+ async listTenantCryptoPolicyV1History(tenantId, options) {
550
+ validateUUID(tenantId, "tenantId");
551
+ await this.ensureActivated();
552
+ const params = new URLSearchParams();
553
+ if (options?.limit !== undefined) {
554
+ params.set("limit", String(options.limit));
555
+ }
556
+ const query = params.toString();
557
+ const path = query
558
+ ? `/tenant/v1/tenants/${tenantId}/crypto-policy-v1/history?${query}`
559
+ : `/tenant/v1/tenants/${tenantId}/crypto-policy-v1/history`;
560
+ return this.request("GET", path, {
561
+ operation: "listTenantCryptoPolicyV1History",
562
+ });
563
+ }
271
564
  /**
272
565
  * Create or update the crypto policy for a tenant.
273
566
  * Sets the policy tier and optional custom algorithm restrictions.
274
567
  */
275
568
  async upsertTenantCryptoPolicy(tenantId, policy) {
276
569
  validateUUID(tenantId, "tenantId");
570
+ await this.ensureActivated();
277
571
  return this.request("PUT", `/tenant/v1/tenants/${tenantId}/crypto-policy`, {
278
572
  body: {
279
573
  policyTier: policy.policyTier,
@@ -291,11 +585,104 @@ export class TenantClient {
291
585
  operation: "upsertTenantCryptoPolicy",
292
586
  });
293
587
  }
588
+ /**
589
+ * Update the v1 crypto policy for a tenant (requires If-Match with current ETag).
590
+ */
591
+ async updateTenantCryptoPolicyV1(tenantId, policy, etag) {
592
+ validateUUID(tenantId, "tenantId");
593
+ await this.ensureActivated();
594
+ if (!etag) {
595
+ throw new Error("etag is required for updateTenantCryptoPolicyV1");
596
+ }
597
+ return this.request("PUT", `/tenant/v1/tenants/${tenantId}/crypto-policy-v1`, {
598
+ body: { policy },
599
+ headers: {
600
+ "If-Match": etag,
601
+ },
602
+ operation: "updateTenantCryptoPolicyV1",
603
+ });
604
+ }
605
+ /**
606
+ * Enable Tier0 legacy algorithms (time-bounded) for a tenant.
607
+ */
608
+ async enableTier0Legacy(tenantId, input, etag) {
609
+ validateUUID(tenantId, "tenantId");
610
+ await this.ensureActivated();
611
+ if (!etag) {
612
+ throw new Error("etag is required for enableTier0Legacy");
613
+ }
614
+ return this.request("POST", `/tenant/v1/tenants/${tenantId}/crypto-policy-v1/tier0/enable`, {
615
+ body: { expiry: input.expiry },
616
+ headers: {
617
+ "If-Match": etag,
618
+ },
619
+ operation: "enableTier0Legacy",
620
+ });
621
+ }
622
+ /**
623
+ * Disable Tier0 legacy algorithms for a tenant.
624
+ */
625
+ async disableTier0Legacy(tenantId, etag) {
626
+ validateUUID(tenantId, "tenantId");
627
+ await this.ensureActivated();
628
+ if (!etag) {
629
+ throw new Error("etag is required for disableTier0Legacy");
630
+ }
631
+ return this.request("POST", `/tenant/v1/tenants/${tenantId}/crypto-policy-v1/tier0/disable`, {
632
+ body: {},
633
+ headers: {
634
+ "If-Match": etag,
635
+ },
636
+ operation: "disableTier0Legacy",
637
+ });
638
+ }
639
+ /**
640
+ * Enable Tier4 experimental algorithms with acknowledgement.
641
+ */
642
+ async enableTier4Experimental(tenantId, input, etag) {
643
+ validateUUID(tenantId, "tenantId");
644
+ await this.ensureActivated();
645
+ if (!etag) {
646
+ throw new Error("etag is required for enableTier4Experimental");
647
+ }
648
+ return this.request("POST", `/tenant/v1/tenants/${tenantId}/crypto-policy-v1/tier4/enable`, {
649
+ body: { approvedBy: input.approvedBy },
650
+ headers: {
651
+ "If-Match": etag,
652
+ },
653
+ operation: "enableTier4Experimental",
654
+ });
655
+ }
656
+ /**
657
+ * Roll back the v1 crypto policy to a previous history record or policy hash.
658
+ */
659
+ async rollbackTenantCryptoPolicyV1(tenantId, input, etag) {
660
+ validateUUID(tenantId, "tenantId");
661
+ await this.ensureActivated();
662
+ if (!etag) {
663
+ throw new Error("etag is required for rollbackTenantCryptoPolicyV1");
664
+ }
665
+ if (!input.historyId && !input.policyHash) {
666
+ throw new Error("historyId or policyHash is required for rollbackTenantCryptoPolicyV1");
667
+ }
668
+ return this.request("POST", `/tenant/v1/tenants/${tenantId}/crypto-policy-v1/rollback`, {
669
+ body: {
670
+ ...(input.historyId ? { historyId: input.historyId } : {}),
671
+ ...(input.policyHash ? { policyHash: input.policyHash } : {}),
672
+ },
673
+ headers: {
674
+ "If-Match": etag,
675
+ },
676
+ operation: "rollbackTenantCryptoPolicyV1",
677
+ });
678
+ }
294
679
  /**
295
680
  * Get the allowed KEM algorithms for a tenant based on their crypto policy.
296
681
  * Convenience method that fetches the policy and returns the allowed algorithms.
297
682
  */
298
683
  async getAllowedKemAlgorithms(tenantId) {
684
+ validateUUID(tenantId, "tenantId");
685
+ await this.ensureActivated();
299
686
  const policy = await this.getTenantCryptoPolicy(tenantId);
300
687
  if (policy.customAllowedKemAlgorithms && policy.customAllowedKemAlgorithms.length > 0) {
301
688
  return policy.customAllowedKemAlgorithms;
@@ -307,6 +694,8 @@ export class TenantClient {
307
694
  * Convenience method that fetches the policy and returns the allowed algorithms.
308
695
  */
309
696
  async getAllowedSignatureAlgorithms(tenantId) {
697
+ validateUUID(tenantId, "tenantId");
698
+ await this.ensureActivated();
310
699
  const policy = await this.getTenantCryptoPolicy(tenantId);
311
700
  if (policy.customAllowedSignatureAlgorithms &&
312
701
  policy.customAllowedSignatureAlgorithms.length > 0) {
@@ -318,6 +707,8 @@ export class TenantClient {
318
707
  * Get the default KEM algorithm for a tenant based on their crypto policy tier.
319
708
  */
320
709
  async getDefaultKemAlgorithm(tenantId) {
710
+ validateUUID(tenantId, "tenantId");
711
+ await this.ensureActivated();
321
712
  const policy = await this.getTenantCryptoPolicy(tenantId);
322
713
  return CRYPTO_POLICY_ALGORITHMS[policy.policyTier].defaultKemAlgorithm;
323
714
  }
@@ -325,6 +716,8 @@ export class TenantClient {
325
716
  * Get the default signature algorithm for a tenant based on their crypto policy tier.
326
717
  */
327
718
  async getDefaultSignatureAlgorithm(tenantId) {
719
+ validateUUID(tenantId, "tenantId");
720
+ await this.ensureActivated();
328
721
  const policy = await this.getTenantCryptoPolicy(tenantId);
329
722
  return CRYPTO_POLICY_ALGORITHMS[policy.policyTier].defaultSignatureAlgorithm;
330
723
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}