@sebastienrousseau/crypto-sdk 0.0.8 → 0.0.24
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 +114 -58
- package/dist/errors.d.ts +8 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +32 -0
- package/dist/index.d.ts +69 -241
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +102 -139
- package/dist/key-types.d.ts +203 -0
- package/dist/key-types.d.ts.map +1 -0
- package/dist/key-types.js +3 -0
- package/dist/negotiation.d.ts +3 -0
- package/dist/negotiation.d.ts.map +1 -0
- package/dist/negotiation.js +105 -0
- package/dist/request.d.ts +15 -0
- package/dist/request.d.ts.map +1 -0
- package/dist/request.js +111 -0
- package/dist/types.d.ts +183 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/package.json +17 -13
package/dist/index.d.ts
CHANGED
|
@@ -1,176 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
export interface ApiResponse<T> {
|
|
8
|
-
data: T;
|
|
9
|
-
}
|
|
10
|
-
export interface ApiError {
|
|
11
|
-
error: string;
|
|
12
|
-
details?: Array<{
|
|
13
|
-
field: string;
|
|
14
|
-
message: string;
|
|
15
|
-
}>;
|
|
16
|
-
}
|
|
17
|
-
export interface HashResult {
|
|
18
|
-
digest: string;
|
|
19
|
-
algorithm: string;
|
|
20
|
-
length: number;
|
|
21
|
-
}
|
|
22
|
-
export interface AeadResult {
|
|
23
|
-
ciphertext: string;
|
|
24
|
-
algorithm: string;
|
|
25
|
-
}
|
|
26
|
-
export interface KdfResult {
|
|
27
|
-
derivedKey: string;
|
|
28
|
-
salt: string;
|
|
29
|
-
algorithm: string;
|
|
30
|
-
keyLength: number;
|
|
31
|
-
}
|
|
32
|
-
export interface Ed25519KeyPair {
|
|
33
|
-
privateKey: string;
|
|
34
|
-
publicKey: string;
|
|
35
|
-
}
|
|
36
|
-
export interface SignResult {
|
|
37
|
-
signature: string;
|
|
38
|
-
algorithm: string;
|
|
39
|
-
}
|
|
40
|
-
export interface VerifyResult {
|
|
41
|
-
valid: boolean;
|
|
42
|
-
algorithm: string;
|
|
43
|
-
}
|
|
44
|
-
export interface HybridKeyPair {
|
|
45
|
-
x25519PrivateKey: string;
|
|
46
|
-
x25519PublicKey: string;
|
|
47
|
-
mlKemPublicKey: string;
|
|
48
|
-
mlKemSecretKey: string;
|
|
49
|
-
algorithm: string;
|
|
50
|
-
}
|
|
51
|
-
export interface HybridEncapsulateResult {
|
|
52
|
-
x25519EphemeralPublic: string;
|
|
53
|
-
mlKemCiphertext: string;
|
|
54
|
-
sharedSecret: string;
|
|
55
|
-
algorithm: string;
|
|
56
|
-
}
|
|
57
|
-
export interface MlDsaKeyPair {
|
|
58
|
-
publicKey: string;
|
|
59
|
-
secretKey: string;
|
|
60
|
-
algorithm: string;
|
|
61
|
-
}
|
|
62
|
-
export interface MlDsaSignResult {
|
|
63
|
-
signature: string;
|
|
64
|
-
algorithm: string;
|
|
65
|
-
}
|
|
66
|
-
export interface MlDsaVerifyResult {
|
|
67
|
-
valid: boolean;
|
|
68
|
-
algorithm: string;
|
|
69
|
-
}
|
|
70
|
-
export interface SlhDsaKeyPair {
|
|
71
|
-
publicKey: string;
|
|
72
|
-
secretKey: string;
|
|
73
|
-
algorithm: string;
|
|
74
|
-
}
|
|
75
|
-
export interface SlhDsaSignResult {
|
|
76
|
-
signature: string;
|
|
77
|
-
algorithm: string;
|
|
78
|
-
}
|
|
79
|
-
export interface SlhDsaVerifyResult {
|
|
80
|
-
valid: boolean;
|
|
81
|
-
algorithm: string;
|
|
82
|
-
}
|
|
83
|
-
export interface SecretboxSealResult {
|
|
84
|
-
sealed: string;
|
|
85
|
-
}
|
|
86
|
-
export interface SealedboxSealResult {
|
|
87
|
-
sealed: string;
|
|
88
|
-
ephemeralPublicKey: string;
|
|
89
|
-
}
|
|
90
|
-
export interface PasswordEncryptResult {
|
|
91
|
-
ciphertext: string;
|
|
92
|
-
}
|
|
93
|
-
export interface KeyWrapResult {
|
|
94
|
-
wrappedKey: string;
|
|
95
|
-
}
|
|
96
|
-
export interface KeyGenerateResult {
|
|
97
|
-
publicKey: string;
|
|
98
|
-
privateKey: string;
|
|
99
|
-
algorithm: string;
|
|
100
|
-
kid: string;
|
|
101
|
-
}
|
|
102
|
-
export interface DoraComplianceScorecard {
|
|
103
|
-
standard: string;
|
|
104
|
-
article: string;
|
|
105
|
-
status: string;
|
|
106
|
-
disclaimer: string;
|
|
107
|
-
quantumResistanceRatio: number;
|
|
108
|
-
activePrimitivesCount: number;
|
|
109
|
-
postQuantumPrimitivesCount: number;
|
|
110
|
-
algorithmDeprecationSchedule: Array<{
|
|
111
|
-
algorithm: string;
|
|
112
|
-
category: string;
|
|
113
|
-
sunsetDate: string;
|
|
114
|
-
recommendedMigration: string;
|
|
115
|
-
}>;
|
|
116
|
-
cryptographicInventory: Array<{
|
|
117
|
-
package: string;
|
|
118
|
-
version: string;
|
|
119
|
-
status: string;
|
|
120
|
-
fipsCompliance: string;
|
|
121
|
-
}>;
|
|
122
|
-
timestamp: string;
|
|
123
|
-
}
|
|
124
|
-
export interface CbomExportPayload {
|
|
125
|
-
bomFormat: string;
|
|
126
|
-
specVersion: string;
|
|
127
|
-
serialNumber: string;
|
|
128
|
-
version: number;
|
|
129
|
-
metadata: Record<string, unknown>;
|
|
130
|
-
components: Array<Record<string, unknown>>;
|
|
131
|
-
}
|
|
132
|
-
export interface AlgorithmNegotiationOptions {
|
|
133
|
-
maxPayloadBytes?: number;
|
|
134
|
-
securityCategoryMin?: 1 | 3 | 5;
|
|
135
|
-
requireHybrid?: boolean;
|
|
136
|
-
clientSupportedAlgorithms?: string[];
|
|
137
|
-
}
|
|
138
|
-
export interface AlgorithmNegotiationResult {
|
|
139
|
-
selectedAlgorithm: string;
|
|
140
|
-
cipherCategory: "lattice-kem" | "hybrid-kem" | "classical-ecdh";
|
|
141
|
-
securityCategory: 1 | 3 | 5;
|
|
142
|
-
isHybrid: boolean;
|
|
143
|
-
publicKeyBytes: number;
|
|
144
|
-
ciphertextBytes: number;
|
|
145
|
-
totalPayloadOverhead: number;
|
|
146
|
-
fitsWithinMtu: boolean;
|
|
147
|
-
fallbackChain: string[];
|
|
148
|
-
compliancePosture: {
|
|
149
|
-
standard: string;
|
|
150
|
-
doraArticle13Compliant: boolean;
|
|
151
|
-
fipsStandard: string;
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
export interface MacResult {
|
|
155
|
-
mac: string;
|
|
156
|
-
algorithm: string;
|
|
157
|
-
}
|
|
158
|
-
export interface PasswordHashResult {
|
|
159
|
-
hash: string;
|
|
160
|
-
salt: string;
|
|
161
|
-
params: {
|
|
162
|
-
t: number;
|
|
163
|
-
m: number;
|
|
164
|
-
p: number;
|
|
165
|
-
};
|
|
166
|
-
algorithm: string;
|
|
167
|
-
phc: string;
|
|
168
|
-
}
|
|
1
|
+
import type { ClientOptions, ApiResponse, HashAlgorithm, HashResult, AeadResult, KdfAlgorithm, KdfResult, SecretboxSealResult, PasswordEncryptResult, KeyWrapAlgorithm, KeyWrapResult, HealthResult, DoraComplianceScorecard, CbomExportPayload, AlgorithmNegotiationOptions, AlgorithmNegotiationResult, HmacAlgorithm, MacResult, MacVerifyResult, Argon2Params, PasswordHashResult, StreamPqEncryptParams, StreamPqEncryptResult, StreamPqDecryptParams, StreamPqDecryptResult, StreamMultiPqEncryptParams, StreamMultiPqEncryptResult, StreamMultiPqDecryptParams, StreamMultiPqDecryptResult } from "./types";
|
|
2
|
+
import type { KeyAlgorithm, KeyIdParams, SignParams, KeyMetadata, KeyGenerateResult, KeyExportResult, SignResult, VerifyResult, MlKemLevel, MlKemKeygenParams, MlKemKeyPair, MlKemEncapsulateParams, MlKemEncapsulateResult, MlKemDecapsulateParams, KemDecapsulateResult, HybridKeyPair, HybridEncapsulateParams, HybridEncapsulateResult, HybridDecapsulateParams, MlDsaLevel, MlDsaKeyPair, MlDsaSignResult, MlDsaVerifyResult, SlhDsaVariant, SlhDsaKeyPair, SlhDsaSignResult, SlhDsaVerifyResult, SealedboxSealResult, HpkeGenerateKeyPairParams, HpkeKeyPair, HpkeSealParams, HpkeSealResult, HpkeOpenParams, HpkeOpenResult, KmsCreateKeyParams, KmsWrapParams, KmsWrapResult, KmsUnwrapParams, KmsUnwrapResult, KmsGenerateDataKeyParams, KmsGenerateDataKeyResult, KmsEncryptParams, KmsEncryptResult, KmsDecryptParams, KmsDecryptResult } from "./key-types";
|
|
3
|
+
export * from "./types";
|
|
4
|
+
export * from "./key-types";
|
|
5
|
+
export { CryptoApiError } from "./errors";
|
|
169
6
|
export declare class CryptoClient {
|
|
170
7
|
private baseUrl;
|
|
171
8
|
private headers;
|
|
172
9
|
private fetchFn;
|
|
10
|
+
private timeout;
|
|
11
|
+
private retry;
|
|
12
|
+
private autoTraceparent;
|
|
173
13
|
constructor(options: ClientOptions);
|
|
14
|
+
private send;
|
|
174
15
|
private request;
|
|
175
16
|
encrypt(params: {
|
|
176
17
|
key: string;
|
|
@@ -183,32 +24,35 @@ export declare class CryptoClient {
|
|
|
183
24
|
plaintext: string;
|
|
184
25
|
}>>;
|
|
185
26
|
hash(params: {
|
|
186
|
-
algorithm:
|
|
27
|
+
algorithm: HashAlgorithm;
|
|
187
28
|
data: string;
|
|
188
29
|
}): Promise<ApiResponse<HashResult>>;
|
|
189
30
|
kdf(params: {
|
|
190
|
-
algorithm:
|
|
31
|
+
algorithm: KdfAlgorithm;
|
|
191
32
|
password: string;
|
|
192
33
|
salt?: string;
|
|
193
34
|
keyLength?: number;
|
|
194
|
-
params?:
|
|
35
|
+
params?: {
|
|
36
|
+
N?: number;
|
|
37
|
+
r?: number;
|
|
38
|
+
p?: number;
|
|
39
|
+
iterations?: number;
|
|
40
|
+
info?: string;
|
|
41
|
+
};
|
|
195
42
|
}): Promise<ApiResponse<KdfResult>>;
|
|
196
43
|
mac(params: {
|
|
197
|
-
algorithm:
|
|
44
|
+
algorithm: HmacAlgorithm;
|
|
198
45
|
key: string;
|
|
199
46
|
data: string;
|
|
200
47
|
}): Promise<ApiResponse<MacResult>>;
|
|
201
48
|
macVerify(params: {
|
|
202
|
-
algorithm:
|
|
49
|
+
algorithm: HmacAlgorithm;
|
|
203
50
|
key: string;
|
|
204
51
|
data: string;
|
|
205
52
|
mac: string;
|
|
206
|
-
}): Promise<ApiResponse<
|
|
207
|
-
valid: boolean;
|
|
208
|
-
}>>;
|
|
53
|
+
}): Promise<ApiResponse<MacVerifyResult>>;
|
|
209
54
|
passwordHash(params: {
|
|
210
55
|
password: string;
|
|
211
|
-
variant?: string;
|
|
212
56
|
timeCost?: number;
|
|
213
57
|
memoryCost?: number;
|
|
214
58
|
parallelism?: number;
|
|
@@ -217,69 +61,48 @@ export declare class CryptoClient {
|
|
|
217
61
|
password: string;
|
|
218
62
|
hash: string;
|
|
219
63
|
salt: string;
|
|
220
|
-
params:
|
|
221
|
-
t: number;
|
|
222
|
-
m: number;
|
|
223
|
-
p: number;
|
|
224
|
-
};
|
|
225
|
-
variant?: string;
|
|
64
|
+
params: Argon2Params;
|
|
226
65
|
}): Promise<ApiResponse<{
|
|
227
66
|
valid: boolean;
|
|
228
67
|
}>>;
|
|
229
68
|
generateKeyPair(params?: {
|
|
230
|
-
algorithm?:
|
|
231
|
-
metadata?:
|
|
69
|
+
algorithm?: KeyAlgorithm;
|
|
70
|
+
metadata?: KeyMetadata;
|
|
232
71
|
}): Promise<ApiResponse<KeyGenerateResult>>;
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
message: string;
|
|
236
|
-
}): Promise<ApiResponse<SignResult>>;
|
|
72
|
+
exportKey(params: KeyIdParams): Promise<ApiResponse<KeyExportResult>>;
|
|
73
|
+
sign(params: SignParams): Promise<ApiResponse<SignResult>>;
|
|
237
74
|
verify(params: {
|
|
238
75
|
publicKey: string;
|
|
239
76
|
message: string;
|
|
240
77
|
signature: string;
|
|
241
78
|
}): Promise<ApiResponse<VerifyResult>>;
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
mlKemCiphertext: string;
|
|
252
|
-
}): Promise<ApiResponse<{
|
|
253
|
-
sharedSecret: string;
|
|
254
|
-
algorithm: string;
|
|
255
|
-
}>>;
|
|
256
|
-
pqSign(params: {
|
|
257
|
-
level: 44 | 65 | 87;
|
|
258
|
-
secretKey: string;
|
|
259
|
-
message: string;
|
|
260
|
-
}): Promise<ApiResponse<MlDsaSignResult>>;
|
|
79
|
+
mlKemGenerateKeyPair(params?: MlKemKeygenParams): Promise<ApiResponse<MlKemKeyPair>>;
|
|
80
|
+
mlKemEncapsulate(params: MlKemEncapsulateParams): Promise<ApiResponse<MlKemEncapsulateResult>>;
|
|
81
|
+
mlKemDecapsulate(params: MlKemDecapsulateParams): Promise<ApiResponse<KemDecapsulateResult>>;
|
|
82
|
+
pqGenerateKeyPair(params?: {
|
|
83
|
+
level?: MlKemLevel;
|
|
84
|
+
}): Promise<ApiResponse<HybridKeyPair>>;
|
|
85
|
+
pqEncapsulate(params: HybridEncapsulateParams): Promise<ApiResponse<HybridEncapsulateResult>>;
|
|
86
|
+
pqDecapsulate(params: HybridDecapsulateParams): Promise<ApiResponse<KemDecapsulateResult>>;
|
|
87
|
+
pqSign(params: SignParams): Promise<ApiResponse<MlDsaSignResult>>;
|
|
261
88
|
pqVerify(params: {
|
|
262
|
-
level:
|
|
89
|
+
level: MlDsaLevel;
|
|
263
90
|
publicKey: string;
|
|
264
91
|
message: string;
|
|
265
92
|
signature: string;
|
|
266
93
|
}): Promise<ApiResponse<MlDsaVerifyResult>>;
|
|
267
94
|
pqSignKeygen(params: {
|
|
268
|
-
level:
|
|
95
|
+
level: MlDsaLevel;
|
|
269
96
|
}): Promise<ApiResponse<MlDsaKeyPair>>;
|
|
270
|
-
pqHashSign(params:
|
|
271
|
-
variant: string;
|
|
272
|
-
secretKey: string;
|
|
273
|
-
message: string;
|
|
274
|
-
}): Promise<ApiResponse<SlhDsaSignResult>>;
|
|
97
|
+
pqHashSign(params: SignParams): Promise<ApiResponse<SlhDsaSignResult>>;
|
|
275
98
|
pqHashVerify(params: {
|
|
276
|
-
variant:
|
|
99
|
+
variant: SlhDsaVariant;
|
|
277
100
|
publicKey: string;
|
|
278
101
|
message: string;
|
|
279
102
|
signature: string;
|
|
280
103
|
}): Promise<ApiResponse<SlhDsaVerifyResult>>;
|
|
281
104
|
pqHashSignKeygen(params: {
|
|
282
|
-
variant:
|
|
105
|
+
variant: SlhDsaVariant;
|
|
283
106
|
}): Promise<ApiResponse<SlhDsaKeyPair>>;
|
|
284
107
|
secretboxSeal(params: {
|
|
285
108
|
key: string;
|
|
@@ -290,19 +113,26 @@ export declare class CryptoClient {
|
|
|
290
113
|
key: string;
|
|
291
114
|
ciphertext: string;
|
|
292
115
|
aad?: string;
|
|
293
|
-
}): Promise<ApiResponse<
|
|
294
|
-
plaintext: string;
|
|
295
|
-
}>>;
|
|
116
|
+
}): Promise<ApiResponse<string>>;
|
|
296
117
|
sealedboxSeal(params: {
|
|
297
118
|
recipientPublicKey: string;
|
|
298
119
|
plaintext: string;
|
|
299
120
|
}): Promise<ApiResponse<SealedboxSealResult>>;
|
|
300
|
-
sealedboxOpen(params: {
|
|
301
|
-
recipientSecretKey: string;
|
|
121
|
+
sealedboxOpen(params: KeyIdParams & {
|
|
302
122
|
sealed: string;
|
|
303
|
-
}): Promise<ApiResponse<
|
|
123
|
+
}): Promise<ApiResponse<string>>;
|
|
124
|
+
sealedboxSealPq(params: {
|
|
125
|
+
x25519PublicKey: string;
|
|
126
|
+
mlKemPublicKey: string;
|
|
304
127
|
plaintext: string;
|
|
305
|
-
}>>;
|
|
128
|
+
}): Promise<ApiResponse<SealedboxSealResult>>;
|
|
129
|
+
sealedboxOpenPq(params: KeyIdParams & {
|
|
130
|
+
sealed: string;
|
|
131
|
+
}): Promise<ApiResponse<string>>;
|
|
132
|
+
streamPqEncrypt(params: StreamPqEncryptParams): Promise<ApiResponse<StreamPqEncryptResult>>;
|
|
133
|
+
streamPqDecrypt(params: StreamPqDecryptParams): Promise<ApiResponse<StreamPqDecryptResult>>;
|
|
134
|
+
streamMultiPqEncrypt(params: StreamMultiPqEncryptParams): Promise<ApiResponse<StreamMultiPqEncryptResult>>;
|
|
135
|
+
streamMultiPqDecrypt(params: StreamMultiPqDecryptParams): Promise<ApiResponse<StreamMultiPqDecryptResult>>;
|
|
306
136
|
passwordEncrypt(params: {
|
|
307
137
|
password: string;
|
|
308
138
|
plaintext: string;
|
|
@@ -310,32 +140,30 @@ export declare class CryptoClient {
|
|
|
310
140
|
passwordDecrypt(params: {
|
|
311
141
|
password: string;
|
|
312
142
|
ciphertext: string;
|
|
313
|
-
}): Promise<ApiResponse<
|
|
314
|
-
|
|
315
|
-
|
|
143
|
+
}): Promise<ApiResponse<string>>;
|
|
144
|
+
hpkeGenerateKeyPair(params?: HpkeGenerateKeyPairParams): Promise<ApiResponse<HpkeKeyPair>>;
|
|
145
|
+
hpkeSeal(params: HpkeSealParams): Promise<ApiResponse<HpkeSealResult>>;
|
|
146
|
+
hpkeOpen(params: HpkeOpenParams): Promise<ApiResponse<HpkeOpenResult>>;
|
|
316
147
|
keyWrap(params: {
|
|
317
148
|
kek: string;
|
|
318
149
|
keyToWrap: string;
|
|
319
|
-
algorithm?:
|
|
150
|
+
algorithm?: KeyWrapAlgorithm;
|
|
320
151
|
}): Promise<ApiResponse<KeyWrapResult>>;
|
|
321
152
|
keyUnwrap(params: {
|
|
322
153
|
kek: string;
|
|
323
154
|
wrappedKey: string;
|
|
324
|
-
algorithm?:
|
|
325
|
-
}): Promise<ApiResponse<
|
|
326
|
-
|
|
327
|
-
|
|
155
|
+
algorithm?: KeyWrapAlgorithm;
|
|
156
|
+
}): Promise<ApiResponse<string>>;
|
|
157
|
+
kmsCreateKey(params?: KmsCreateKeyParams): Promise<ApiResponse<Record<string, unknown>>>;
|
|
158
|
+
kmsWrap(params: KmsWrapParams): Promise<ApiResponse<KmsWrapResult>>;
|
|
159
|
+
kmsUnwrap(params: KmsUnwrapParams): Promise<ApiResponse<KmsUnwrapResult>>;
|
|
160
|
+
kmsGenerateDataKey(params: KmsGenerateDataKeyParams): Promise<ApiResponse<KmsGenerateDataKeyResult>>;
|
|
161
|
+
kmsEncrypt(params: KmsEncryptParams): Promise<ApiResponse<KmsEncryptResult>>;
|
|
162
|
+
kmsDecrypt(params: KmsDecryptParams): Promise<ApiResponse<KmsDecryptResult>>;
|
|
328
163
|
getDoraCompliance(): Promise<ApiResponse<DoraComplianceScorecard>>;
|
|
329
|
-
getCbom(): Promise<
|
|
164
|
+
getCbom(): Promise<CbomExportPayload>;
|
|
330
165
|
negotiateAlgorithm(options?: AlgorithmNegotiationOptions): AlgorithmNegotiationResult;
|
|
331
166
|
algorithms(): Promise<ApiResponse<Record<string, string[]>>>;
|
|
332
|
-
health(): Promise<
|
|
333
|
-
statusCode: number;
|
|
334
|
-
}>;
|
|
335
|
-
}
|
|
336
|
-
export declare class CryptoApiError extends Error {
|
|
337
|
-
readonly status: number;
|
|
338
|
-
readonly body: ApiError;
|
|
339
|
-
constructor(status: number, body: ApiError);
|
|
167
|
+
health(): Promise<HealthResult>;
|
|
340
168
|
}
|
|
341
169
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|