@blamejs/pki 0.6.20 → 0.6.21
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/CHANGELOG.md +8 -0
- package/lib/cmp-build.js +10 -10
- package/lib/lint.js +5 -5
- package/lib/pbes2.js +1 -1
- package/lib/pkcs12-build.js +9 -9
- package/lib/schema-c509.js +10 -10
- package/lib/sign-scheme.js +2 -2
- package/lib/tsp-sign.js +4 -4
- package/lib/webcrypto.js +12 -12
- package/package.json +1 -1
- package/sbom.cdx.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,14 @@ All notable changes to `@blamejs/pki` are documented here. The format
|
|
|
4
4
|
follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); this
|
|
5
5
|
project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## v0.6.21 — 2026-09-01
|
|
8
|
+
|
|
9
|
+
WebCrypto and the signing and format builders refuse an algorithm, curve, digest, or profile name that collides with an inherited Object.prototype property name.
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- pki.webcrypto (generateKey, sign, verify, encrypt, decrypt, deriveBits, deriveKey, wrapKey, unwrapKey, importKey, encapsulateBits, decapsulateBits) refuses an algorithm name or namedCurve that collides with an inherited Object.prototype property name, returning webcrypto/not-supported instead of a bare Node error. The digest, PBMAC1 PRF, CMP body, PKCS#12 MAC hash, PBES2 PRF, and lint-profile lookups behind pki.tsp.sign, pki.cmp.build, pki.pkcs12.build, pki.key.encrypt, pki.lint.certificate, and the RSA-PSS and C509 builders are hardened the same way, each returning the verb's typed error for such a name.
|
|
14
|
+
|
|
7
15
|
## v0.6.20 — 2026-09-01
|
|
8
16
|
|
|
9
17
|
A vulnerable build-time dependency is refreshed; it is not part of the published package.
|
package/lib/cmp-build.js
CHANGED
|
@@ -75,18 +75,18 @@ var KNOWN_HEADER_KEYS = {
|
|
|
75
75
|
sender: 1, recipient: 1, pvno: 1, messageTime: 1, senderKID: 1, recipKID: 1,
|
|
76
76
|
transactionID: 1, senderNonce: 1, recipNonce: 1, freeText: 1, generalInfo: 1,
|
|
77
77
|
};
|
|
78
|
-
var KNOWN_BODY_KEYS = {
|
|
78
|
+
var KNOWN_BODY_KEYS = intrinsic.assign(intrinsic.create(null), {
|
|
79
79
|
ir: 1, cr: 1, kur: 1, krr: 1, ccr: 1, p10cr: 1, certConf: 1, pollReq: 1, genm: 1, rr: 1,
|
|
80
80
|
ip: 1, cp: 1, kup: 1, ccp: 1, krp: 1, rp: 1, genp: 1, error: 1, pollRep: 1, pkiconf: 1,
|
|
81
81
|
nested: 1,
|
|
82
|
-
};
|
|
83
|
-
var BODY_TAG = {
|
|
82
|
+
});
|
|
83
|
+
var BODY_TAG = intrinsic.assign(intrinsic.create(null), {
|
|
84
84
|
ir: 0, cr: 2, p10cr: 4, kur: 7, krr: 9, ccr: 13, rr: 11, genm: 21, certConf: 24, pollReq: 25,
|
|
85
85
|
ip: 1, cp: 3, kup: 8, krp: 10, rp: 12, ccp: 14, pkiconf: 19, genp: 22, error: 23, pollRep: 26,
|
|
86
86
|
nested: 20,
|
|
87
|
-
};
|
|
88
|
-
var CRMF_BODY = { ir: 1, cr: 1, kur: 1, krr: 1, ccr: 1 };
|
|
89
|
-
var CERT_REP_ARM = { ip: 1, cp: 1, kup: 1, ccp: 1 };
|
|
87
|
+
});
|
|
88
|
+
var CRMF_BODY = intrinsic.assign(intrinsic.create(null), { ir: 1, cr: 1, kur: 1, krr: 1, ccr: 1 });
|
|
89
|
+
var CERT_REP_ARM = intrinsic.assign(intrinsic.create(null), { ip: 1, cp: 1, kup: 1, ccp: 1 });
|
|
90
90
|
var KNOWN_OPTS_KEYS = { key: 1, cert: 1, mac: 1, extraCerts: 1, pem: 1, pss: 1, digestAlgorithm: 1 };
|
|
91
91
|
var KNOWN_OPTS_SIG_KEYS = { key: 1, cert: 1, extraCerts: 1, pem: 1, pss: 1, digestAlgorithm: 1 };
|
|
92
92
|
var KNOWN_OPTS_MAC_KEYS = { mac: 1, extraCerts: 1, pem: 1 };
|
|
@@ -100,17 +100,17 @@ var PBMAC1_DEFAULT_KEYLEN = 32;
|
|
|
100
100
|
var PBMAC1_MIN_KEYLEN = 20;
|
|
101
101
|
var PBMAC1_MAX_KEYLEN = 1024;
|
|
102
102
|
var PBMAC1_MIN_ITER = 1000;
|
|
103
|
-
var PBMAC1_PRF = { "SHA-256": "hmacWithSHA256", "SHA-384": "hmacWithSHA384", "SHA-512": "hmacWithSHA512" };
|
|
104
|
-
var PBMAC1_MAC_OID = { "SHA-256": "hmacWithSHA256", "SHA-384": "hmacWithSHA384", "SHA-512": "hmacWithSHA512" };
|
|
103
|
+
var PBMAC1_PRF = intrinsic.assign(intrinsic.create(null), { "SHA-256": "hmacWithSHA256", "SHA-384": "hmacWithSHA384", "SHA-512": "hmacWithSHA512" });
|
|
104
|
+
var PBMAC1_MAC_OID = intrinsic.assign(intrinsic.create(null), { "SHA-256": "hmacWithSHA256", "SHA-384": "hmacWithSHA384", "SHA-512": "hmacWithSHA512" });
|
|
105
105
|
var PBMAC1_PRF_HLEN = { "SHA-256": 32, "SHA-384": 48, "SHA-512": 64 };
|
|
106
106
|
var FAIL_INFO_NAMES = ["badAlg", "badMessageCheck", "badRequest", "badTime", "badCertId", "badDataFormat",
|
|
107
107
|
"wrongAuthority", "incorrectData", "missingTimeStamp", "badPOP", "certRevoked", "certConfirmed",
|
|
108
108
|
"wrongIntegrity", "badRecipientNonce", "timeNotAvailable", "unacceptedPolicy", "unacceptedExtension",
|
|
109
109
|
"addInfoNotAvailable", "badSenderNonce", "badCertTemplate", "signerNotTrusted", "transactionIdInUse",
|
|
110
110
|
"unsupportedVersion", "notAuthorized", "systemUnavail", "systemFailure", "duplicateCertReq"];
|
|
111
|
-
var FAIL_INFO_INDEX =
|
|
111
|
+
var FAIL_INFO_INDEX = intrinsic.create(null);
|
|
112
112
|
FAIL_INFO_NAMES.forEach(function (n, i) { FAIL_INFO_INDEX[n] = i; });
|
|
113
|
-
var CERT_CONF_HASH_ALGS = { sha1: 1, sha256: 1, sha384: 1, sha512: 1, "sha3-256": 1, "sha3-512": 1 };
|
|
113
|
+
var CERT_CONF_HASH_ALGS = intrinsic.assign(intrinsic.create(null), { sha1: 1, sha256: 1, sha384: 1, sha512: 1, "sha3-256": 1, "sha3-512": 1 });
|
|
114
114
|
|
|
115
115
|
|
|
116
116
|
function _reqOctets(v, what) {
|
package/lib/lint.js
CHANGED
|
@@ -44,7 +44,7 @@ var EXT_DECODERS = pkix.certExtensionDecoders(NS).byOid;
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
|
|
47
|
-
var SEVERITY = { fatal: 5, error: 4, warn: 3, notice: 2, pass: 1 };
|
|
47
|
+
var SEVERITY = Object.assign(Object.create(null), { fatal: 5, error: 4, warn: 3, notice: 2, pass: 1 });
|
|
48
48
|
var VALID_SEVERITY = Object.keys(SEVERITY);
|
|
49
49
|
|
|
50
50
|
function _worst(findings) {
|
|
@@ -191,7 +191,7 @@ function _rsaModulusBits(spki) {
|
|
|
191
191
|
return mod.toString(2).length;
|
|
192
192
|
} catch (_e) { return null; }
|
|
193
193
|
}
|
|
194
|
-
var RSA_KEY_ALGS = { rsaEncryption: 1, rsassaPss: 1, rsaesOaep: 1 };
|
|
194
|
+
var RSA_KEY_ALGS = Object.assign(Object.create(null), { rsaEncryption: 1, rsassaPss: 1, rsaesOaep: 1 });
|
|
195
195
|
var APPROVED_EC_CURVES = ["prime256v1", "secp384r1", "secp521r1"];
|
|
196
196
|
function _ecCurveName(spki) {
|
|
197
197
|
try {
|
|
@@ -476,7 +476,7 @@ var CABF_TLS_RULES = [
|
|
|
476
476
|
},
|
|
477
477
|
];
|
|
478
478
|
|
|
479
|
-
var ML_KEM_EK_LEN =
|
|
479
|
+
var ML_KEM_EK_LEN = Object.create(null);
|
|
480
480
|
["id-ml-kem-512", "id-ml-kem-768", "id-ml-kem-1024"].forEach(function (n) { ML_KEM_EK_LEN[n] = oid.kemParams(n).ek; });
|
|
481
481
|
function _isMlKem(cert) {
|
|
482
482
|
var spki = cert.subjectPublicKeyInfo;
|
|
@@ -510,11 +510,11 @@ var RFC9935_RULES = [
|
|
|
510
510
|
},
|
|
511
511
|
];
|
|
512
512
|
|
|
513
|
-
var PROFILES = {
|
|
513
|
+
var PROFILES = Object.assign(Object.create(null), {
|
|
514
514
|
"rfc5280": RFC5280_RULES,
|
|
515
515
|
"rfc9935": RFC9935_RULES,
|
|
516
516
|
"cabf-tls": CABF_TLS_RULES,
|
|
517
|
-
};
|
|
517
|
+
});
|
|
518
518
|
var ALL_RULES = RFC5280_RULES.concat(RFC9935_RULES).concat(CABF_TLS_RULES);
|
|
519
519
|
|
|
520
520
|
function _selectRules(profile) {
|
package/lib/pbes2.js
CHANGED
|
@@ -13,7 +13,7 @@ var C = require("./constants");
|
|
|
13
13
|
var b = asn1.build;
|
|
14
14
|
function O(n) { return oid.byName(n); }
|
|
15
15
|
|
|
16
|
-
var PRF_NODE_BY_NAME = { hmacWithSHA1: "sha1", hmacWithSHA256: "sha256", hmacWithSHA384: "sha384", hmacWithSHA512: "sha512" };
|
|
16
|
+
var PRF_NODE_BY_NAME = Object.assign(Object.create(null), { hmacWithSHA1: "sha1", hmacWithSHA256: "sha256", hmacWithSHA384: "sha384", hmacWithSHA512: "sha512" });
|
|
17
17
|
var PRF_NODE_BY_OID = {}; Object.keys(PRF_NODE_BY_NAME).forEach(function (n) { PRF_NODE_BY_OID[O(n)] = PRF_NODE_BY_NAME[n]; });
|
|
18
18
|
|
|
19
19
|
var CONTENT_KEYBITS = {}, CONTENT_MODE = {};
|
package/lib/pkcs12-build.js
CHANGED
|
@@ -51,18 +51,18 @@ var MAX_PBMAC1_KEYLEN = 1024;
|
|
|
51
51
|
var CLASSIC_MAC_MAX_ITERATIONS = 1000000;
|
|
52
52
|
var KDF_MAX_ROUNDS = CLASSIC_MAC_MAX_ITERATIONS;
|
|
53
53
|
|
|
54
|
-
var P12_KDF_UV = {
|
|
54
|
+
var P12_KDF_UV = intrinsic.assign(intrinsic.create(null), {
|
|
55
55
|
sha1: { u: 20, v: 64 }, sha224: { u: 28, v: 64 }, sha256: { u: 32, v: 64 },
|
|
56
56
|
sha384: { u: 48, v: 128 }, sha512: { u: 64, v: 128 },
|
|
57
|
-
};
|
|
58
|
-
var PBMAC1_PRF = {
|
|
57
|
+
});
|
|
58
|
+
var PBMAC1_PRF = intrinsic.assign(intrinsic.create(null), {
|
|
59
59
|
sha256: { prfName: "hmacWithSHA256", wc: "SHA-256", keyLen: 32 },
|
|
60
60
|
sha384: { prfName: "hmacWithSHA384", wc: "SHA-384", keyLen: 48 },
|
|
61
61
|
sha512: { prfName: "hmacWithSHA512", wc: "SHA-512", keyLen: 64 },
|
|
62
|
-
};
|
|
63
|
-
var PRF_WC = { hmacWithSHA1: "SHA-1", hmacWithSHA256: "SHA-256", hmacWithSHA384: "SHA-384", hmacWithSHA512: "SHA-512" };
|
|
64
|
-
var CIPHER_NAME = { "aes-128-cbc": "aes128-CBC", "aes-192-cbc": "aes192-CBC", "aes-256-cbc": "aes256-CBC" };
|
|
65
|
-
var DIGEST_NAME = { sha1: "sha1", sha256: "sha256", sha384: "sha384", sha512: "sha512" };
|
|
62
|
+
});
|
|
63
|
+
var PRF_WC = intrinsic.assign(intrinsic.create(null), { hmacWithSHA1: "SHA-1", hmacWithSHA256: "SHA-256", hmacWithSHA384: "SHA-384", hmacWithSHA512: "SHA-512" });
|
|
64
|
+
var CIPHER_NAME = intrinsic.assign(intrinsic.create(null), { "aes-128-cbc": "aes128-CBC", "aes-192-cbc": "aes192-CBC", "aes-256-cbc": "aes256-CBC" });
|
|
65
|
+
var DIGEST_NAME = intrinsic.assign(intrinsic.create(null), { sha1: "sha1", sha256: "sha256", sha384: "sha384", sha512: "sha512" });
|
|
66
66
|
|
|
67
67
|
|
|
68
68
|
|
|
@@ -77,14 +77,14 @@ var _BUILD_OPTS_SHORTHAND = { integrity: 1, mac: 1, password: 1, pem: 1, recipie
|
|
|
77
77
|
var _SAFE_RECIPIENTS_KEYS = { bags: 1, recipients: 1, contentEncryptionAlgorithm: 1 };
|
|
78
78
|
var _SAFE_PASSWORD_KEYS = { bags: 1, encrypt: 1 };
|
|
79
79
|
var _SAFE_PLAINTEXT_KEYS = { bags: 1 };
|
|
80
|
-
var _BAG_KEYS_BY_TYPE = {
|
|
80
|
+
var _BAG_KEYS_BY_TYPE = intrinsic.assign(intrinsic.create(null), {
|
|
81
81
|
key: { type: 1, friendlyName: 1, localKeyId: 1, key: 1 },
|
|
82
82
|
shroudedKey: { type: 1, friendlyName: 1, localKeyId: 1, key: 1, encrypt: 1 },
|
|
83
83
|
cert: { type: 1, friendlyName: 1, localKeyId: 1, cert: 1 },
|
|
84
84
|
crl: { type: 1, friendlyName: 1, localKeyId: 1, crl: 1 },
|
|
85
85
|
secret: { type: 1, friendlyName: 1, localKeyId: 1, secretTypeId: 1, secretValue: 1 },
|
|
86
86
|
safeContents: { type: 1, friendlyName: 1, localKeyId: 1, nested: 1 },
|
|
87
|
-
};
|
|
87
|
+
});
|
|
88
88
|
var _ENCRYPT_KEYS = { password: 1, cipher: 1, salt: 1, iterations: 1, prf: 1 };
|
|
89
89
|
var _MAC_KEYS = { algorithm: 1, hash: 1, salt: 1, iterations: 1, keyLength: 1, password: 1 };
|
|
90
90
|
var _MAC_KEYS_HMAC = { algorithm: 1, hash: 1, salt: 1, iterations: 1, password: 1 };
|
package/lib/schema-c509.js
CHANGED
|
@@ -47,7 +47,7 @@ var PK_ALG_BY_INT = {
|
|
|
47
47
|
2: { alg: _name("ecPublicKey"), curve: _name("secp384r1") },
|
|
48
48
|
3: { alg: _name("ecPublicKey"), curve: _name("secp521r1") },
|
|
49
49
|
};
|
|
50
|
-
var EC_FIELD_BYTES = { "prime256v1": 32, "secp384r1": 48, "secp521r1": 66 };
|
|
50
|
+
var EC_FIELD_BYTES = Object.assign(Object.create(null), { "prime256v1": 32, "secp384r1": 48, "secp521r1": 66 });
|
|
51
51
|
|
|
52
52
|
var ATTR_BY_INT = {
|
|
53
53
|
0: _name("emailAddress"),
|
|
@@ -87,14 +87,14 @@ var EXT_BY_INT = {
|
|
|
87
87
|
36: _name("ocspNoCheck"),
|
|
88
88
|
38: _name("tlsFeature"),
|
|
89
89
|
};
|
|
90
|
-
var EXT_COMPACT = {
|
|
90
|
+
var EXT_COMPACT = Object.assign(Object.create(null), {
|
|
91
91
|
subjectKeyIdentifier: 1, keyUsage: 1, basicConstraints: 1, authorityKeyIdentifier: 1,
|
|
92
92
|
extKeyUsage: 1, inhibitAnyPolicy: 1, ocspNoCheck: 1, tlsFeature: 1,
|
|
93
93
|
subjectAltName: 1, issuerAltName: 1, nameConstraints: 1, cRLDistributionPoints: 1,
|
|
94
94
|
freshestCRL: 1, authorityInfoAccess: 1, subjectInfoAccess: 1, certificatePolicies: 1,
|
|
95
95
|
policyMappings: 1, policyConstraints: 1, subjectDirectoryAttributes: 1,
|
|
96
96
|
ipAddrBlocks: 1, autonomousSysIds: 1, ipAddrBlocksV2: 1, autonomousSysIdsV2: 1,
|
|
97
|
-
};
|
|
97
|
+
});
|
|
98
98
|
var EKU_BY_INT = {
|
|
99
99
|
0: _name("anyExtendedKeyUsage"), 1: _name("serverAuth"), 2: _name("clientAuth"),
|
|
100
100
|
3: _name("codeSigning"), 4: _name("emailProtection"), 8: _name("timeStamping"), 9: _name("ocspSigning"),
|
|
@@ -1561,11 +1561,11 @@ function matches(node) {
|
|
|
1561
1561
|
}
|
|
1562
1562
|
|
|
1563
1563
|
|
|
1564
|
-
var SIG_ALG_TO_INT = { ecdsaWithSHA256: 0, ecdsaWithSHA384: 1, ecdsaWithSHA512: 2 };
|
|
1565
|
-
var PK_ALG_TO_INT = { rsaEncryption: 0, "ecPublicKey|prime256v1": 1, "ecPublicKey|secp384r1": 2, "ecPublicKey|secp521r1": 3 };
|
|
1566
|
-
var ATTR_TO_INT =
|
|
1564
|
+
var SIG_ALG_TO_INT = Object.assign(Object.create(null), { ecdsaWithSHA256: 0, ecdsaWithSHA384: 1, ecdsaWithSHA512: 2 });
|
|
1565
|
+
var PK_ALG_TO_INT = Object.assign(Object.create(null), { rsaEncryption: 0, "ecPublicKey|prime256v1": 1, "ecPublicKey|secp384r1": 2, "ecPublicKey|secp521r1": 3 });
|
|
1566
|
+
var ATTR_TO_INT = Object.create(null);
|
|
1567
1567
|
Object.keys(ATTR_BY_INT).forEach(function (k) { ATTR_TO_INT[ATTR_BY_INT[k]] = Number(k); });
|
|
1568
|
-
var EXT_TO_INT =
|
|
1568
|
+
var EXT_TO_INT = Object.create(null);
|
|
1569
1569
|
Object.keys(EXT_BY_INT).forEach(function (k) { if (EXT_COMPACT[EXT_BY_INT[k]]) EXT_TO_INT[EXT_BY_INT[k]] = Number(k); });
|
|
1570
1570
|
|
|
1571
1571
|
function _minBytes(n) {
|
|
@@ -1754,9 +1754,9 @@ function _keyUsageBitsFromDer(extnValue) {
|
|
|
1754
1754
|
return _namedBitsFromContent(bs.bytes, bs.unusedBits);
|
|
1755
1755
|
}
|
|
1756
1756
|
var _NO_EXPIRY = Date.UTC(9999, 11, 31, 23, 59, 59);
|
|
1757
|
-
var NODE_TO_WEBCRYPTO = { "prime256v1": "P-256", "secp384r1": "P-384", "secp521r1": "P-521" };
|
|
1758
|
-
var WEBCRYPTO_FIELD_BYTES = { "P-256": 32, "P-384": 48, "P-521": 66 };
|
|
1759
|
-
var SIG_ALG_TO_CURVE = { "ecdsaWithSHA256": "P-256", "ecdsaWithSHA384": "P-384", "ecdsaWithSHA512": "P-521" };
|
|
1757
|
+
var NODE_TO_WEBCRYPTO = Object.assign(Object.create(null), { "prime256v1": "P-256", "secp384r1": "P-384", "secp521r1": "P-521" });
|
|
1758
|
+
var WEBCRYPTO_FIELD_BYTES = Object.assign(Object.create(null), { "P-256": 32, "P-384": 48, "P-521": 66 });
|
|
1759
|
+
var SIG_ALG_TO_CURVE = Object.assign(Object.create(null), { "ecdsaWithSHA256": "P-256", "ecdsaWithSHA384": "P-384", "ecdsaWithSHA512": "P-521" });
|
|
1760
1760
|
function _magBytes(intNode) {
|
|
1761
1761
|
var c = intNode.content, i = 0;
|
|
1762
1762
|
while (i < c.length - 1 && c[i] === 0x00) i++;
|
package/lib/sign-scheme.js
CHANGED
|
@@ -24,8 +24,8 @@ var _isBuffer = intrinsic.isBuffer;
|
|
|
24
24
|
var _bufferFrom = intrinsic.bufferFrom;
|
|
25
25
|
var _isU8 = intrinsic.types.isUint8Array;
|
|
26
26
|
|
|
27
|
-
var HASH = { sha256: "SHA-256", sha384: "SHA-384", sha512: "SHA-512" };
|
|
28
|
-
var NODE_DIGEST = { sha256: "sha256", sha384: "sha384", sha512: "sha512", shake128: "shake128", shake256: "shake256" };
|
|
27
|
+
var HASH = intrinsic.assign(intrinsic.create(null), { sha256: "SHA-256", sha384: "SHA-384", sha512: "SHA-512" });
|
|
28
|
+
var NODE_DIGEST = intrinsic.assign(intrinsic.create(null), { sha256: "sha256", sha384: "sha384", sha512: "sha512", shake128: "shake128", shake256: "shake256" });
|
|
29
29
|
var PSS_SALT = { "SHA-256": 32, "SHA-384": 48, "SHA-512": 64 };
|
|
30
30
|
var ECDSA_ALG = { sha256: "ecdsaWithSHA256", sha384: "ecdsaWithSHA384", sha512: "ecdsaWithSHA512" };
|
|
31
31
|
var RSA_PKCS1_SIG = { sha256: "sha256WithRSAEncryption", sha384: "sha384WithRSAEncryption", sha512: "sha512WithRSAEncryption" };
|
package/lib/tsp-sign.js
CHANGED
|
@@ -47,7 +47,7 @@ var _b = pkiBuild.makeBuilder({
|
|
|
47
47
|
NAME_SCHEMA: pkix.name(_NS), SPKI_SCHEMA: pkix.spki(_NS),
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
var NODE_DIGEST = { sha256: "sha256", sha384: "sha384", sha512: "sha512" };
|
|
50
|
+
var NODE_DIGEST = intrinsic.assign(intrinsic.create(null), { sha256: "sha256", sha384: "sha384", sha512: "sha512" });
|
|
51
51
|
var HASH_LEN = { sha256: 32, sha384: 48, sha512: 64 };
|
|
52
52
|
|
|
53
53
|
var _REVOCATION_RANK = { "false": 0, "undetermined": 1, "waived": 2, "determined": 3 };
|
|
@@ -397,9 +397,9 @@ function response(token, opts) {
|
|
|
397
397
|
function parseResponse(input) { return schemaTsp.parse(input); }
|
|
398
398
|
|
|
399
399
|
|
|
400
|
-
var _VERIFY_DIGEST = { sha256: "sha256", sha384: "sha384", sha512: "sha512", sha1: "sha1" };
|
|
401
|
-
var _VERIFY_DIGEST_LEN = { sha1: 20, sha256: 32, sha384: 48, sha512: 64 };
|
|
402
|
-
var _BIND_DIGEST = { sha256: "sha256", sha384: "sha384", sha512: "sha512" };
|
|
400
|
+
var _VERIFY_DIGEST = intrinsic.assign(intrinsic.create(null), { sha256: "sha256", sha384: "sha384", sha512: "sha512", sha1: "sha1" });
|
|
401
|
+
var _VERIFY_DIGEST_LEN = intrinsic.assign(intrinsic.create(null), { sha1: 20, sha256: 32, sha384: 48, sha512: 64 });
|
|
402
|
+
var _BIND_DIGEST = intrinsic.assign(intrinsic.create(null), { sha256: "sha256", sha384: "sha384", sha512: "sha512" });
|
|
403
403
|
|
|
404
404
|
function _imprintMatches(mi, data) {
|
|
405
405
|
var name = mi.hashAlgorithm && mi.hashAlgorithm.name;
|
package/lib/webcrypto.js
CHANGED
|
@@ -122,7 +122,7 @@ function _normalizeAlg(algorithm, who) {
|
|
|
122
122
|
return out;
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
-
var _STD_ALG_NAME = { "RSASSA-PKCS1-V1_5": "RSASSA-PKCS1-v1_5", "ED25519": "Ed25519", "ED448": "Ed448" };
|
|
125
|
+
var _STD_ALG_NAME = intrinsic.assign(intrinsic.create(null), { "RSASSA-PKCS1-V1_5": "RSASSA-PKCS1-v1_5", "ED25519": "Ed25519", "ED448": "Ed448" });
|
|
126
126
|
function _stdName(name) { return _STD_ALG_NAME[name] || name; }
|
|
127
127
|
|
|
128
128
|
var HASH_NODE = {
|
|
@@ -164,24 +164,24 @@ function _hmacLengthBits(alg, who) {
|
|
|
164
164
|
return alg.length;
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
-
var CURVE_NODE = { "P-256": "prime256v1", "P-384": "secp384r1", "P-521": "secp521r1" };
|
|
168
|
-
var CURVE_FIELD_BYTES = { "P-256": 32, "P-384": 48, "P-521": 66 };
|
|
167
|
+
var CURVE_NODE = intrinsic.assign(intrinsic.create(null), { "P-256": "prime256v1", "P-384": "secp384r1", "P-521": "secp521r1" });
|
|
168
|
+
var CURVE_FIELD_BYTES = intrinsic.assign(intrinsic.create(null), { "P-256": 32, "P-384": 48, "P-521": 66 });
|
|
169
169
|
|
|
170
|
-
var ML_DSA_NODE = { "ML-DSA-44": "ml-dsa-44", "ML-DSA-65": "ml-dsa-65", "ML-DSA-87": "ml-dsa-87" };
|
|
171
|
-
var ML_KEM_NODE = { "ML-KEM-512": "ml-kem-512", "ML-KEM-768": "ml-kem-768", "ML-KEM-1024": "ml-kem-1024" };
|
|
170
|
+
var ML_DSA_NODE = intrinsic.assign(intrinsic.create(null), { "ML-DSA-44": "ml-dsa-44", "ML-DSA-65": "ml-dsa-65", "ML-DSA-87": "ml-dsa-87" });
|
|
171
|
+
var ML_KEM_NODE = intrinsic.assign(intrinsic.create(null), { "ML-KEM-512": "ml-kem-512", "ML-KEM-768": "ml-kem-768", "ML-KEM-1024": "ml-kem-1024" });
|
|
172
172
|
|
|
173
|
-
var SLH_DSA_NODE =
|
|
173
|
+
var SLH_DSA_NODE = intrinsic.create(null);
|
|
174
174
|
["sha2-128s", "sha2-128f", "sha2-192s", "sha2-192f", "sha2-256s", "sha2-256f",
|
|
175
175
|
"shake-128s", "shake-128f", "shake-192s", "shake-192f", "shake-256s", "shake-256f"
|
|
176
176
|
].forEach(function (s) { SLH_DSA_NODE["SLH-DSA-" + _toUpperCase(s)] = "slh-dsa-" + s; });
|
|
177
177
|
|
|
178
|
-
var SIGN_VERIFY_NAMES =
|
|
178
|
+
var SIGN_VERIFY_NAMES = intrinsic.create(null);
|
|
179
179
|
["RSASSA-PKCS1-V1_5", "RSA-PSS", "ECDSA", "ED25519", "ED448", "HMAC"]
|
|
180
180
|
.concat(_keys(ML_DSA_NODE), _keys(SLH_DSA_NODE))
|
|
181
181
|
.forEach(function (n) { SIGN_VERIFY_NAMES[n] = true; });
|
|
182
|
-
var ENCRYPT_DECRYPT_NAMES = { "RSA-OAEP": true, "AES-GCM": true, "AES-CBC": true, "AES-CTR": true };
|
|
183
|
-
var DERIVE_NAMES = { "ECDH": true, "X25519": true, "X448": true, "HKDF": true, "PBKDF2": true, "X963KDF": true };
|
|
184
|
-
var SECRET_KEY_NAMES = { "AES-GCM": true, "AES-CBC": true, "AES-CTR": true, "AES-KW": true, "HMAC": true, "HKDF": true, "PBKDF2": true, "X963KDF": true };
|
|
182
|
+
var ENCRYPT_DECRYPT_NAMES = intrinsic.assign(intrinsic.create(null), { "RSA-OAEP": true, "AES-GCM": true, "AES-CBC": true, "AES-CTR": true });
|
|
183
|
+
var DERIVE_NAMES = intrinsic.assign(intrinsic.create(null), { "ECDH": true, "X25519": true, "X448": true, "HKDF": true, "PBKDF2": true, "X963KDF": true });
|
|
184
|
+
var SECRET_KEY_NAMES = intrinsic.assign(intrinsic.create(null), { "AES-GCM": true, "AES-CBC": true, "AES-CTR": true, "AES-KW": true, "HMAC": true, "HKDF": true, "PBKDF2": true, "X963KDF": true });
|
|
185
185
|
|
|
186
186
|
|
|
187
187
|
/**
|
|
@@ -974,12 +974,12 @@ function _importRawPublic(name, alg, raw, extractable, usages) {
|
|
|
974
974
|
throw new WebCryptoError("webcrypto/not-supported", "importKey raw: unsupported public-key algorithm " + _stringify(name));
|
|
975
975
|
}
|
|
976
976
|
|
|
977
|
-
var IMPORT_KEY_TYPE = {
|
|
977
|
+
var IMPORT_KEY_TYPE = intrinsic.assign(intrinsic.create(null), {
|
|
978
978
|
"RSASSA-PKCS1-V1_5": { rsa: 1 }, "RSA-PSS": { rsa: 1, "rsa-pss": 1 }, "RSA-OAEP": { rsa: 1 },
|
|
979
979
|
"ECDSA": { ec: 1 }, "ECDH": { ec: 1 },
|
|
980
980
|
"ED25519": { ed25519: 1 }, "ED448": { ed448: 1 },
|
|
981
981
|
"X25519": { x25519: 1 }, "X448": { x448: 1 },
|
|
982
|
-
};
|
|
982
|
+
});
|
|
983
983
|
[ML_DSA_NODE, ML_KEM_NODE, SLH_DSA_NODE].forEach(function (m) {
|
|
984
984
|
_forEach(_keys(m), function (webName) { var t = {}; t[m[webName]] = 1; IMPORT_KEY_TYPE[webName] = t; });
|
|
985
985
|
});
|
package/package.json
CHANGED
package/sbom.cdx.json
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json",
|
|
3
3
|
"bomFormat": "CycloneDX",
|
|
4
4
|
"specVersion": "1.5",
|
|
5
|
-
"serialNumber": "urn:uuid:
|
|
5
|
+
"serialNumber": "urn:uuid:ba3e8f6b-69f8-4691-b5ee-3d227fe61113",
|
|
6
6
|
"version": 1,
|
|
7
7
|
"metadata": {
|
|
8
|
-
"timestamp": "2026-09-
|
|
8
|
+
"timestamp": "2026-09-01T20:36:49.754Z",
|
|
9
9
|
"lifecycles": [
|
|
10
10
|
{
|
|
11
11
|
"phase": "build"
|
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
}
|
|
20
20
|
],
|
|
21
21
|
"component": {
|
|
22
|
-
"bom-ref": "@blamejs/pki@0.6.
|
|
22
|
+
"bom-ref": "@blamejs/pki@0.6.21",
|
|
23
23
|
"type": "application",
|
|
24
24
|
"name": "pki",
|
|
25
|
-
"version": "0.6.
|
|
25
|
+
"version": "0.6.21",
|
|
26
26
|
"scope": "required",
|
|
27
27
|
"author": "blamejs contributors",
|
|
28
28
|
"description": "Pure-JavaScript PKI toolkit that owns its stack — X.509, ASN.1/DER, CMS, PQC-first.",
|
|
29
|
-
"purl": "pkg:npm/%40blamejs/pki@0.6.
|
|
29
|
+
"purl": "pkg:npm/%40blamejs/pki@0.6.21",
|
|
30
30
|
"properties": [],
|
|
31
31
|
"externalReferences": [
|
|
32
32
|
{
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"components": [],
|
|
55
55
|
"dependencies": [
|
|
56
56
|
{
|
|
57
|
-
"ref": "@blamejs/pki@0.6.
|
|
57
|
+
"ref": "@blamejs/pki@0.6.21",
|
|
58
58
|
"dependsOn": []
|
|
59
59
|
}
|
|
60
60
|
]
|