@opentdf/sdk 0.9.0-beta.91 → 0.9.0-beta.93
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/cjs/src/access/access-fetch.js +1 -2
- package/dist/cjs/src/access/access-rpc.js +1 -3
- package/dist/cjs/src/access.js +1 -14
- package/dist/cjs/src/auth/auth.js +13 -10
- package/dist/cjs/src/auth/dpop.js +121 -0
- package/dist/cjs/src/auth/oidc-clientcredentials-provider.js +37 -3
- package/dist/cjs/src/auth/oidc-externaljwt-provider.js +37 -3
- package/dist/cjs/src/auth/oidc-refreshtoken-provider.js +37 -3
- package/dist/cjs/src/auth/oidc.js +10 -8
- package/dist/cjs/src/auth/providers.js +35 -12
- package/dist/cjs/src/crypto/index.js +16 -2
- package/dist/cjs/src/crypto/pemPublicToCrypto.js +17 -11
- package/dist/cjs/src/opentdf.js +40 -10
- package/dist/cjs/tdf3/index.js +4 -2
- package/dist/cjs/tdf3/src/assertions.js +71 -31
- package/dist/cjs/tdf3/src/ciphers/aes-gcm-cipher.js +1 -1
- package/dist/cjs/tdf3/src/ciphers/symmetric-cipher-base.js +4 -2
- package/dist/cjs/tdf3/src/client/index.js +23 -33
- package/dist/cjs/tdf3/src/crypto/crypto-utils.js +12 -5
- package/dist/cjs/tdf3/src/crypto/declarations.js +1 -1
- package/dist/cjs/tdf3/src/crypto/index.js +849 -88
- package/dist/cjs/tdf3/src/crypto/jose/jwt-claims-set.js +11 -0
- package/dist/cjs/tdf3/src/crypto/jose/validate-crit.js +8 -0
- package/dist/cjs/tdf3/src/crypto/jose/vendor/lib/buffer_utils.js +41 -0
- package/dist/cjs/tdf3/src/crypto/jose/vendor/lib/epoch.js +6 -0
- package/dist/cjs/tdf3/src/crypto/jose/vendor/lib/is_object.js +21 -0
- package/dist/cjs/tdf3/src/crypto/jose/vendor/lib/jwt_claims_set.js +112 -0
- package/dist/cjs/tdf3/src/crypto/jose/vendor/lib/secs.js +60 -0
- package/dist/cjs/tdf3/src/crypto/jose/vendor/lib/validate_crit.js +38 -0
- package/dist/cjs/tdf3/src/crypto/jose/vendor/util/errors.js +135 -0
- package/dist/cjs/tdf3/src/crypto/jwt.js +183 -0
- package/dist/cjs/tdf3/src/crypto/salt.js +14 -8
- package/dist/cjs/tdf3/src/models/encryption-information.js +17 -20
- package/dist/cjs/tdf3/src/models/key-access.js +43 -63
- package/dist/cjs/tdf3/src/tdf.js +75 -75
- package/dist/cjs/tdf3/src/utils/index.js +5 -39
- package/dist/types/src/access/access-fetch.d.ts.map +1 -1
- package/dist/types/src/access/access-rpc.d.ts.map +1 -1
- package/dist/types/src/access.d.ts +0 -5
- package/dist/types/src/access.d.ts.map +1 -1
- package/dist/types/src/auth/auth.d.ts +9 -6
- package/dist/types/src/auth/auth.d.ts.map +1 -1
- package/dist/types/src/auth/dpop.d.ts +60 -0
- package/dist/types/src/auth/dpop.d.ts.map +1 -0
- package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts +3 -2
- package/dist/types/src/auth/oidc-clientcredentials-provider.d.ts.map +1 -1
- package/dist/types/src/auth/oidc-externaljwt-provider.d.ts +3 -2
- package/dist/types/src/auth/oidc-externaljwt-provider.d.ts.map +1 -1
- package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts +3 -2
- package/dist/types/src/auth/oidc-refreshtoken-provider.d.ts.map +1 -1
- package/dist/types/src/auth/oidc.d.ts +6 -4
- package/dist/types/src/auth/oidc.d.ts.map +1 -1
- package/dist/types/src/auth/providers.d.ts +5 -4
- package/dist/types/src/auth/providers.d.ts.map +1 -1
- package/dist/types/src/crypto/index.d.ts +2 -1
- package/dist/types/src/crypto/index.d.ts.map +1 -1
- package/dist/types/src/crypto/pemPublicToCrypto.d.ts +18 -0
- package/dist/types/src/crypto/pemPublicToCrypto.d.ts.map +1 -1
- package/dist/types/src/opentdf.d.ts +13 -4
- package/dist/types/src/opentdf.d.ts.map +1 -1
- package/dist/types/tdf3/index.d.ts +3 -3
- package/dist/types/tdf3/index.d.ts.map +1 -1
- package/dist/types/tdf3/src/assertions.d.ts +23 -8
- package/dist/types/tdf3/src/assertions.d.ts.map +1 -1
- package/dist/types/tdf3/src/ciphers/aes-gcm-cipher.d.ts +3 -3
- package/dist/types/tdf3/src/ciphers/aes-gcm-cipher.d.ts.map +1 -1
- package/dist/types/tdf3/src/ciphers/symmetric-cipher-base.d.ts +4 -4
- package/dist/types/tdf3/src/ciphers/symmetric-cipher-base.d.ts.map +1 -1
- package/dist/types/tdf3/src/client/builders.d.ts +2 -2
- package/dist/types/tdf3/src/client/builders.d.ts.map +1 -1
- package/dist/types/tdf3/src/client/index.d.ts +6 -5
- package/dist/types/tdf3/src/client/index.d.ts.map +1 -1
- package/dist/types/tdf3/src/crypto/crypto-utils.d.ts +14 -4
- package/dist/types/tdf3/src/crypto/crypto-utils.d.ts.map +1 -1
- package/dist/types/tdf3/src/crypto/declarations.d.ts +283 -18
- package/dist/types/tdf3/src/crypto/declarations.d.ts.map +1 -1
- package/dist/types/tdf3/src/crypto/index.d.ts +105 -28
- package/dist/types/tdf3/src/crypto/index.d.ts.map +1 -1
- package/dist/types/tdf3/src/crypto/jose/jwt-claims-set.d.ts +3 -0
- package/dist/types/tdf3/src/crypto/jose/jwt-claims-set.d.ts.map +1 -0
- package/dist/types/tdf3/src/crypto/jose/validate-crit.d.ts +5 -0
- package/dist/types/tdf3/src/crypto/jose/validate-crit.d.ts.map +1 -0
- package/dist/types/tdf3/src/crypto/jose/vendor/lib/buffer_utils.d.ts +6 -0
- package/dist/types/tdf3/src/crypto/jose/vendor/lib/buffer_utils.d.ts.map +1 -0
- package/dist/types/tdf3/src/crypto/jose/vendor/lib/epoch.d.ts +3 -0
- package/dist/types/tdf3/src/crypto/jose/vendor/lib/epoch.d.ts.map +1 -0
- package/dist/types/tdf3/src/crypto/jose/vendor/lib/is_object.d.ts +3 -0
- package/dist/types/tdf3/src/crypto/jose/vendor/lib/is_object.d.ts.map +1 -0
- package/dist/types/tdf3/src/crypto/jose/vendor/lib/jwt_claims_set.d.ts +3 -0
- package/dist/types/tdf3/src/crypto/jose/vendor/lib/jwt_claims_set.d.ts.map +1 -0
- package/dist/types/tdf3/src/crypto/jose/vendor/lib/secs.d.ts +3 -0
- package/dist/types/tdf3/src/crypto/jose/vendor/lib/secs.d.ts.map +1 -0
- package/dist/types/tdf3/src/crypto/jose/vendor/lib/validate_crit.d.ts +3 -0
- package/dist/types/tdf3/src/crypto/jose/vendor/lib/validate_crit.d.ts.map +1 -0
- package/dist/types/tdf3/src/crypto/jose/vendor/util/errors.d.ts +76 -0
- package/dist/types/tdf3/src/crypto/jose/vendor/util/errors.d.ts.map +1 -0
- package/dist/types/tdf3/src/crypto/jwt.d.ts +76 -0
- package/dist/types/tdf3/src/crypto/jwt.d.ts.map +1 -0
- package/dist/types/tdf3/src/crypto/salt.d.ts +6 -1
- package/dist/types/tdf3/src/crypto/salt.d.ts.map +1 -1
- package/dist/types/tdf3/src/models/encryption-information.d.ts +4 -4
- package/dist/types/tdf3/src/models/encryption-information.d.ts.map +1 -1
- package/dist/types/tdf3/src/models/key-access.d.ts +8 -5
- package/dist/types/tdf3/src/models/key-access.d.ts.map +1 -1
- package/dist/types/tdf3/src/tdf.d.ts +8 -8
- package/dist/types/tdf3/src/tdf.d.ts.map +1 -1
- package/dist/types/tdf3/src/utils/index.d.ts +4 -3
- package/dist/types/tdf3/src/utils/index.d.ts.map +1 -1
- package/dist/web/src/access/access-fetch.js +3 -4
- package/dist/web/src/access/access-rpc.js +3 -5
- package/dist/web/src/access.js +1 -13
- package/dist/web/src/auth/auth.js +13 -10
- package/dist/web/src/auth/dpop.js +118 -0
- package/dist/web/src/auth/oidc-clientcredentials-provider.js +4 -3
- package/dist/web/src/auth/oidc-externaljwt-provider.js +4 -3
- package/dist/web/src/auth/oidc-refreshtoken-provider.js +4 -3
- package/dist/web/src/auth/oidc.js +11 -9
- package/dist/web/src/auth/providers.js +13 -12
- package/dist/web/src/crypto/index.js +4 -2
- package/dist/web/src/crypto/pemPublicToCrypto.js +11 -9
- package/dist/web/src/opentdf.js +7 -10
- package/dist/web/tdf3/index.js +3 -2
- package/dist/web/tdf3/src/assertions.js +71 -31
- package/dist/web/tdf3/src/ciphers/aes-gcm-cipher.js +1 -1
- package/dist/web/tdf3/src/ciphers/symmetric-cipher-base.js +4 -2
- package/dist/web/tdf3/src/client/index.js +25 -35
- package/dist/web/tdf3/src/crypto/crypto-utils.js +12 -5
- package/dist/web/tdf3/src/crypto/declarations.js +1 -1
- package/dist/web/tdf3/src/crypto/index.js +830 -84
- package/dist/web/tdf3/src/crypto/jose/jwt-claims-set.js +5 -0
- package/dist/web/tdf3/src/crypto/jose/validate-crit.js +3 -0
- package/dist/web/tdf3/src/crypto/jose/vendor/lib/buffer_utils.js +35 -0
- package/dist/web/tdf3/src/crypto/jose/vendor/lib/epoch.js +4 -0
- package/dist/web/tdf3/src/crypto/jose/vendor/lib/is_object.js +19 -0
- package/dist/web/tdf3/src/crypto/jose/vendor/lib/jwt_claims_set.js +107 -0
- package/dist/web/tdf3/src/crypto/jose/vendor/lib/secs.js +58 -0
- package/dist/web/tdf3/src/crypto/jose/vendor/lib/validate_crit.js +36 -0
- package/dist/web/tdf3/src/crypto/jose/vendor/util/errors.js +117 -0
- package/dist/web/tdf3/src/crypto/jwt.js +174 -0
- package/dist/web/tdf3/src/crypto/salt.js +13 -7
- package/dist/web/tdf3/src/models/encryption-information.js +11 -14
- package/dist/web/tdf3/src/models/key-access.js +44 -31
- package/dist/web/tdf3/src/tdf.js +71 -71
- package/dist/web/tdf3/src/utils/index.js +5 -6
- package/package.json +11 -4
- package/src/access/access-fetch.ts +2 -8
- package/src/access/access-rpc.ts +0 -7
- package/src/access.ts +0 -17
- package/src/auth/auth.ts +21 -12
- package/src/auth/dpop.ts +222 -0
- package/src/auth/oidc-clientcredentials-provider.ts +23 -15
- package/src/auth/oidc-externaljwt-provider.ts +23 -15
- package/src/auth/oidc-refreshtoken-provider.ts +23 -15
- package/src/auth/oidc.ts +21 -10
- package/src/auth/providers.ts +46 -29
- package/src/crypto/index.ts +21 -1
- package/src/crypto/pemPublicToCrypto.ts +11 -9
- package/src/opentdf.ts +19 -14
- package/tdf3/index.ts +32 -5
- package/tdf3/src/assertions.ts +99 -30
- package/tdf3/src/ciphers/aes-gcm-cipher.ts +7 -2
- package/tdf3/src/ciphers/symmetric-cipher-base.ts +7 -4
- package/tdf3/src/client/builders.ts +2 -2
- package/tdf3/src/client/index.ts +60 -59
- package/tdf3/src/crypto/crypto-utils.ts +15 -8
- package/tdf3/src/crypto/declarations.ts +338 -22
- package/tdf3/src/crypto/index.ts +1021 -118
- package/tdf3/src/crypto/jose/jwt-claims-set.ts +10 -0
- package/tdf3/src/crypto/jose/validate-crit.ts +9 -0
- package/tdf3/src/crypto/jose/vendor/lib/buffer_utils.ts +34 -0
- package/tdf3/src/crypto/jose/vendor/lib/epoch.ts +3 -0
- package/tdf3/src/crypto/jose/vendor/lib/is_object.ts +18 -0
- package/tdf3/src/crypto/jose/vendor/lib/jwt_claims_set.ts +106 -0
- package/tdf3/src/crypto/jose/vendor/lib/secs.ts +57 -0
- package/tdf3/src/crypto/jose/vendor/lib/validate_crit.ts +35 -0
- package/tdf3/src/crypto/jose/vendor/util/errors.ts +101 -0
- package/tdf3/src/crypto/jwt.ts +256 -0
- package/tdf3/src/crypto/salt.ts +16 -8
- package/tdf3/src/models/encryption-information.ts +14 -21
- package/tdf3/src/models/key-access.ts +57 -41
- package/tdf3/src/tdf.ts +110 -93
- package/tdf3/src/utils/index.ts +5 -6
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @private
|
|
5
5
|
*/
|
|
6
6
|
import { Binary } from '../binary.js';
|
|
7
|
-
import { CryptoService, DecryptResult, EncryptResult,
|
|
7
|
+
import { type AsymmetricSigningAlgorithm, type CryptoService, type DecryptResult, type ECCurve, type EncryptResult, type HashAlgorithm, type HkdfParams, type KeyOptions, type KeyPair, type PrivateKey, type PublicKey, type PublicKeyInfo, type SymmetricKey } from './declarations.js';
|
|
8
8
|
import { AlgorithmUrn } from '../ciphers/algorithms.js';
|
|
9
9
|
export declare const isSupported: boolean;
|
|
10
10
|
export declare const method = "http://www.w3.org/2001/04/xmlenc#aes256-cbc";
|
|
@@ -16,33 +16,30 @@ export declare const name = "BrowserNativeCryptoService";
|
|
|
16
16
|
export declare function rsaOaepSha1(modulusLength?: number): RsaHashedKeyGenParams;
|
|
17
17
|
export declare function rsaPkcs1Sha256(modulusLength?: number): RsaHashedKeyGenParams;
|
|
18
18
|
/**
|
|
19
|
-
* Generate a random
|
|
20
|
-
* @
|
|
19
|
+
* Generate a random symmetric key (opaque).
|
|
20
|
+
* @param length - Key length in bytes (default 32 for AES-256)
|
|
21
|
+
* @return Opaque symmetric key
|
|
21
22
|
*/
|
|
22
|
-
export declare function generateKey(length?: number): Promise<
|
|
23
|
+
export declare function generateKey(length?: number): Promise<SymmetricKey>;
|
|
23
24
|
/**
|
|
24
25
|
* Generate an RSA key pair
|
|
25
26
|
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/generateKey}
|
|
26
27
|
* @param size in bits
|
|
27
28
|
*/
|
|
28
|
-
export declare function generateKeyPair(size?: number): Promise<
|
|
29
|
+
export declare function generateKeyPair(size?: number): Promise<KeyPair>;
|
|
29
30
|
/**
|
|
30
31
|
* Generate an RSA key pair suitable for signatures
|
|
31
32
|
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/generateKey}
|
|
32
33
|
*/
|
|
33
|
-
export declare function generateSigningKeyPair(): Promise<
|
|
34
|
-
export declare function cryptoToPemPair(keysMaybe: unknown): Promise<PemKeyPair>;
|
|
34
|
+
export declare function generateSigningKeyPair(): Promise<KeyPair>;
|
|
35
35
|
/**
|
|
36
|
-
* Encrypt using a public key
|
|
37
|
-
*
|
|
38
|
-
* @param
|
|
36
|
+
* Encrypt using a public key (RSA-OAEP).
|
|
37
|
+
* Accepts Binary or SymmetricKey for key wrapping.
|
|
38
|
+
* @param payload Payload to encrypt (Binary) or symmetric key to wrap (SymmetricKey)
|
|
39
|
+
* @param publicKey Opaque public key
|
|
39
40
|
* @return Encrypted payload
|
|
40
41
|
*/
|
|
41
|
-
export declare function encryptWithPublicKey(payload: Binary, publicKey:
|
|
42
|
-
/**
|
|
43
|
-
* Generate a 16-byte initialization vector
|
|
44
|
-
*/
|
|
45
|
-
export declare function generateInitializationVector(length?: number): Promise<string>;
|
|
42
|
+
export declare function encryptWithPublicKey(payload: Binary | SymmetricKey, publicKey: PublicKey): Promise<Binary>;
|
|
46
43
|
export declare function randomBytes(byteLength: number): Promise<Uint8Array>;
|
|
47
44
|
/**
|
|
48
45
|
* Returns a promise to the encryption key as a binary string.
|
|
@@ -58,19 +55,19 @@ export declare function randomBytesAsHex(length: number): Promise<string>;
|
|
|
58
55
|
/**
|
|
59
56
|
* Decrypt a public-key encrypted payload with a private key
|
|
60
57
|
* @param encryptedPayload Payload to decrypt
|
|
61
|
-
* @param privateKey
|
|
58
|
+
* @param privateKey Opaque private key
|
|
62
59
|
* @return Decrypted payload
|
|
63
60
|
*/
|
|
64
|
-
export declare function decryptWithPrivateKey(encryptedPayload: Binary, privateKey:
|
|
61
|
+
export declare function decryptWithPrivateKey(encryptedPayload: Binary, privateKey: PrivateKey): Promise<Binary>;
|
|
65
62
|
/**
|
|
66
63
|
* Decrypt content synchronously
|
|
67
64
|
* @param payload The payload to decrypt
|
|
68
|
-
* @param key The encryption key
|
|
65
|
+
* @param key The symmetric encryption key (opaque)
|
|
69
66
|
* @param iv The initialization vector
|
|
70
67
|
* @param algorithm The algorithm to use for encryption
|
|
71
68
|
* @param authTag The authentication tag for authenticated crypto.
|
|
72
69
|
*/
|
|
73
|
-
export declare function decrypt(payload: Binary, key:
|
|
70
|
+
export declare function decrypt(payload: Binary, key: SymmetricKey, iv: Binary, algorithm?: AlgorithmUrn, authTag?: Binary): Promise<DecryptResult>;
|
|
74
71
|
/**
|
|
75
72
|
* Encrypt content synchronously
|
|
76
73
|
* @param payload The payload to encrypt
|
|
@@ -78,26 +75,106 @@ export declare function decrypt(payload: Binary, key: Binary, iv: Binary, algori
|
|
|
78
75
|
* @param iv The initialization vector
|
|
79
76
|
* @param algorithm The algorithm to use for encryption
|
|
80
77
|
*/
|
|
81
|
-
export declare function encrypt(payload: Binary, key:
|
|
78
|
+
export declare function encrypt(payload: Binary | SymmetricKey, key: SymmetricKey, iv: Binary, algorithm?: AlgorithmUrn): Promise<EncryptResult>;
|
|
82
79
|
/**
|
|
83
80
|
* Create a SHA256 hash. Code refrenced from MDN:
|
|
84
81
|
* https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest
|
|
85
82
|
* @param content String content
|
|
86
83
|
* @return Hex hash
|
|
87
84
|
*/
|
|
88
|
-
export declare function sha256(content: string): Promise<string>;
|
|
89
|
-
/**
|
|
90
|
-
* Create an HMAC SHA256 hash
|
|
91
|
-
* @param key Key string
|
|
92
|
-
* @param content Content string
|
|
93
|
-
* @return Hex hash
|
|
94
|
-
*/
|
|
95
|
-
export declare function hmac(key: string, content: string): Promise<string>;
|
|
96
85
|
/**
|
|
97
86
|
* Create an ArrayBuffer from a hex string.
|
|
98
87
|
* https://developers.google.com/web/updates/2012/06/How-to-convert-ArrayBuffer-to-and-from-String?hl=en
|
|
99
88
|
* @param hex - Hex string
|
|
100
89
|
*/
|
|
101
90
|
export declare function hex2Ab(hex: string): ArrayBuffer;
|
|
91
|
+
/**
|
|
92
|
+
* Sign data with an asymmetric private key.
|
|
93
|
+
*/
|
|
94
|
+
export declare function sign(data: Uint8Array, privateKey: PrivateKey, algorithm: AsymmetricSigningAlgorithm): Promise<Uint8Array>;
|
|
95
|
+
/**
|
|
96
|
+
* Verify signature with an asymmetric public key.
|
|
97
|
+
*/
|
|
98
|
+
export declare function verify(data: Uint8Array, signature: Uint8Array, publicKey: PublicKey, algorithm: AsymmetricSigningAlgorithm): Promise<boolean>;
|
|
99
|
+
/**
|
|
100
|
+
* Compute hash digest.
|
|
101
|
+
*/
|
|
102
|
+
export declare function digest(algorithm: HashAlgorithm, data: Uint8Array): Promise<Uint8Array>;
|
|
103
|
+
/**
|
|
104
|
+
* Extract PEM public key from X.509 certificate or return PEM key as-is.
|
|
105
|
+
*
|
|
106
|
+
* @param certOrPem - A PEM-encoded X.509 certificate or public key
|
|
107
|
+
* @param jwaAlgorithm - JWA algorithm hint for certificate parsing (RS256, RS512, ES256, ES384, ES512).
|
|
108
|
+
* If not provided for a certificate, will attempt to auto-detect from OIDs.
|
|
109
|
+
*/
|
|
110
|
+
export declare function extractPublicKeyPem(certOrPem: string, jwaAlgorithm?: string): Promise<string>;
|
|
111
|
+
/**
|
|
112
|
+
* Generate an EC key pair for ECDH key agreement.
|
|
113
|
+
*/
|
|
114
|
+
export declare function generateECKeyPair(curve?: ECCurve): Promise<KeyPair>;
|
|
115
|
+
/**
|
|
116
|
+
* Perform ECDH key agreement followed by HKDF key derivation.
|
|
117
|
+
* Returns opaque symmetric key for symmetric encryption.
|
|
118
|
+
*/
|
|
119
|
+
export declare function deriveKeyFromECDH(privateKey: PrivateKey, publicKey: PublicKey, hkdfParams: HkdfParams): Promise<SymmetricKey>;
|
|
120
|
+
/**
|
|
121
|
+
* Compute HMAC-SHA256 of data with a symmetric key.
|
|
122
|
+
*/
|
|
123
|
+
export declare function hmac(data: Uint8Array, key: SymmetricKey): Promise<Uint8Array>;
|
|
124
|
+
/**
|
|
125
|
+
* Verify HMAC-SHA256. Standalone utility — not part of CryptoService interface.
|
|
126
|
+
*/
|
|
127
|
+
export declare function verifyHmac(data: Uint8Array, signature: Uint8Array, key: SymmetricKey): Promise<boolean>;
|
|
128
|
+
/**
|
|
129
|
+
* Import and validate a PEM public key, returning algorithm info.
|
|
130
|
+
* Uses JWK export for robust key parameter detection.
|
|
131
|
+
*/
|
|
132
|
+
export declare function parsePublicKeyPem(pem: string): Promise<PublicKeyInfo>;
|
|
133
|
+
/**
|
|
134
|
+
* Convert a JWK (JSON Web Key) to PEM format.
|
|
135
|
+
*/
|
|
136
|
+
export declare function jwkToPublicKeyPem(jwk: JsonWebKey): Promise<string>;
|
|
137
|
+
/**
|
|
138
|
+
* Convert a PEM public key to JWK format.
|
|
139
|
+
* Returns only public key components (no private key data).
|
|
140
|
+
*/
|
|
141
|
+
export declare function publicKeyPemToJwk(publicKeyPem: string): Promise<JsonWebKey>;
|
|
142
|
+
/**
|
|
143
|
+
* Import a PEM public key as an opaque key.
|
|
144
|
+
*/
|
|
145
|
+
export declare function importPublicKey(pem: string, options: KeyOptions): Promise<PublicKey>;
|
|
146
|
+
/**
|
|
147
|
+
* Import a PEM private key as an opaque key.
|
|
148
|
+
*/
|
|
149
|
+
export declare function importPrivateKey(pem: string, options: KeyOptions): Promise<PrivateKey>;
|
|
150
|
+
/**
|
|
151
|
+
* Export an opaque public key to PEM format.
|
|
152
|
+
*/
|
|
153
|
+
export declare function exportPublicKeyPem(key: PublicKey): Promise<string>;
|
|
154
|
+
/**
|
|
155
|
+
* Export an opaque private key to PEM format.
|
|
156
|
+
* ONLY USE FOR TESTING/DEVELOPMENT. Private keys should NOT be exportable in secure environments.
|
|
157
|
+
*/
|
|
158
|
+
export declare function exportPrivateKeyPem(key: PrivateKey): Promise<string>;
|
|
159
|
+
/**
|
|
160
|
+
* Export an opaque public key to JWK format.
|
|
161
|
+
*/
|
|
162
|
+
export declare function exportPublicKeyJwk(key: PublicKey): Promise<JsonWebKey>;
|
|
163
|
+
/**
|
|
164
|
+
* Import raw key bytes as an opaque symmetric key.
|
|
165
|
+
* Used for external keys (e.g., unwrapped from KAS).
|
|
166
|
+
*/
|
|
167
|
+
export declare function importSymmetricKey(keyBytes: Uint8Array): Promise<SymmetricKey>;
|
|
168
|
+
/**
|
|
169
|
+
* Split a symmetric key into N shares using XOR secret sharing.
|
|
170
|
+
* Key bytes are extracted internally for splitting.
|
|
171
|
+
* HSM implementations cannot extract bytes and should throw ConfigurationError.
|
|
172
|
+
*/
|
|
173
|
+
export declare function splitSymmetricKey(key: SymmetricKey, numShares: number): Promise<SymmetricKey[]>;
|
|
174
|
+
/**
|
|
175
|
+
* Merge symmetric key shares back into the original key using XOR.
|
|
176
|
+
* Key bytes are extracted internally for merging.
|
|
177
|
+
*/
|
|
178
|
+
export declare function mergeSymmetricKeys(shares: SymmetricKey[]): Promise<SymmetricKey>;
|
|
102
179
|
export declare const DefaultCryptoService: CryptoService;
|
|
103
180
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/crypto/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/crypto/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt-claims-set.d.ts","sourceRoot":"","sources":["../../../../../../tdf3/src/crypto/jose/jwt-claims-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAG9E,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,eAAe,EAAE,mBAAmB,EACpC,cAAc,EAAE,UAAU,EAC1B,OAAO,CAAC,EAAE,gBAAgB,GACzB,UAAU,CAEZ"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare const _default: (Err: new (message?: string, options?: {
|
|
2
|
+
cause?: unknown;
|
|
3
|
+
}) => Error, recognizedDefault: Map<string, boolean>, recognizedOption: Record<string, boolean> | undefined, protectedHeader: Record<string, unknown> | undefined, joseHeader: Record<string, unknown>) => Set<string>;
|
|
4
|
+
export default _default;
|
|
5
|
+
//# sourceMappingURL=validate-crit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-crit.d.ts","sourceRoot":"","sources":["../../../../../../tdf3/src/crypto/jose/validate-crit.ts"],"names":[],"mappings":"wBAE+B,CAC7B,GAAG,EAAE,KAAK,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,KAAK,KAAK,EACnE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACrD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACpD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAChC,GAAG,CAAC,MAAM,CAAC;AANhB,wBAMiB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const encoder: TextEncoder;
|
|
2
|
+
export declare const decoder: TextDecoder;
|
|
3
|
+
export declare function concat(...buffers: any[]): Uint8Array<any>;
|
|
4
|
+
export declare function uint64be(value: any): Uint8Array<ArrayBuffer>;
|
|
5
|
+
export declare function uint32be(value: any): Uint8Array<ArrayBuffer>;
|
|
6
|
+
//# sourceMappingURL=buffer_utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buffer_utils.d.ts","sourceRoot":"","sources":["../../../../../../../../tdf3/src/crypto/jose/vendor/lib/buffer_utils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,aAAoB,CAAC;AACzC,eAAO,MAAM,OAAO,aAAoB,CAAC;AAEzC,wBAAgB,MAAM,CAAC,GAAG,OAAO,OAAA,mBAShC;AAOD,wBAAgB,QAAQ,CAAC,KAAK,KAAA,2BAO7B;AACD,wBAAgB,QAAQ,CAAC,KAAK,KAAA,2BAI7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"epoch.d.ts","sourceRoot":"","sources":["../../../../../../../../tdf3/src/crypto/jose/vendor/lib/epoch.ts"],"names":[],"mappings":"yBAEgB,SAAI;AAApB,wBAA2D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is_object.d.ts","sourceRoot":"","sources":["../../../../../../../../tdf3/src/crypto/jose/vendor/lib/is_object.ts"],"names":[],"mappings":"yBAKgB,UAAK;AAArB,wBAYE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt_claims_set.d.ts","sourceRoot":"","sources":["../../../../../../../../tdf3/src/crypto/jose/vendor/lib/jwt_claims_set.ts"],"names":[],"mappings":"yBAiBgB,oBAAe,EAAE,mBAAc,EAAE,YAAY;AAA7D,wBAwFE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secs.d.ts","sourceRoot":"","sources":["../../../../../../../../tdf3/src/crypto/jose/vendor/lib/secs.ts"],"names":[],"mappings":"yBAQgB,QAAG;AAAnB,wBAgDE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate_crit.d.ts","sourceRoot":"","sources":["../../../../../../../../tdf3/src/crypto/jose/vendor/lib/validate_crit.ts"],"names":[],"mappings":"yBAGgB,QAAG,EAAE,sBAAiB,EAAE,qBAAgB,EAAE,oBAAe,EAAE,eAAU;AAArF,wBA+BE"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export declare class JOSEError extends Error {
|
|
2
|
+
static code: string;
|
|
3
|
+
code: string;
|
|
4
|
+
constructor(message: any, options: any);
|
|
5
|
+
}
|
|
6
|
+
export declare class JWTClaimValidationFailed extends JOSEError {
|
|
7
|
+
static code: string;
|
|
8
|
+
code: string;
|
|
9
|
+
claim: string;
|
|
10
|
+
reason: string;
|
|
11
|
+
payload: any;
|
|
12
|
+
constructor(message: any, payload: any, claim?: string, reason?: string);
|
|
13
|
+
}
|
|
14
|
+
export declare class JWTExpired extends JOSEError {
|
|
15
|
+
static code: string;
|
|
16
|
+
code: string;
|
|
17
|
+
claim: string;
|
|
18
|
+
reason: string;
|
|
19
|
+
payload: any;
|
|
20
|
+
constructor(message: any, payload: any, claim?: string, reason?: string);
|
|
21
|
+
}
|
|
22
|
+
export declare class JOSEAlgNotAllowed extends JOSEError {
|
|
23
|
+
static code: string;
|
|
24
|
+
code: string;
|
|
25
|
+
}
|
|
26
|
+
export declare class JOSENotSupported extends JOSEError {
|
|
27
|
+
static code: string;
|
|
28
|
+
code: string;
|
|
29
|
+
}
|
|
30
|
+
export declare class JWEDecryptionFailed extends JOSEError {
|
|
31
|
+
static code: string;
|
|
32
|
+
code: string;
|
|
33
|
+
constructor(message: string | undefined, options: any);
|
|
34
|
+
}
|
|
35
|
+
export declare class JWEInvalid extends JOSEError {
|
|
36
|
+
static code: string;
|
|
37
|
+
code: string;
|
|
38
|
+
}
|
|
39
|
+
export declare class JWSInvalid extends JOSEError {
|
|
40
|
+
static code: string;
|
|
41
|
+
code: string;
|
|
42
|
+
}
|
|
43
|
+
export declare class JWTInvalid extends JOSEError {
|
|
44
|
+
static code: string;
|
|
45
|
+
code: string;
|
|
46
|
+
}
|
|
47
|
+
export declare class JWKInvalid extends JOSEError {
|
|
48
|
+
static code: string;
|
|
49
|
+
code: string;
|
|
50
|
+
}
|
|
51
|
+
export declare class JWKSInvalid extends JOSEError {
|
|
52
|
+
static code: string;
|
|
53
|
+
code: string;
|
|
54
|
+
}
|
|
55
|
+
export declare class JWKSNoMatchingKey extends JOSEError {
|
|
56
|
+
static code: string;
|
|
57
|
+
code: string;
|
|
58
|
+
constructor(message: string | undefined, options: any);
|
|
59
|
+
}
|
|
60
|
+
export declare class JWKSMultipleMatchingKeys extends JOSEError {
|
|
61
|
+
[Symbol.asyncIterator]: any;
|
|
62
|
+
static code: string;
|
|
63
|
+
code: string;
|
|
64
|
+
constructor(message: string | undefined, options: any);
|
|
65
|
+
}
|
|
66
|
+
export declare class JWKSTimeout extends JOSEError {
|
|
67
|
+
static code: string;
|
|
68
|
+
code: string;
|
|
69
|
+
constructor(message: string | undefined, options: any);
|
|
70
|
+
}
|
|
71
|
+
export declare class JWSSignatureVerificationFailed extends JOSEError {
|
|
72
|
+
static code: string;
|
|
73
|
+
code: string;
|
|
74
|
+
constructor(message: string | undefined, options: any);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../../../../tdf3/src/crypto/jose/vendor/util/errors.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAU,SAAQ,KAAK;IAChC,MAAM,CAAC,IAAI,SAAsB;IACjC,IAAI,SAAsB;gBACd,OAAO,KAAA,EAAE,OAAO,KAAA;CAK/B;AACD,qBAAa,wBAAyB,SAAQ,SAAS;IACnD,MAAM,CAAC,IAAI,SAAqC;IAChD,IAAI,SAAqC;IACzC,KAAK,SAAC;IACN,MAAM,SAAC;IACP,OAAO,MAAC;gBACI,OAAO,KAAA,EAAE,OAAO,KAAA,EAAE,KAAK,SAAgB,EAAE,MAAM,SAAgB;CAM9E;AACD,qBAAa,UAAW,SAAQ,SAAS;IACrC,MAAM,CAAC,IAAI,SAAqB;IAChC,IAAI,SAAqB;IACzB,KAAK,SAAC;IACN,MAAM,SAAC;IACP,OAAO,MAAC;gBACI,OAAO,KAAA,EAAE,OAAO,KAAA,EAAE,KAAK,SAAgB,EAAE,MAAM,SAAgB;CAM9E;AACD,qBAAa,iBAAkB,SAAQ,SAAS;IAC5C,MAAM,CAAC,IAAI,SAA8B;IACzC,IAAI,SAA8B;CACrC;AACD,qBAAa,gBAAiB,SAAQ,SAAS;IAC3C,MAAM,CAAC,IAAI,SAA4B;IACvC,IAAI,SAA4B;CACnC;AACD,qBAAa,mBAAoB,SAAQ,SAAS;IAC9C,MAAM,CAAC,IAAI,SAA+B;IAC1C,IAAI,SAA+B;gBACvB,OAAO,oBAAgC,EAAE,OAAO,KAAA;CAG/D;AACD,qBAAa,UAAW,SAAQ,SAAS;IACrC,MAAM,CAAC,IAAI,SAAqB;IAChC,IAAI,SAAqB;CAC5B;AACD,qBAAa,UAAW,SAAQ,SAAS;IACrC,MAAM,CAAC,IAAI,SAAqB;IAChC,IAAI,SAAqB;CAC5B;AACD,qBAAa,UAAW,SAAQ,SAAS;IACrC,MAAM,CAAC,IAAI,SAAqB;IAChC,IAAI,SAAqB;CAC5B;AACD,qBAAa,UAAW,SAAQ,SAAS;IACrC,MAAM,CAAC,IAAI,SAAqB;IAChC,IAAI,SAAqB;CAC5B;AACD,qBAAa,WAAY,SAAQ,SAAS;IACtC,MAAM,CAAC,IAAI,SAAsB;IACjC,IAAI,SAAsB;CAC7B;AACD,qBAAa,iBAAkB,SAAQ,SAAS;IAC5C,MAAM,CAAC,IAAI,SAA8B;IACzC,IAAI,SAA8B;gBACtB,OAAO,oBAAoD,EAAE,OAAO,KAAA;CAGnF;AACD,qBAAa,wBAAyB,SAAQ,SAAS;IACnD,CAAC,MAAM,CAAC,aAAa,CAAC,MAAC;IACvB,MAAM,CAAC,IAAI,SAAqC;IAChD,IAAI,SAAqC;gBAC7B,OAAO,oBAAyD,EAAE,OAAO,KAAA;CAGxF;AACD,qBAAa,WAAY,SAAQ,SAAS;IACtC,MAAM,CAAC,IAAI,SAAsB;IACjC,IAAI,SAAsB;gBACd,OAAO,oBAAsB,EAAE,OAAO,KAAA;CAGrD;AACD,qBAAa,8BAA+B,SAAQ,SAAS;IACzD,MAAM,CAAC,IAAI,SAA2C;IACtD,IAAI,SAA2C;gBACnC,OAAO,oBAAkC,EAAE,OAAO,KAAA;CAGjE"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type CryptoService, type PrivateKey, type PublicKey, type SigningAlgorithm, type SymmetricKey } from './declarations.js';
|
|
2
|
+
import { type JWTHeaderParameters, type JWTPayload, type JWTVerifyOptions, type SignOptions } from 'jose';
|
|
3
|
+
export type JwtHeader = JWTHeaderParameters & {
|
|
4
|
+
alg: SigningAlgorithm;
|
|
5
|
+
};
|
|
6
|
+
export type JwtPayload = JWTPayload;
|
|
7
|
+
/**
|
|
8
|
+
* Options for JWT signing. Matches jose SignOptions interface.
|
|
9
|
+
*/
|
|
10
|
+
export type SignJwtOptions = SignOptions;
|
|
11
|
+
/**
|
|
12
|
+
* Options for JWT verification. Matches jose JWTVerifyOptions interface.
|
|
13
|
+
* Combines signature verification options and JWT claim verification options.
|
|
14
|
+
*/
|
|
15
|
+
export type VerifyJwtOptions = Omit<JWTVerifyOptions, 'algorithms'> & {
|
|
16
|
+
/**
|
|
17
|
+
* A list of accepted JWS "alg" (Algorithm) Header Parameter values.
|
|
18
|
+
* By default all algorithms supported by the CryptoService are allowed.
|
|
19
|
+
* Unsecured JWTs ({ "alg": "none" }) are never accepted.
|
|
20
|
+
*/
|
|
21
|
+
algorithms?: SigningAlgorithm[];
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Base64url encode data per RFC 4648 Section 5.
|
|
25
|
+
* Uses URL-safe alphabet (- and _ instead of + and /) with no padding.
|
|
26
|
+
* Exported for testing purposes.
|
|
27
|
+
*/
|
|
28
|
+
export declare function base64urlEncode(data: string | Uint8Array): string;
|
|
29
|
+
/**
|
|
30
|
+
* Decode the protected header from a JWT without verifying the signature.
|
|
31
|
+
* Useful for inspecting the header to determine key type before verification.
|
|
32
|
+
*
|
|
33
|
+
* @param token - The JWT string
|
|
34
|
+
* @returns The decoded header
|
|
35
|
+
* @throws Error if the token is malformed or uses alg "none"
|
|
36
|
+
*/
|
|
37
|
+
export declare function decodeProtectedHeader(token: string): JwtHeader;
|
|
38
|
+
/**
|
|
39
|
+
* Sign a JWT using CryptoService. Replaces jose SignJWT.
|
|
40
|
+
*
|
|
41
|
+
* Implementation:
|
|
42
|
+
* 1. Base64url encode header and payload as JSON
|
|
43
|
+
* 2. Create signing input: `${headerB64}.${payloadB64}`
|
|
44
|
+
* 3. Sign via cryptoService.sign() (asymmetric) or hmac() (HS256)
|
|
45
|
+
* 4. Return compact JWT: `${headerB64}.${payloadB64}.${signatureB64}`
|
|
46
|
+
*
|
|
47
|
+
* @param cryptoService - Crypto implementation to use
|
|
48
|
+
* @param payload - JWT payload (claims)
|
|
49
|
+
* @param key - PEM-encoded private key for asymmetric algorithms, or raw key bytes for HS256
|
|
50
|
+
* @param header - JWT header (must include alg)
|
|
51
|
+
* @param options - Optional signing options (e.g., crit header handling)
|
|
52
|
+
* @returns Compact JWT string
|
|
53
|
+
*/
|
|
54
|
+
export declare function signJwt(cryptoService: CryptoService, payload: JwtPayload, key: PrivateKey | SymmetricKey, header: JwtHeader, options?: SignJwtOptions): Promise<string>;
|
|
55
|
+
/**
|
|
56
|
+
* Verify a JWT and return its contents. Replaces jose jwtVerify.
|
|
57
|
+
*
|
|
58
|
+
* Implementation:
|
|
59
|
+
* 1. Split token into header.payload.signature
|
|
60
|
+
* 2. Decode header, validate algorithm against allowlist
|
|
61
|
+
* 3. Verify signature via cryptoService.verify() (asymmetric) or verifyHmac() (HS256)
|
|
62
|
+
* 4. Validate JWT claims (aud, iss, exp, nbf, etc.)
|
|
63
|
+
* 5. Return decoded header and payload
|
|
64
|
+
*
|
|
65
|
+
* @param cryptoService - Crypto implementation to use
|
|
66
|
+
* @param token - The JWT string to verify
|
|
67
|
+
* @param key - For asymmetric: PEM string or PublicKey (opaque). For HS256: Uint8Array or SymmetricKey (opaque).
|
|
68
|
+
* @param options - Verification options including algorithm allowlist and claim validations
|
|
69
|
+
* @throws Error if signature invalid, algorithm not in allowlist, claims invalid, or token malformed
|
|
70
|
+
* @returns Decoded header and payload
|
|
71
|
+
*/
|
|
72
|
+
export declare function verifyJwt(cryptoService: CryptoService, token: string, key: string | Uint8Array | PublicKey | SymmetricKey, options?: VerifyJwtOptions): Promise<{
|
|
73
|
+
header: JwtHeader;
|
|
74
|
+
payload: JwtPayload;
|
|
75
|
+
}>;
|
|
76
|
+
//# sourceMappingURL=jwt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/crypto/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,MAAM,CAAC;AAId,MAAM,MAAM,SAAS,GAAG,mBAAmB,GAAG;IAAE,GAAG,EAAE,gBAAgB,CAAA;CAAE,CAAC;AACxE,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,GAAG;IACpE;;;;OAIG;IACH,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAUjE;AAwBD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAE9D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,OAAO,CAC3B,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,UAAU,EACnB,GAAG,EAAE,UAAU,GAAG,YAAY,EAC9B,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,CA+BjB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,SAAS,CAC7B,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,EACnD,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC,CAsFrD"}
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import type { CryptoService } from './declarations.js';
|
|
2
|
+
/**
|
|
3
|
+
* Get the ZTDF salt (SHA-256 of "TDF").
|
|
4
|
+
* Lazily computed on first call and cached thereafter.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getZtdfSalt(cryptoService: CryptoService): Promise<Uint8Array>;
|
|
2
7
|
//# sourceMappingURL=salt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salt.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/crypto/salt.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"salt.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/crypto/salt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD;;;GAGG;AACH,wBAAsB,WAAW,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAUnF"}
|
|
@@ -2,10 +2,10 @@ import { Binary } from '../binary.js';
|
|
|
2
2
|
import { type SymmetricCipher } from '../ciphers/symmetric-cipher-base.js';
|
|
3
3
|
import { type KeyAccess, type KeyAccessObject } from './key-access.js';
|
|
4
4
|
import { type Policy } from './policy.js';
|
|
5
|
-
import { type CryptoService, type DecryptResult, type EncryptResult } from '../crypto/declarations.js';
|
|
5
|
+
import { type CryptoService, type DecryptResult, type EncryptResult, type SymmetricKey } from '../crypto/declarations.js';
|
|
6
6
|
import { IntegrityAlgorithm } from '../tdf.js';
|
|
7
7
|
export type KeyInfo = {
|
|
8
|
-
readonly
|
|
8
|
+
readonly unwrappedKey: SymmetricKey;
|
|
9
9
|
readonly unwrappedKeyIvBinary: Binary;
|
|
10
10
|
};
|
|
11
11
|
export type Segment = {
|
|
@@ -40,8 +40,8 @@ export declare class SplitKey {
|
|
|
40
40
|
keyAccess: KeyAccess[];
|
|
41
41
|
constructor(cipher: SymmetricCipher);
|
|
42
42
|
generateKey(): Promise<KeyInfo>;
|
|
43
|
-
encrypt(contentBinary: Binary,
|
|
44
|
-
decrypt(content: Uint8Array,
|
|
43
|
+
encrypt(contentBinary: Binary, key: SymmetricKey, ivBinaryOptional?: Binary): Promise<EncryptResult>;
|
|
44
|
+
decrypt(content: Uint8Array, key: SymmetricKey): Promise<DecryptResult>;
|
|
45
45
|
getKeyAccessObjects(policy: Policy, keyInfo: KeyInfo): Promise<KeyAccessObject[]>;
|
|
46
46
|
generateIvBinary(): Promise<Binary>;
|
|
47
47
|
write(policy: Policy, keyInfo: KeyInfo): Promise<EncryptionInformation>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption-information.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/models/encryption-information.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"encryption-information.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/models/encryption-information.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAG/C,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC;AAEhC,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC;IACtC,QAAQ,CAAC,oBAAoB,EAAE;QAC7B,QAAQ,CAAC,aAAa,EAAE;YACtB,GAAG,EAAE,kBAAkB,CAAC;YACxB,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;QACF,cAAc,CAAC,EAAE,kBAAkB,CAAC;QACpC,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,2BAA2B,CAAC,EAAE,MAAM,CAAC;KACtC,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,YAAY,EAAE,OAAO,CAAC;QACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,QAAQ;aAIS,MAAM,EAAE,eAAe;IAHnD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,SAAS,EAAE,SAAS,EAAE,CAAC;gBAEK,MAAM,EAAE,eAAe;IAK7C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAM/B,OAAO,CACX,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,YAAY,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,aAAa,CAAC;IAKnB,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAIvE,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAmDjF,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKnC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;CA8B9E"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CryptoService, KeyPair, SymmetricKey } from '../crypto/declarations.js';
|
|
1
2
|
import { Policy } from './policy.js';
|
|
2
3
|
export type KeyAccessType = 'remote' | 'wrapped' | 'ec-wrapped';
|
|
3
4
|
export declare const schemaVersion = "1.0";
|
|
@@ -6,23 +7,25 @@ export declare class ECWrapped {
|
|
|
6
7
|
readonly kid: string | undefined;
|
|
7
8
|
readonly publicKey: string;
|
|
8
9
|
readonly metadata: unknown;
|
|
10
|
+
readonly cryptoService: CryptoService;
|
|
9
11
|
readonly sid?: string | undefined;
|
|
10
12
|
readonly type = "ec-wrapped";
|
|
11
|
-
readonly ephemeralKeyPair: Promise<
|
|
13
|
+
readonly ephemeralKeyPair: Promise<KeyPair>;
|
|
12
14
|
keyAccessObject?: KeyAccessObject;
|
|
13
|
-
constructor(url: string, kid: string | undefined, publicKey: string, metadata: unknown, sid?: string | undefined);
|
|
14
|
-
write(policy: Policy, dek:
|
|
15
|
+
constructor(url: string, kid: string | undefined, publicKey: string, metadata: unknown, cryptoService: CryptoService, sid?: string | undefined);
|
|
16
|
+
write(policy: Policy, dek: SymmetricKey, encryptedMetadataStr: string): Promise<KeyAccessObject>;
|
|
15
17
|
}
|
|
16
18
|
export declare class Wrapped {
|
|
17
19
|
readonly url: string;
|
|
18
20
|
readonly kid: string | undefined;
|
|
19
21
|
readonly publicKey: string;
|
|
20
22
|
readonly metadata: unknown;
|
|
23
|
+
readonly cryptoService: CryptoService;
|
|
21
24
|
readonly sid?: string | undefined;
|
|
22
25
|
readonly type = "wrapped";
|
|
23
26
|
keyAccessObject?: KeyAccessObject;
|
|
24
|
-
constructor(url: string, kid: string | undefined, publicKey: string, metadata: unknown, sid?: string | undefined);
|
|
25
|
-
write(policy: Policy,
|
|
27
|
+
constructor(url: string, kid: string | undefined, publicKey: string, metadata: unknown, cryptoService: CryptoService, sid?: string | undefined);
|
|
28
|
+
write(policy: Policy, key: SymmetricKey, encryptedMetadataStr: string): Promise<KeyAccessObject>;
|
|
26
29
|
}
|
|
27
30
|
export type KeyAccess = ECWrapped | Wrapped;
|
|
28
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-access.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/models/key-access.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"key-access.d.ts","sourceRoot":"","sources":["../../../../../tdf3/src/models/key-access.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGtF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;AAEhE,eAAO,MAAM,aAAa,QAAQ,CAAC;AAEnC,qBAAa,SAAS;aAMF,GAAG,EAAE,MAAM;aACX,GAAG,EAAE,MAAM,GAAG,SAAS;aACvB,SAAS,EAAE,MAAM;aACjB,QAAQ,EAAE,OAAO;aACjB,aAAa,EAAE,aAAa;aAC5B,GAAG,CAAC,EAAE,MAAM;IAV9B,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,eAAe,CAAC,EAAE,eAAe,CAAC;gBAGhB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EACjB,aAAa,EAAE,aAAa,EAC5B,GAAG,CAAC,EAAE,MAAM,YAAA;IAMxB,KAAK,CACT,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,YAAY,EACjB,oBAAoB,EAAE,MAAM,GAC3B,OAAO,CAAC,eAAe,CAAC;CAmE5B;AAED,qBAAa,OAAO;aAKA,GAAG,EAAE,MAAM;aACX,GAAG,EAAE,MAAM,GAAG,SAAS;aACvB,SAAS,EAAE,MAAM;aACjB,QAAQ,EAAE,OAAO;aACjB,aAAa,EAAE,aAAa;aAC5B,GAAG,CAAC,EAAE,MAAM;IAT9B,QAAQ,CAAC,IAAI,aAAa;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;gBAGhB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EACjB,aAAa,EAAE,aAAa,EAC5B,GAAG,CAAC,EAAE,MAAM,YAAA;IAGxB,KAAK,CACT,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,YAAY,EACjB,oBAAoB,EAAE,MAAM,GAC3B,OAAO,CAAC,eAAe,CAAC;CAkC5B;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,IAAI,EAAE,aAAa,CAAC;IAEpB;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,aAAa,CAAC,EAAE;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC"}
|
|
@@ -2,11 +2,10 @@ import { KasPublicKeyAlgorithm, KasPublicKeyInfo, OriginAllowList } from '../../
|
|
|
2
2
|
import { type AuthProvider } from '../../src/auth/auth.js';
|
|
3
3
|
import { type Chunker } from '../../src/seekable.js';
|
|
4
4
|
import { AssertionConfig, AssertionVerificationKeys } from './assertions.js';
|
|
5
|
-
import { Binary } from './binary.js';
|
|
6
5
|
import { SymmetricCipher } from './ciphers/symmetric-cipher-base.js';
|
|
7
6
|
import { DecryptParams } from './client/builders.js';
|
|
8
7
|
import { DecoratedReadableStream } from './client/DecoratedReadableStream.js';
|
|
9
|
-
import { type CryptoService, type DecryptResult } from './crypto/declarations.js';
|
|
8
|
+
import { type CryptoService, type DecryptResult, type KeyPair, type SymmetricKey } from './crypto/declarations.js';
|
|
10
9
|
import { KeyAccessType, KeyInfo, Manifest, Policy, SplitKey, KeyAccess, KeyAccessObject, SplitType } from './models/index.js';
|
|
11
10
|
import { ZipReader } from './utils/index.js';
|
|
12
11
|
import { CentralDirectory } from './utils/zip-reader.js';
|
|
@@ -30,6 +29,7 @@ export type BuildKeyAccess = {
|
|
|
30
29
|
publicKey: string;
|
|
31
30
|
metadata?: Metadata;
|
|
32
31
|
sid?: string;
|
|
32
|
+
cryptoService: CryptoService;
|
|
33
33
|
};
|
|
34
34
|
type Mailbox<T> = Promise<T> & {
|
|
35
35
|
set: (value: T) => void;
|
|
@@ -46,7 +46,7 @@ export type IntegrityAlgorithm = 'GMAC' | 'HS256';
|
|
|
46
46
|
export type EncryptConfiguration = {
|
|
47
47
|
allowList?: OriginAllowList;
|
|
48
48
|
cryptoService: CryptoService;
|
|
49
|
-
dpopKeys:
|
|
49
|
+
dpopKeys: KeyPair;
|
|
50
50
|
encryptionInformation: SplitKey;
|
|
51
51
|
segmentSizeDefault: number;
|
|
52
52
|
integrityAlgorithm: IntegrityAlgorithm;
|
|
@@ -69,7 +69,7 @@ export type DecryptConfiguration = {
|
|
|
69
69
|
allowList?: OriginAllowList;
|
|
70
70
|
authProvider: AuthProvider;
|
|
71
71
|
cryptoService: CryptoService;
|
|
72
|
-
dpopKeys:
|
|
72
|
+
dpopKeys: KeyPair;
|
|
73
73
|
chunker: Chunker;
|
|
74
74
|
keyMiddleware: KeyMiddleware;
|
|
75
75
|
progressHandler?: (bytesProcessed: number) => void;
|
|
@@ -96,7 +96,7 @@ export type KasPublicKeyFormat = 'pkcs8' | 'jwks';
|
|
|
96
96
|
* the value from `${kas}/kas_public_key`.
|
|
97
97
|
*/
|
|
98
98
|
export declare function fetchKasPublicKey(kas: string, algorithm?: KasPublicKeyAlgorithm, kid?: string): Promise<KasPublicKeyInfo>;
|
|
99
|
-
export declare function extractPemFromKeyString(keyString: string, alg: KasPublicKeyAlgorithm): Promise<string>;
|
|
99
|
+
export declare function extractPemFromKeyString(keyString: string, alg: KasPublicKeyAlgorithm, cryptoService: CryptoService): Promise<string>;
|
|
100
100
|
/**
|
|
101
101
|
* Build a key access object and add it to the list. Can specify either
|
|
102
102
|
* a (url, publicKey) pair (legacy, deprecated) or an attribute URL (future).
|
|
@@ -110,7 +110,7 @@ export declare function extractPemFromKeyString(keyString: string, alg: KasPubli
|
|
|
110
110
|
* @param {String? Object?} options.metadata - Metadata. Appears to be dead code.
|
|
111
111
|
* @return {KeyAccess}- the key access object loaded
|
|
112
112
|
*/
|
|
113
|
-
export declare function buildKeyAccess({ type, url, publicKey, kid, metadata, sid, alg, }: BuildKeyAccess): Promise<KeyAccess>;
|
|
113
|
+
export declare function buildKeyAccess({ type, url, publicKey, kid, metadata, sid, alg, cryptoService, }: BuildKeyAccess): Promise<KeyAccess>;
|
|
114
114
|
export declare function validatePolicyObject(policy: Policy): void;
|
|
115
115
|
export declare function writeStream(cfg: EncryptConfiguration): Promise<DecoratedReadableStream>;
|
|
116
116
|
export type InspectedTDFOverview = {
|
|
@@ -120,9 +120,9 @@ export type InspectedTDFOverview = {
|
|
|
120
120
|
};
|
|
121
121
|
export declare function loadTDFStream(chunker: Chunker): Promise<InspectedTDFOverview>;
|
|
122
122
|
export declare function splitLookupTableFactory(keyAccess: KeyAccessObject[], allowedKases: OriginAllowList): Record<string, Record<string, KeyAccessObject>>;
|
|
123
|
-
export declare function sliceAndDecrypt({ buffer,
|
|
123
|
+
export declare function sliceAndDecrypt({ buffer, reconstructedKey, slice, cipher, cryptoService, segmentIntegrityAlgorithm, specVersion, }: {
|
|
124
124
|
buffer: Uint8Array;
|
|
125
|
-
|
|
125
|
+
reconstructedKey: SymmetricKey;
|
|
126
126
|
slice: Chunk[];
|
|
127
127
|
cipher: SymmetricCipher;
|
|
128
128
|
cryptoService: CryptoService;
|