@enbox/crypto 0.0.2 → 0.0.4
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 +34 -102
- package/dist/browser.mjs +6 -10
- package/dist/browser.mjs.map +4 -4
- package/dist/esm/algorithms/aes-ctr.js +1 -1
- package/dist/esm/algorithms/aes-gcm.js +35 -2
- package/dist/esm/algorithms/aes-gcm.js.map +1 -1
- package/dist/esm/algorithms/aes-kw.js +154 -0
- package/dist/esm/algorithms/aes-kw.js.map +1 -0
- package/dist/esm/algorithms/ecdsa.js +119 -6
- package/dist/esm/algorithms/ecdsa.js.map +1 -1
- package/dist/esm/algorithms/eddsa.js +99 -6
- package/dist/esm/algorithms/eddsa.js.map +1 -1
- package/dist/esm/algorithms/hkdf.js +53 -0
- package/dist/esm/algorithms/hkdf.js.map +1 -0
- package/dist/esm/algorithms/pbkdf2.js +55 -0
- package/dist/esm/algorithms/pbkdf2.js.map +1 -0
- package/dist/esm/algorithms/sha-2.js +2 -2
- package/dist/esm/algorithms/sha-2.js.map +1 -1
- package/dist/esm/algorithms/x25519.js +125 -0
- package/dist/esm/algorithms/x25519.js.map +1 -0
- package/dist/esm/crypto-error.js +41 -0
- package/dist/esm/crypto-error.js.map +1 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/jose/jwk.js +52 -26
- package/dist/esm/jose/jwk.js.map +1 -1
- package/dist/esm/local-key-manager.js +9 -3
- package/dist/esm/local-key-manager.js.map +1 -1
- package/dist/esm/primitives/aes-ctr.js.map +1 -1
- package/dist/esm/primitives/aes-gcm.js.map +1 -1
- package/dist/esm/primitives/aes-kw.js +246 -0
- package/dist/esm/primitives/aes-kw.js.map +1 -0
- package/dist/esm/primitives/concat-kdf.js +1 -1
- package/dist/esm/primitives/concat-kdf.js.map +1 -1
- package/dist/esm/primitives/ecies-secp256k1.js +79 -0
- package/dist/esm/primitives/ecies-secp256k1.js.map +1 -0
- package/dist/esm/primitives/ed25519.js +3 -3
- package/dist/esm/primitives/ed25519.js.map +1 -1
- package/dist/esm/primitives/hkdf.js +79 -0
- package/dist/esm/primitives/hkdf.js.map +1 -0
- package/dist/esm/primitives/pbkdf2.js +49 -0
- package/dist/esm/primitives/pbkdf2.js.map +1 -1
- package/dist/esm/primitives/secp256k1.js +4 -4
- package/dist/esm/primitives/secp256k1.js.map +1 -1
- package/dist/esm/primitives/secp256r1.js +4 -4
- package/dist/esm/primitives/secp256r1.js.map +1 -1
- package/dist/esm/primitives/x25519.js +10 -17
- package/dist/esm/primitives/x25519.js.map +1 -1
- package/dist/esm/primitives/xchacha20-poly1305.js +48 -3
- package/dist/esm/primitives/xchacha20-poly1305.js.map +1 -1
- package/dist/esm/primitives/xchacha20.js +1 -1
- package/dist/esm/primitives/xchacha20.js.map +1 -1
- package/dist/esm/utils.js +30 -0
- package/dist/esm/utils.js.map +1 -1
- package/dist/types/algorithms/aes-ctr.d.ts +2 -2
- package/dist/types/algorithms/aes-ctr.d.ts.map +1 -1
- package/dist/types/algorithms/aes-gcm.d.ts +25 -5
- package/dist/types/algorithms/aes-gcm.d.ts.map +1 -1
- package/dist/types/algorithms/aes-kw.d.ts +129 -0
- package/dist/types/algorithms/aes-kw.d.ts.map +1 -0
- package/dist/types/algorithms/ecdsa.d.ts +49 -4
- package/dist/types/algorithms/ecdsa.d.ts.map +1 -1
- package/dist/types/algorithms/eddsa.d.ts +49 -4
- package/dist/types/algorithms/eddsa.d.ts.map +1 -1
- package/dist/types/algorithms/hkdf.d.ts +35 -0
- package/dist/types/algorithms/hkdf.d.ts.map +1 -0
- package/dist/types/algorithms/pbkdf2.d.ts +35 -0
- package/dist/types/algorithms/pbkdf2.d.ts.map +1 -0
- package/dist/types/algorithms/sha-2.d.ts +2 -2
- package/dist/types/algorithms/sha-2.d.ts.map +1 -1
- package/dist/types/algorithms/x25519.d.ts +76 -0
- package/dist/types/algorithms/x25519.d.ts.map +1 -0
- package/dist/types/crypto-error.d.ts +29 -0
- package/dist/types/crypto-error.d.ts.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/jose/jwk.d.ts.map +1 -1
- package/dist/types/local-key-manager.d.ts +6 -6
- package/dist/types/local-key-manager.d.ts.map +1 -1
- package/dist/types/primitives/aes-kw.d.ts +103 -0
- package/dist/types/primitives/aes-kw.d.ts.map +1 -0
- package/dist/types/primitives/concat-kdf.d.ts +1 -1
- package/dist/types/primitives/concat-kdf.d.ts.map +1 -1
- package/dist/types/primitives/ecies-secp256k1.d.ts +53 -0
- package/dist/types/primitives/ecies-secp256k1.d.ts.map +1 -0
- package/dist/types/primitives/hkdf.d.ts +90 -0
- package/dist/types/primitives/hkdf.d.ts.map +1 -0
- package/dist/types/primitives/pbkdf2.d.ts +58 -0
- package/dist/types/primitives/pbkdf2.d.ts.map +1 -1
- package/dist/types/primitives/x25519.d.ts +9 -16
- package/dist/types/primitives/x25519.d.ts.map +1 -1
- package/dist/types/primitives/xchacha20-poly1305.d.ts +47 -0
- package/dist/types/primitives/xchacha20-poly1305.d.ts.map +1 -1
- package/dist/types/types/cipher.d.ts +1 -1
- package/dist/types/types/crypto-api.d.ts +54 -6
- package/dist/types/types/crypto-api.d.ts.map +1 -1
- package/dist/types/types/key-converter.d.ts +37 -15
- package/dist/types/types/key-converter.d.ts.map +1 -1
- package/dist/types/types/key-deriver.d.ts +41 -0
- package/dist/types/types/key-deriver.d.ts.map +1 -1
- package/dist/types/types/key-io.d.ts +37 -0
- package/dist/types/types/key-io.d.ts.map +1 -1
- package/dist/types/types/params-direct.d.ts +96 -1
- package/dist/types/types/params-direct.d.ts.map +1 -1
- package/dist/types/types/params-kms.d.ts +55 -0
- package/dist/types/types/params-kms.d.ts.map +1 -1
- package/dist/types/utils.d.ts +19 -0
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/utils.js.map +4 -4
- package/package.json +29 -45
- package/src/algorithms/aes-ctr.ts +2 -2
- package/src/algorithms/aes-gcm.ts +41 -4
- package/src/algorithms/aes-kw.ts +182 -0
- package/src/algorithms/ecdsa.ts +145 -8
- package/src/algorithms/eddsa.ts +117 -10
- package/src/algorithms/hkdf.ts +54 -0
- package/src/algorithms/pbkdf2.ts +57 -0
- package/src/algorithms/sha-2.ts +3 -3
- package/src/algorithms/x25519.ts +153 -0
- package/src/crypto-error.ts +45 -0
- package/src/index.ts +8 -0
- package/src/jose/jwk.ts +32 -32
- package/src/local-key-manager.ts +22 -16
- package/src/primitives/aes-ctr.ts +1 -1
- package/src/primitives/aes-gcm.ts +5 -5
- package/src/primitives/aes-kw.ts +269 -0
- package/src/primitives/concat-kdf.ts +4 -2
- package/src/primitives/ecies-secp256k1.ts +113 -0
- package/src/primitives/ed25519.ts +6 -6
- package/src/primitives/hkdf.ts +121 -0
- package/src/primitives/pbkdf2.ts +91 -0
- package/src/primitives/secp256k1.ts +6 -6
- package/src/primitives/secp256r1.ts +6 -6
- package/src/primitives/x25519.ts +12 -19
- package/src/primitives/xchacha20-poly1305.ts +57 -4
- package/src/primitives/xchacha20.ts +1 -1
- package/src/types/cipher.ts +1 -1
- package/src/types/crypto-api.ts +129 -11
- package/src/types/key-converter.ts +33 -7
- package/src/types/key-deriver.ts +49 -0
- package/src/types/key-io.ts +40 -0
- package/src/types/params-direct.ts +118 -1
- package/src/types/params-kms.ts +67 -0
- package/src/utils.ts +55 -2
- package/dist/browser.js +0 -64
- package/dist/browser.js.map +0 -7
- package/dist/cjs/algorithms/aes-ctr.js +0 -188
- package/dist/cjs/algorithms/aes-ctr.js.map +0 -1
- package/dist/cjs/algorithms/aes-gcm.js +0 -196
- package/dist/cjs/algorithms/aes-gcm.js.map +0 -1
- package/dist/cjs/algorithms/crypto-algorithm.js +0 -13
- package/dist/cjs/algorithms/crypto-algorithm.js.map +0 -1
- package/dist/cjs/algorithms/ecdsa.js +0 -352
- package/dist/cjs/algorithms/ecdsa.js.map +0 -1
- package/dist/cjs/algorithms/eddsa.js +0 -325
- package/dist/cjs/algorithms/eddsa.js.map +0 -1
- package/dist/cjs/algorithms/sha-2.js +0 -119
- package/dist/cjs/algorithms/sha-2.js.map +0 -1
- package/dist/cjs/index.js +0 -41
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/jose/jwe.js +0 -3
- package/dist/cjs/jose/jwe.js.map +0 -1
- package/dist/cjs/jose/jwk.js +0 -278
- package/dist/cjs/jose/jwk.js.map +0 -1
- package/dist/cjs/jose/jws.js +0 -3
- package/dist/cjs/jose/jws.js.map +0 -1
- package/dist/cjs/jose/jwt.js +0 -3
- package/dist/cjs/jose/jwt.js.map +0 -1
- package/dist/cjs/jose/utils.js +0 -60
- package/dist/cjs/jose/utils.js.map +0 -1
- package/dist/cjs/local-key-manager.js +0 -521
- package/dist/cjs/local-key-manager.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/primitives/aes-ctr.js +0 -398
- package/dist/cjs/primitives/aes-ctr.js.map +0 -1
- package/dist/cjs/primitives/aes-gcm.js +0 -425
- package/dist/cjs/primitives/aes-gcm.js.map +0 -1
- package/dist/cjs/primitives/concat-kdf.js +0 -215
- package/dist/cjs/primitives/concat-kdf.js.map +0 -1
- package/dist/cjs/primitives/ed25519.js +0 -651
- package/dist/cjs/primitives/ed25519.js.map +0 -1
- package/dist/cjs/primitives/pbkdf2.js +0 -120
- package/dist/cjs/primitives/pbkdf2.js.map +0 -1
- package/dist/cjs/primitives/secp256k1.js +0 -958
- package/dist/cjs/primitives/secp256k1.js.map +0 -1
- package/dist/cjs/primitives/secp256r1.js +0 -959
- package/dist/cjs/primitives/secp256r1.js.map +0 -1
- package/dist/cjs/primitives/sha256.js +0 -93
- package/dist/cjs/primitives/sha256.js.map +0 -1
- package/dist/cjs/primitives/x25519.js +0 -498
- package/dist/cjs/primitives/x25519.js.map +0 -1
- package/dist/cjs/primitives/xchacha20-poly1305.js +0 -340
- package/dist/cjs/primitives/xchacha20-poly1305.js.map +0 -1
- package/dist/cjs/primitives/xchacha20.js +0 -316
- package/dist/cjs/primitives/xchacha20.js.map +0 -1
- package/dist/cjs/types/cipher.js +0 -3
- package/dist/cjs/types/cipher.js.map +0 -1
- package/dist/cjs/types/crypto-api.js +0 -3
- package/dist/cjs/types/crypto-api.js.map +0 -1
- package/dist/cjs/types/hasher.js +0 -3
- package/dist/cjs/types/hasher.js.map +0 -1
- package/dist/cjs/types/identifier.js +0 -3
- package/dist/cjs/types/identifier.js.map +0 -1
- package/dist/cjs/types/key-compressor.js +0 -3
- package/dist/cjs/types/key-compressor.js.map +0 -1
- package/dist/cjs/types/key-converter.js +0 -3
- package/dist/cjs/types/key-converter.js.map +0 -1
- package/dist/cjs/types/key-deriver.js +0 -3
- package/dist/cjs/types/key-deriver.js.map +0 -1
- package/dist/cjs/types/key-generator.js +0 -3
- package/dist/cjs/types/key-generator.js.map +0 -1
- package/dist/cjs/types/key-io.js +0 -3
- package/dist/cjs/types/key-io.js.map +0 -1
- package/dist/cjs/types/key-wrapper.js +0 -3
- package/dist/cjs/types/key-wrapper.js.map +0 -1
- package/dist/cjs/types/params-direct.js +0 -3
- package/dist/cjs/types/params-direct.js.map +0 -1
- package/dist/cjs/types/params-enclosed.js +0 -3
- package/dist/cjs/types/params-enclosed.js.map +0 -1
- package/dist/cjs/types/params-kms.js +0 -3
- package/dist/cjs/types/params-kms.js.map +0 -1
- package/dist/cjs/types/signer.js +0 -3
- package/dist/cjs/types/signer.js.map +0 -1
- package/dist/cjs/utils.js +0 -173
- package/dist/cjs/utils.js.map +0 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
11
|
+
var t = {};
|
|
12
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
13
|
+
t[p] = s[p];
|
|
14
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
15
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
16
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
17
|
+
t[p[i]] = s[p[i]];
|
|
18
|
+
}
|
|
19
|
+
return t;
|
|
20
|
+
};
|
|
21
|
+
import { CryptoAlgorithm } from './crypto-algorithm.js';
|
|
22
|
+
import { Hkdf } from '../primitives/hkdf.js';
|
|
23
|
+
/**
|
|
24
|
+
* The `HkdfAlgorithm` class provides a concrete implementation for HKDF key derivation. It wraps
|
|
25
|
+
* the {@link Hkdf} primitive and maps JOSE algorithm names to hash functions.
|
|
26
|
+
*/
|
|
27
|
+
export class HkdfAlgorithm extends CryptoAlgorithm {
|
|
28
|
+
/**
|
|
29
|
+
* Derives a cryptographic byte array using HKDF.
|
|
30
|
+
*
|
|
31
|
+
* @param params - The parameters for the key derivation operation.
|
|
32
|
+
* @param params.algorithm - The HKDF algorithm variant (e.g., `'HKDF-256'`).
|
|
33
|
+
* @param params.baseKeyBytes - The input key material.
|
|
34
|
+
* @param params.length - The desired length of the output in bits.
|
|
35
|
+
*
|
|
36
|
+
* @returns A Promise that resolves to the derived key bytes.
|
|
37
|
+
*/
|
|
38
|
+
deriveKeyBytes(_a) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
var { algorithm } = _a, params = __rest(_a, ["algorithm"]);
|
|
41
|
+
// Map algorithm name to hash function.
|
|
42
|
+
const hash = {
|
|
43
|
+
'HKDF-256': 'SHA-256',
|
|
44
|
+
'HKDF-384': 'SHA-384',
|
|
45
|
+
'HKDF-512': 'SHA-512'
|
|
46
|
+
}[algorithm];
|
|
47
|
+
// Derive a cryptographic byte array using HKDF.
|
|
48
|
+
const derivedKeyBytes = yield Hkdf.deriveKeyBytes(Object.assign(Object.assign({}, params), { hash }));
|
|
49
|
+
return derivedKeyBytes;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=hkdf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hkdf.js","sourceRoot":"","sources":["../../../src/algorithms/hkdf.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAgB7C;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,eAAe;IAGhD;;;;;;;;;OASG;IACU,cAAc,CAAC,EACyB;;gBADzB,EAAE,SAAS,OACc,EADT,MAAM,cAAtB,aAAwB,CAAF;YAGhD,uCAAuC;YACvC,MAAM,IAAI,GAAG;gBACX,UAAU,EAAG,SAAkB;gBAC/B,UAAU,EAAG,SAAkB;gBAC/B,UAAU,EAAG,SAAkB;aAChC,CAAC,SAAS,CAAC,CAAC;YAEb,gDAAgD;YAChD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,iCAAM,MAAM,KAAE,IAAI,IAAG,CAAC;YAEvE,OAAO,eAAe,CAAC;QACzB,CAAC;KAAA;CACF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
11
|
+
var t = {};
|
|
12
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
13
|
+
t[p] = s[p];
|
|
14
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
15
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
16
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
17
|
+
t[p[i]] = s[p[i]];
|
|
18
|
+
}
|
|
19
|
+
return t;
|
|
20
|
+
};
|
|
21
|
+
import { CryptoAlgorithm } from './crypto-algorithm.js';
|
|
22
|
+
import { Pbkdf2 } from '../primitives/pbkdf2.js';
|
|
23
|
+
/**
|
|
24
|
+
* The `Pbkdf2Algorithm` class provides a concrete implementation for PBKDF2 key derivation. It
|
|
25
|
+
* wraps the {@link Pbkdf2} primitive and maps PBES2 JOSE algorithm names to hash functions.
|
|
26
|
+
*/
|
|
27
|
+
export class Pbkdf2Algorithm extends CryptoAlgorithm {
|
|
28
|
+
/**
|
|
29
|
+
* Derives a cryptographic byte array using PBKDF2.
|
|
30
|
+
*
|
|
31
|
+
* @param params - The parameters for the key derivation operation.
|
|
32
|
+
* @param params.algorithm - The PBES2 algorithm variant (e.g., `'PBES2-HS512+A256KW'`).
|
|
33
|
+
* @param params.baseKeyBytes - The password or passphrase as bytes.
|
|
34
|
+
* @param params.length - The desired length of the output in bits.
|
|
35
|
+
*
|
|
36
|
+
* @returns A Promise that resolves to the derived key bytes.
|
|
37
|
+
*/
|
|
38
|
+
deriveKeyBytes(_a) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
var { algorithm } = _a, params = __rest(_a, ["algorithm"]);
|
|
41
|
+
// Extract the hash function component of the `algorithm` parameter.
|
|
42
|
+
const [, hashFunction] = algorithm.split(/[-+]/);
|
|
43
|
+
// Map from JOSE algorithm name to "SHA" hash function identifier.
|
|
44
|
+
const hash = {
|
|
45
|
+
'HS256': 'SHA-256',
|
|
46
|
+
'HS384': 'SHA-384',
|
|
47
|
+
'HS512': 'SHA-512'
|
|
48
|
+
}[hashFunction];
|
|
49
|
+
// Derive a cryptographic byte array using PBKDF2.
|
|
50
|
+
const derivedKeyBytes = yield Pbkdf2.deriveKeyBytes(Object.assign(Object.assign({}, params), { hash }));
|
|
51
|
+
return derivedKeyBytes;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=pbkdf2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../../src/algorithms/pbkdf2.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAgBjD;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,eAAe;IAGlD;;;;;;;;;OASG;IACU,cAAc,CAAC,EAC6B;;gBAD7B,EAAE,SAAS,OACkB,EADb,MAAM,cAAtB,aAAwB,CAAF;YAGhD,oEAAoE;YACpE,MAAM,CAAC,EAAE,YAAY,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEjD,kEAAkE;YAClE,MAAM,IAAI,GAAG;gBACX,OAAO,EAAG,SAAkB;gBAC5B,OAAO,EAAG,SAAkB;gBAC5B,OAAO,EAAG,SAAkB;aAC7B,CAAC,YAAY,CAAE,CAAC;YAEjB,kDAAkD;YAClD,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,cAAc,iCAAM,MAAM,KAAE,IAAI,IAAG,CAAC;YAEzE,OAAO,eAAe,CAAC;QACzB,CAAC;KAAA;CACF"}
|
|
@@ -7,15 +7,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { Sha256 } from '../primitives/sha256.js';
|
|
11
10
|
import { CryptoAlgorithm } from './crypto-algorithm.js';
|
|
11
|
+
import { Sha256 } from '../primitives/sha256.js';
|
|
12
12
|
/**
|
|
13
13
|
* The `Sha2Algorithm` class is an implementation of the {@link Hasher | `Hasher`} interface for the
|
|
14
14
|
* SHA-2 family of cryptographic hash functions. The `digest` method takes the algorithm identifier
|
|
15
15
|
* of the hash function and arbitrary data as input and returns the hash digest of the data.
|
|
16
16
|
*
|
|
17
17
|
* This class is typically accessed through implementations that extend the
|
|
18
|
-
* {@link
|
|
18
|
+
* {@link DsaApi | `DsaApi`} interface.
|
|
19
19
|
*/
|
|
20
20
|
export class Sha2Algorithm extends CryptoAlgorithm {
|
|
21
21
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sha-2.js","sourceRoot":"","sources":["../../../src/algorithms/sha-2.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sha-2.js","sourceRoot":"","sources":["../../../src/algorithms/sha-2.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAcjD;;;;;;;GAOG;AACH,MAAM,OAAO,aAAc,SAAQ,eAAe;IAGhD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,MAAM;6DAAC,EAAE,SAAS,EAAE,IAAI,EAAoB;YACvD,QAAQ,SAAS,EAAE,CAAC;gBAElB,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC3C,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QAEH,CAAC;KAAA;CACF"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { CryptoAlgorithm } from './crypto-algorithm.js';
|
|
11
|
+
import { isOkpPrivateJwk } from '../jose/jwk.js';
|
|
12
|
+
import { X25519 } from '../primitives/x25519.js';
|
|
13
|
+
import { CryptoError, CryptoErrorCode } from '../crypto-error.js';
|
|
14
|
+
/**
|
|
15
|
+
* The `X25519Algorithm` class provides a concrete implementation for key generation,
|
|
16
|
+
* public key derivation, and key conversion using the X25519 elliptic curve. X25519 is a
|
|
17
|
+
* key agreement curve (not a signature curve) used for ECDH key exchange in JWE encryption.
|
|
18
|
+
*
|
|
19
|
+
* This class implements the {@link AsymmetricKeyGenerator | `AsymmetricKeyGenerator`} and
|
|
20
|
+
* {@link KeyConverter | `KeyConverter`} interfaces, providing private key generation,
|
|
21
|
+
* public key derivation, and byte/JWK conversion.
|
|
22
|
+
*/
|
|
23
|
+
export class X25519Algorithm extends CryptoAlgorithm {
|
|
24
|
+
/**
|
|
25
|
+
* Converts a raw private key in bytes to its corresponding JWK format.
|
|
26
|
+
*
|
|
27
|
+
* @param params - The parameters for the private key conversion.
|
|
28
|
+
* @param params.algorithm - Must be `'X25519'`.
|
|
29
|
+
* @param params.privateKeyBytes - The raw private key as a Uint8Array.
|
|
30
|
+
*
|
|
31
|
+
* @returns A Promise that resolves to the private key in JWK format.
|
|
32
|
+
*/
|
|
33
|
+
bytesToPrivateKey(_a) {
|
|
34
|
+
return __awaiter(this, arguments, void 0, function* ({ algorithm, privateKeyBytes }) {
|
|
35
|
+
switch (algorithm) {
|
|
36
|
+
case 'X25519': {
|
|
37
|
+
return X25519.bytesToPrivateKey({ privateKeyBytes });
|
|
38
|
+
}
|
|
39
|
+
default: {
|
|
40
|
+
throw new CryptoError(CryptoErrorCode.AlgorithmNotSupported, `Algorithm not supported: ${algorithm}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Derives the public key in JWK format from a given X25519 private key.
|
|
47
|
+
*
|
|
48
|
+
* @param params - The parameters for the public key derivation.
|
|
49
|
+
* @param params.key - The private key in JWK format from which to derive the public key.
|
|
50
|
+
*
|
|
51
|
+
* @returns A Promise that resolves to the derived public key in JWK format.
|
|
52
|
+
*/
|
|
53
|
+
computePublicKey(_a) {
|
|
54
|
+
return __awaiter(this, arguments, void 0, function* ({ key }) {
|
|
55
|
+
if (!isOkpPrivateJwk(key)) {
|
|
56
|
+
throw new TypeError('Invalid key provided. Must be an octet key pair (OKP) private key.');
|
|
57
|
+
}
|
|
58
|
+
switch (key.crv) {
|
|
59
|
+
case 'X25519': {
|
|
60
|
+
return X25519.computePublicKey({ key });
|
|
61
|
+
}
|
|
62
|
+
default: {
|
|
63
|
+
throw new CryptoError(CryptoErrorCode.AlgorithmNotSupported, `Unsupported curve: ${key.crv}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Generates a new X25519 private key in JWK format.
|
|
70
|
+
*
|
|
71
|
+
* @param params - The parameters for key generation.
|
|
72
|
+
* @param params.algorithm - Must be `'X25519'`.
|
|
73
|
+
*
|
|
74
|
+
* @returns A Promise that resolves to the generated private key in JWK format.
|
|
75
|
+
*/
|
|
76
|
+
generateKey(_a) {
|
|
77
|
+
return __awaiter(this, arguments, void 0, function* ({ algorithm }) {
|
|
78
|
+
switch (algorithm) {
|
|
79
|
+
case 'X25519': {
|
|
80
|
+
return X25519.generateKey();
|
|
81
|
+
}
|
|
82
|
+
default: {
|
|
83
|
+
throw new CryptoError(CryptoErrorCode.AlgorithmNotSupported, `Algorithm not supported: ${algorithm}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Retrieves the public key properties from a given X25519 private key in JWK format.
|
|
90
|
+
*
|
|
91
|
+
* @param params - The parameters for retrieving the public key properties.
|
|
92
|
+
* @param params.key - The private key in JWK format.
|
|
93
|
+
*
|
|
94
|
+
* @returns A Promise that resolves to the public key in JWK format.
|
|
95
|
+
*/
|
|
96
|
+
getPublicKey(_a) {
|
|
97
|
+
return __awaiter(this, arguments, void 0, function* ({ key }) {
|
|
98
|
+
if (!isOkpPrivateJwk(key)) {
|
|
99
|
+
throw new TypeError('Invalid key provided. Must be an octet key pair (OKP) private key.');
|
|
100
|
+
}
|
|
101
|
+
switch (key.crv) {
|
|
102
|
+
case 'X25519': {
|
|
103
|
+
return X25519.getPublicKey({ key });
|
|
104
|
+
}
|
|
105
|
+
default: {
|
|
106
|
+
throw new CryptoError(CryptoErrorCode.AlgorithmNotSupported, `Unsupported curve: ${key.crv}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Converts a private key from JWK format to a byte array.
|
|
113
|
+
*
|
|
114
|
+
* @param params - The parameters for the private key conversion.
|
|
115
|
+
* @param params.privateKey - The private key in JWK format.
|
|
116
|
+
*
|
|
117
|
+
* @returns A Promise that resolves to the private key as a Uint8Array.
|
|
118
|
+
*/
|
|
119
|
+
privateKeyToBytes(_a) {
|
|
120
|
+
return __awaiter(this, arguments, void 0, function* ({ privateKey }) {
|
|
121
|
+
return X25519.privateKeyToBytes({ privateKey });
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=x25519.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x25519.js","sourceRoot":"","sources":["../../../src/algorithms/x25519.ts"],"names":[],"mappings":";;;;;;;;;AAWA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAclE;;;;;;;;GAQG;AACH,MAAM,OAAO,eAAgB,SAAQ,eAAe;IAIlD;;;;;;;;OAQG;IACU,iBAAiB;6DAAC,EAAE,SAAS,EAAE,eAAe,EACR;YAEjD,QAAQ,SAAS,EAAE,CAAC;gBAElB,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,OAAO,MAAM,CAAC,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;gBACvD,CAAC;gBAED,OAAO,CAAC,CAAC,CAAC;oBACR,MAAM,IAAI,WAAW,CAAC,eAAe,CAAC,qBAAqB,EAAE,4BAA4B,SAAS,EAAE,CAAC,CAAC;gBACxG,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,gBAAgB;6DAAC,EAAE,GAAG,EACX;YAEtB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAA,MAAM,IAAI,SAAS,CAAC,oEAAoE,CAAC,CAAC;YAAA,CAAC;YAEvH,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC;gBAEhB,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,OAAO,MAAM,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1C,CAAC;gBAED,OAAO,CAAC,CAAC,CAAC;oBACR,MAAM,IAAI,WAAW,CAAC,eAAe,CAAC,qBAAqB,EAAE,sBAAsB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;gBAChG,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;OAOG;IACG,WAAW;6DAAC,EAAE,SAAS,EACJ;YAEvB,QAAQ,SAAS,EAAE,CAAC;gBAElB,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC9B,CAAC;gBAED,OAAO,CAAC,CAAC,CAAC;oBACR,MAAM,IAAI,WAAW,CAAC,eAAe,CAAC,qBAAqB,EAAE,4BAA4B,SAAS,EAAE,CAAC,CAAC;gBACxG,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,YAAY;6DAAC,EAAE,GAAG,EACX;YAElB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAA,MAAM,IAAI,SAAS,CAAC,oEAAoE,CAAC,CAAC;YAAA,CAAC;YAEvH,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC;gBAEhB,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,OAAO,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;gBACtC,CAAC;gBAED,OAAO,CAAC,CAAC,CAAC;oBACR,MAAM,IAAI,WAAW,CAAC,eAAe,CAAC,qBAAqB,EAAE,sBAAsB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;gBAChG,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,iBAAiB;6DAAC,EAAE,UAAU,EAClB;YAEvB,OAAO,MAAM,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAClD,CAAC;KAAA;CACF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A custom error class for Crypto-related errors.
|
|
3
|
+
*/
|
|
4
|
+
export class CryptoError extends Error {
|
|
5
|
+
/**
|
|
6
|
+
* Constructs an instance of CryptoError, a custom error class for handling Crypto-related errors.
|
|
7
|
+
*
|
|
8
|
+
* @param code - A {@link CryptoErrorCode} representing the specific type of error encountered.
|
|
9
|
+
* @param message - A human-readable description of the error.
|
|
10
|
+
*/
|
|
11
|
+
constructor(code, message) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.code = code;
|
|
14
|
+
this.name = 'CryptoError';
|
|
15
|
+
// Ensures that instanceof works properly, the correct prototype chain when using inheritance,
|
|
16
|
+
// and that V8 stack traces (like Chrome, Edge, and Node.js) are more readable and relevant.
|
|
17
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
18
|
+
// Captures the stack trace in V8 engines (like Chrome, Edge, and Node.js).
|
|
19
|
+
// In non-V8 environments, the stack trace will still be captured.
|
|
20
|
+
if (Error.captureStackTrace) {
|
|
21
|
+
Error.captureStackTrace(this, CryptoError);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* An enumeration of possible Crypto error codes.
|
|
27
|
+
*/
|
|
28
|
+
export var CryptoErrorCode;
|
|
29
|
+
(function (CryptoErrorCode) {
|
|
30
|
+
/** The supplied algorithm identifier is not supported by the implementation. */
|
|
31
|
+
CryptoErrorCode["AlgorithmNotSupported"] = "algorithmNotSupported";
|
|
32
|
+
/** The encoding operation (either encoding or decoding) failed. */
|
|
33
|
+
CryptoErrorCode["EncodingError"] = "encodingError";
|
|
34
|
+
/** The JWE supplied does not conform to valid syntax. */
|
|
35
|
+
CryptoErrorCode["InvalidJwe"] = "invalidJwe";
|
|
36
|
+
/** The JWK supplied does not conform to valid syntax. */
|
|
37
|
+
CryptoErrorCode["InvalidJwk"] = "invalidJwk";
|
|
38
|
+
/** The requested operation is not supported by the implementation. */
|
|
39
|
+
CryptoErrorCode["OperationNotSupported"] = "operationNotSupported";
|
|
40
|
+
})(CryptoErrorCode || (CryptoErrorCode = {}));
|
|
41
|
+
//# sourceMappingURL=crypto-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto-error.js","sourceRoot":"","sources":["../../src/crypto-error.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC;;;;;OAKG;IACH,YAAmB,IAAqB,EAAE,OAAe;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,SAAI,GAAJ,IAAI,CAAiB;QAEtC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAE1B,8FAA8F;QAC9F,4FAA4F;QAC5F,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAElD,2EAA2E;QAC3E,kEAAkE;QAClE,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,eAeX;AAfD,WAAY,eAAe;IACzB,gFAAgF;IAChF,kEAA+C,CAAA;IAE/C,mEAAmE;IACnE,kDAA+B,CAAA;IAE/B,yDAAyD;IACzD,4CAAyB,CAAA;IAEzB,yDAAyD;IACzD,4CAAyB,CAAA;IAEzB,sEAAsE;IACtE,kEAA+C,CAAA;AACjD,CAAC,EAfW,eAAe,KAAf,eAAe,QAe1B"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
export * from './crypto-error.js';
|
|
1
2
|
export * from './local-key-manager.js';
|
|
2
3
|
export * from './utils.js';
|
|
3
4
|
export * from './algorithms/aes-ctr.js';
|
|
4
5
|
export * from './algorithms/aes-gcm.js';
|
|
6
|
+
export * from './algorithms/aes-kw.js';
|
|
5
7
|
export * from './algorithms/crypto-algorithm.js';
|
|
6
8
|
export * from './algorithms/ecdsa.js';
|
|
7
9
|
export * from './algorithms/eddsa.js';
|
|
10
|
+
export * from './algorithms/hkdf.js';
|
|
11
|
+
export * from './algorithms/pbkdf2.js';
|
|
8
12
|
export * from './algorithms/sha-2.js';
|
|
13
|
+
export * from './algorithms/x25519.js';
|
|
9
14
|
export * from './jose/jwe.js';
|
|
10
15
|
export * from './jose/jwk.js';
|
|
11
16
|
export * from './jose/jws.js';
|
|
@@ -13,8 +18,11 @@ export * from './jose/jwt.js';
|
|
|
13
18
|
export * from './jose/utils.js';
|
|
14
19
|
export * from './primitives/aes-ctr.js';
|
|
15
20
|
export * from './primitives/aes-gcm.js';
|
|
21
|
+
export * from './primitives/aes-kw.js';
|
|
16
22
|
export * from './primitives/concat-kdf.js';
|
|
23
|
+
export * from './primitives/ecies-secp256k1.js';
|
|
17
24
|
export * from './primitives/ed25519.js';
|
|
25
|
+
export * from './primitives/hkdf.js';
|
|
18
26
|
export * from './primitives/secp256r1.js';
|
|
19
27
|
export * from './primitives/pbkdf2.js';
|
|
20
28
|
export * from './primitives/secp256k1.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAE3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAE3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC"}
|
package/dist/esm/jose/jwk.js
CHANGED
|
@@ -111,16 +111,21 @@ export function computeJwkThumbprint(_a) {
|
|
|
111
111
|
* @returns True if the object is a valid EC private JWK; otherwise, false.
|
|
112
112
|
*/
|
|
113
113
|
export function isEcPrivateJwk(obj) {
|
|
114
|
-
if (!obj || typeof obj !== 'object')
|
|
114
|
+
if (!obj || typeof obj !== 'object') {
|
|
115
115
|
return false;
|
|
116
|
-
|
|
116
|
+
}
|
|
117
|
+
if (!('kty' in obj && 'crv' in obj && 'x' in obj && 'd' in obj)) {
|
|
117
118
|
return false;
|
|
118
|
-
|
|
119
|
+
}
|
|
120
|
+
if (obj.kty !== 'EC') {
|
|
119
121
|
return false;
|
|
120
|
-
|
|
122
|
+
}
|
|
123
|
+
if (typeof obj.d !== 'string') {
|
|
121
124
|
return false;
|
|
122
|
-
|
|
125
|
+
}
|
|
126
|
+
if (typeof obj.x !== 'string') {
|
|
123
127
|
return false;
|
|
128
|
+
}
|
|
124
129
|
return true;
|
|
125
130
|
}
|
|
126
131
|
/**
|
|
@@ -130,16 +135,21 @@ export function isEcPrivateJwk(obj) {
|
|
|
130
135
|
* @returns True if the object is a valid EC public JWK; otherwise, false.
|
|
131
136
|
*/
|
|
132
137
|
export function isEcPublicJwk(obj) {
|
|
133
|
-
if (!obj || typeof obj !== 'object')
|
|
138
|
+
if (!obj || typeof obj !== 'object') {
|
|
134
139
|
return false;
|
|
135
|
-
|
|
140
|
+
}
|
|
141
|
+
if (!('kty' in obj && 'crv' in obj && 'x' in obj)) {
|
|
136
142
|
return false;
|
|
137
|
-
|
|
143
|
+
}
|
|
144
|
+
if ('d' in obj) {
|
|
138
145
|
return false;
|
|
139
|
-
|
|
146
|
+
}
|
|
147
|
+
if (obj.kty !== 'EC') {
|
|
140
148
|
return false;
|
|
141
|
-
|
|
149
|
+
}
|
|
150
|
+
if (typeof obj.x !== 'string') {
|
|
142
151
|
return false;
|
|
152
|
+
}
|
|
143
153
|
return true;
|
|
144
154
|
}
|
|
145
155
|
/**
|
|
@@ -149,14 +159,18 @@ export function isEcPublicJwk(obj) {
|
|
|
149
159
|
* @returns True if the object is a valid oct private JWK; otherwise, false.
|
|
150
160
|
*/
|
|
151
161
|
export function isOctPrivateJwk(obj) {
|
|
152
|
-
if (!obj || typeof obj !== 'object')
|
|
162
|
+
if (!obj || typeof obj !== 'object') {
|
|
153
163
|
return false;
|
|
154
|
-
|
|
164
|
+
}
|
|
165
|
+
if (!('kty' in obj && 'k' in obj)) {
|
|
155
166
|
return false;
|
|
156
|
-
|
|
167
|
+
}
|
|
168
|
+
if (obj.kty !== 'oct') {
|
|
157
169
|
return false;
|
|
158
|
-
|
|
170
|
+
}
|
|
171
|
+
if (typeof obj.k !== 'string') {
|
|
159
172
|
return false;
|
|
173
|
+
}
|
|
160
174
|
return true;
|
|
161
175
|
}
|
|
162
176
|
/**
|
|
@@ -166,16 +180,21 @@ export function isOctPrivateJwk(obj) {
|
|
|
166
180
|
* @returns True if the object is a valid OKP private JWK; otherwise, false.
|
|
167
181
|
*/
|
|
168
182
|
export function isOkpPrivateJwk(obj) {
|
|
169
|
-
if (!obj || typeof obj !== 'object')
|
|
183
|
+
if (!obj || typeof obj !== 'object') {
|
|
170
184
|
return false;
|
|
171
|
-
|
|
185
|
+
}
|
|
186
|
+
if (!('kty' in obj && 'crv' in obj && 'x' in obj && 'd' in obj)) {
|
|
172
187
|
return false;
|
|
173
|
-
|
|
188
|
+
}
|
|
189
|
+
if (obj.kty !== 'OKP') {
|
|
174
190
|
return false;
|
|
175
|
-
|
|
191
|
+
}
|
|
192
|
+
if (typeof obj.d !== 'string') {
|
|
176
193
|
return false;
|
|
177
|
-
|
|
194
|
+
}
|
|
195
|
+
if (typeof obj.x !== 'string') {
|
|
178
196
|
return false;
|
|
197
|
+
}
|
|
179
198
|
return true;
|
|
180
199
|
}
|
|
181
200
|
/**
|
|
@@ -185,16 +204,21 @@ export function isOkpPrivateJwk(obj) {
|
|
|
185
204
|
* @returns True if the object is a valid OKP public JWK; otherwise, false.
|
|
186
205
|
*/
|
|
187
206
|
export function isOkpPublicJwk(obj) {
|
|
188
|
-
if (!obj || typeof obj !== 'object')
|
|
207
|
+
if (!obj || typeof obj !== 'object') {
|
|
189
208
|
return false;
|
|
190
|
-
|
|
209
|
+
}
|
|
210
|
+
if ('d' in obj) {
|
|
191
211
|
return false;
|
|
192
|
-
|
|
212
|
+
}
|
|
213
|
+
if (!('kty' in obj && 'crv' in obj && 'x' in obj)) {
|
|
193
214
|
return false;
|
|
194
|
-
|
|
215
|
+
}
|
|
216
|
+
if (obj.kty !== 'OKP') {
|
|
195
217
|
return false;
|
|
196
|
-
|
|
218
|
+
}
|
|
219
|
+
if (typeof obj.x !== 'string') {
|
|
197
220
|
return false;
|
|
221
|
+
}
|
|
198
222
|
return true;
|
|
199
223
|
}
|
|
200
224
|
/**
|
|
@@ -204,8 +228,9 @@ export function isOkpPublicJwk(obj) {
|
|
|
204
228
|
* @returns True if the object is a valid private JWK; otherwise, false.
|
|
205
229
|
*/
|
|
206
230
|
export function isPrivateJwk(obj) {
|
|
207
|
-
if (!obj || typeof obj !== 'object')
|
|
231
|
+
if (!obj || typeof obj !== 'object') {
|
|
208
232
|
return false;
|
|
233
|
+
}
|
|
209
234
|
const kty = obj.kty;
|
|
210
235
|
switch (kty) {
|
|
211
236
|
case 'EC':
|
|
@@ -225,8 +250,9 @@ export function isPrivateJwk(obj) {
|
|
|
225
250
|
* @returns True if the object is a valid public JWK; otherwise, false.
|
|
226
251
|
*/
|
|
227
252
|
export function isPublicJwk(obj) {
|
|
228
|
-
if (!obj || typeof obj !== 'object')
|
|
253
|
+
if (!obj || typeof obj !== 'object') {
|
|
229
254
|
return false;
|
|
255
|
+
}
|
|
230
256
|
const kty = obj.kty;
|
|
231
257
|
switch (kty) {
|
|
232
258
|
case 'EC':
|
package/dist/esm/jose/jwk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwk.js","sourceRoot":"","sources":["../../../src/jose/jwk.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AA+Z7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,UAAgB,oBAAoB;yDAAC,EAAE,GAAG,EAE/C;QACC;;WAEG;QACH,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC;QACxB,IAAI,aAAkB,CAAC;QACvB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACrE,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YAC7B,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QAC7C,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YAC7B,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3D,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YAC7B,aAAa,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,yBAAyB,CAAC,aAAa,CAAC,CAAC;QAEzC;kDAC0C;QAC1C,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;QAElD;;0CAEkC;QAClC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,YAAY,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAExD,uBAAuB;QACvB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAE5D,OAAO,UAAU,CAAC;IACpB,CAAC;CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;
|
|
1
|
+
{"version":3,"file":"jwk.js","sourceRoot":"","sources":["../../../src/jose/jwk.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { MemoryStore } from '@enbox/common';
|
|
11
|
-
import { Sha2Algorithm } from './algorithms/sha-2.js';
|
|
12
11
|
import { EcdsaAlgorithm } from './algorithms/ecdsa.js';
|
|
13
12
|
import { EdDsaAlgorithm } from './algorithms/eddsa.js';
|
|
13
|
+
import { Sha2Algorithm } from './algorithms/sha-2.js';
|
|
14
|
+
import { X25519Algorithm } from './algorithms/x25519.js';
|
|
14
15
|
import { computeJwkThumbprint, isPrivateJwk, KEY_URI_PREFIX_JWK } from './jose/jwk.js';
|
|
15
16
|
/**
|
|
16
17
|
* `supportedAlgorithms` is an object mapping algorithm names to their respective implementations
|
|
@@ -36,6 +37,10 @@ const supportedAlgorithms = {
|
|
|
36
37
|
'SHA-256': {
|
|
37
38
|
implementation: Sha2Algorithm,
|
|
38
39
|
names: ['SHA-256']
|
|
40
|
+
},
|
|
41
|
+
'X25519': {
|
|
42
|
+
implementation: X25519Algorithm,
|
|
43
|
+
names: ['X25519']
|
|
39
44
|
}
|
|
40
45
|
};
|
|
41
46
|
export class LocalKeyManager {
|
|
@@ -148,7 +153,7 @@ export class LocalKeyManager {
|
|
|
148
153
|
* @remarks
|
|
149
154
|
* This method generates a {@link https://datatracker.ietf.org/doc/html/rfc3986 | URI}
|
|
150
155
|
* (Uniform Resource Identifier) for the given JWK, which uniquely identifies the key across all
|
|
151
|
-
* `
|
|
156
|
+
* `KeyManager` implementations. The key URI is constructed by appending the
|
|
152
157
|
* {@link https://datatracker.ietf.org/doc/html/rfc7638 | JWK thumbprint} to the prefix
|
|
153
158
|
* `urn:jwk:`. The JWK thumbprint is deterministically computed from the JWK and is consistent
|
|
154
159
|
* regardless of property order or optional property inclusion in the JWK. This ensures that the
|
|
@@ -234,8 +239,9 @@ export class LocalKeyManager {
|
|
|
234
239
|
importKey(_a) {
|
|
235
240
|
return __awaiter(this, arguments, void 0, function* ({ key }) {
|
|
236
241
|
var _b;
|
|
237
|
-
if (!isPrivateJwk(key))
|
|
242
|
+
if (!isPrivateJwk(key)) {
|
|
238
243
|
throw new TypeError('Invalid key provided. Must be a private key in JWK format.');
|
|
244
|
+
}
|
|
239
245
|
// Make a deep copy of the key to avoid mutating the original.
|
|
240
246
|
const privateKey = structuredClone(key);
|
|
241
247
|
// If the key ID is undefined, set it to the JWK thumbprint.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-key-manager.js","sourceRoot":"","sources":["../../src/local-key-manager.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"local-key-manager.js","sourceRoot":"","sources":["../../src/local-key-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aes-ctr.js","sourceRoot":"","sources":["../../../src/primitives/aes-ctr.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"aes-ctr.js","sourceRoot":"","sources":["../../../src/primitives/aes-ctr.ts"],"names":[],"mappings":"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"}
|