Socket
Socket
Sign inDemoInstall

@peculiar/x509

Package Overview
Dependencies
Maintainers
6
Versions
49
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@peculiar/x509 - npm Package Compare versions

Comparing version 1.2.2 to 1.3.0

4

build/types/algorithm.d.ts
import { AlgorithmIdentifier } from "@peculiar/asn1-x509";
export interface UnknownAlgorithm extends Algorithm {
name: string;
parameters?: ArrayBuffer | null;
}
export interface IAlgorithm {

@@ -3,0 +7,0 @@ toAsnAlgorithm(alg: Algorithm): AlgorithmIdentifier | null;

194

build/x509.es.js

@@ -27,11 +27,15 @@ /*!

import { AsnConvert, OctetString, AsnUtf8StringConverter } from '@peculiar/asn1-schema';
import { Extension as Extension$1, Name as Name$1, AttributeTypeAndValue, RelativeDistinguishedName, SubjectPublicKeyInfo, Certificate, AuthorityKeyIdentifier, id_ce_authorityKeyIdentifier, BasicConstraints, id_ce_basicConstraints, ExtendedKeyUsage, id_ce_extKeyUsage, KeyUsage, id_ce_keyUsage, SubjectKeyIdentifier, id_ce_subjectKeyIdentifier, OtherName as OtherName$1, SubjectAlternativeName, GeneralName, id_ce_subjectAltName, DirectoryString, Attribute as Attribute$1, Extensions, AlgorithmIdentifier, TBSCertificate, Version, Validity } from '@peculiar/asn1-x509';
import * as asn1X509 from '@peculiar/asn1-x509';
import { Extension as Extension$1, Name as Name$1, AttributeTypeAndValue, RelativeDistinguishedName, AlgorithmIdentifier, SubjectPublicKeyInfo, Certificate, BasicConstraints, id_ce_basicConstraints, ExtendedKeyUsage, id_ce_extKeyUsage, KeyUsage, id_ce_keyUsage, SubjectKeyIdentifier, id_ce_subjectKeyIdentifier, Attribute as Attribute$1, Extensions } from '@peculiar/asn1-x509';
import { BufferSourceConverter, isEqual, Convert, combine } from 'pvtsutils';
import { container, injectable } from 'tsyringe';
import { id_rsaEncryption, RSAPublicKey, id_sha512WithRSAEncryption, id_sha384WithRSAEncryption, id_sha256WithRSAEncryption, id_sha1WithRSAEncryption } from '@peculiar/asn1-rsa';
import { ChallengePassword, id_pkcs9_at_challengePassword, id_pkcs9_at_extensionRequest } from '@peculiar/asn1-pkcs9';
import * as asn1Rsa from '@peculiar/asn1-rsa';
import { id_rsaEncryption, RSAPublicKey } from '@peculiar/asn1-rsa';
import * as asnPkcs9 from '@peculiar/asn1-pkcs9';
import { id_pkcs9_at_extensionRequest } from '@peculiar/asn1-pkcs9';
import { __decorate } from 'tslib';
import { id_ecdsaWithSHA512, id_ecdsaWithSHA384, id_ecdsaWithSHA256, id_ecdsaWithSHA1, id_ecPublicKey, ECParameters, id_secp521r1, id_secp384r1, id_secp256r1, ECDSASigValue } from '@peculiar/asn1-ecc';
import * as asn1Ecc from '@peculiar/asn1-ecc';
import { ECDSASigValue } from '@peculiar/asn1-ecc';
import { CertificationRequest, CertificationRequestInfo } from '@peculiar/asn1-csr';
import { SignedData, CertificateSet, CertificateChoices, ContentInfo, id_signedData } from '@peculiar/asn1-cms';
import * as asn1Cms from '@peculiar/asn1-cms';

@@ -318,2 +322,12 @@ class AsnData {

}
if (/[0-9.]+/.test(alg.name)) {
const res = new AlgorithmIdentifier({
algorithm: alg.name,
});
if ("parameters" in alg) {
const unknown = alg;
res.parameters = unknown.parameters;
}
return res;
}
throw new Error("Cannot convert WebCrypto algorithm to ASN.1 algorithm");

@@ -328,3 +342,7 @@ }

}
throw new Error("Cannot convert ASN.1 algorithm to WebCrypto algorithm");
const unknown = {
name: alg.algorithm,
parameters: alg.parameters,
};
return unknown;
}

@@ -643,12 +661,12 @@ }

else if (typeof args[0] === "string") {
const value = new AuthorityKeyIdentifier({ keyIdentifier: new OctetString(Convert.FromHex(args[0])) });
super(id_ce_authorityKeyIdentifier, args[1], AsnConvert.serialize(value));
const value = new asn1X509.AuthorityKeyIdentifier({ keyIdentifier: new OctetString(Convert.FromHex(args[0])) });
super(asn1X509.id_ce_authorityKeyIdentifier, args[1], AsnConvert.serialize(value));
}
else {
const certId = args[0];
const value = new AuthorityKeyIdentifier({
const value = new asn1X509.AuthorityKeyIdentifier({
authorityCertIssuer: certId.name,
authorityCertSerialNumber: Convert.FromHex(certId.serialNumber),
});
super(id_ce_authorityKeyIdentifier, args[1], AsnConvert.serialize(value));
super(asn1X509.id_ce_authorityKeyIdentifier, args[1], AsnConvert.serialize(value));
}

@@ -669,3 +687,3 @@ }

super.onInit(asn);
const aki = AsnConvert.parse(asn.extnValue, AuthorityKeyIdentifier);
const aki = AsnConvert.parse(asn.extnValue, asn1X509.AuthorityKeyIdentifier);
if (aki.keyIdentifier) {

@@ -777,5 +795,5 @@ this.keyId = Convert.ToHex(aki.keyIdentifier);

const value = BufferSourceConverter.toArrayBuffer(args[1]);
raw = AsnConvert.serialize(new OtherName$1({ typeId: type, value }));
raw = AsnConvert.serialize(new asn1X509.OtherName({ typeId: type, value }));
}
super(raw, OtherName$1);
super(raw, asn1X509.OtherName);
}

@@ -800,5 +818,5 @@ onInit(asn) {

const data = args[0] || {};
const value = new SubjectAlternativeName();
const value = new asn1X509.SubjectAlternativeName();
for (const item of data.dns || []) {
value.push(new GeneralName({
value.push(new asn1X509.GeneralName({
dNSName: item,

@@ -808,3 +826,3 @@ }));

for (const item of data.email || []) {
value.push(new GeneralName({
value.push(new asn1X509.GeneralName({
rfc822Name: item,

@@ -827,4 +845,4 @@ }));

.join("");
value.push(new GeneralName({
otherName: new OtherName$1({
value.push(new asn1X509.GeneralName({
otherName: new asn1X509.OtherName({
typeId: SubjectAlternativeNameExtension.GUID,

@@ -836,3 +854,3 @@ value: AsnConvert.serialize(new OctetString(Convert.FromHex(hex))),

for (const item of data.ip || []) {
value.push(new GeneralName({
value.push(new asn1X509.GeneralName({
iPAddress: item,

@@ -842,3 +860,3 @@ }));

for (const item of data.url || []) {
value.push(new GeneralName({
value.push(new asn1X509.GeneralName({
uniformResourceIdentifier: item,

@@ -848,4 +866,4 @@ }));

for (const item of data.upn || []) {
value.push(new GeneralName({
otherName: new OtherName$1({
value.push(new asn1X509.GeneralName({
otherName: new asn1X509.OtherName({
typeId: SubjectAlternativeNameExtension.UPN,

@@ -857,3 +875,3 @@ value: AsnConvert.serialize(AsnUtf8StringConverter.toASN(item))

for (const item of data.registeredId || []) {
value.push(new GeneralName({
value.push(new asn1X509.GeneralName({
registeredID: item,

@@ -863,4 +881,4 @@ }));

for (const item of data.otherName || []) {
value.push(new GeneralName({
otherName: new OtherName$1({
value.push(new asn1X509.GeneralName({
otherName: new asn1X509.OtherName({
typeId: item.type,

@@ -871,3 +889,3 @@ value: Convert.FromHex(item.value),

}
super(id_ce_subjectAltName, args[1], AsnConvert.serialize(value));
super(asn1X509.id_ce_subjectAltName, args[1], AsnConvert.serialize(value));
}

@@ -877,3 +895,3 @@ }

super.onInit(asn);
const value = AsnConvert.parse(asn.extnValue, SubjectAlternativeName);
const value = AsnConvert.parse(asn.extnValue, asn1X509.SubjectAlternativeName);
this.dns = value.filter(o => o.dNSName).map(o => o.dNSName || "");

@@ -885,3 +903,3 @@ this.email = value.filter(o => o.rfc822Name).map(o => o.rfc822Name || "");

.filter(o => { var _a; return ((_a = o.otherName) === null || _a === void 0 ? void 0 : _a.typeId) === SubjectAlternativeNameExtension.UPN; })
.map(o => o.otherName ? AsnConvert.parse(o.otherName.value, DirectoryString).toString() : "");
.map(o => o.otherName ? AsnConvert.parse(o.otherName.value, asn1X509.DirectoryString).toString() : "");
this.guid = value

@@ -969,6 +987,6 @@ .filter(o => { var _a; return ((_a = o.otherName) === null || _a === void 0 ? void 0 : _a.typeId) === SubjectAlternativeNameExtension.GUID; })

else {
const value = new ChallengePassword({
const value = new asnPkcs9.ChallengePassword({
printableString: args[0],
});
super(id_pkcs9_at_challengePassword, [AsnConvert.serialize(value)]);
super(asnPkcs9.id_pkcs9_at_challengePassword, [AsnConvert.serialize(value)]);
}

@@ -980,3 +998,3 @@ (_a = this.password) !== null && _a !== void 0 ? _a : (this.password = "");

if (this.values[0]) {
const value = AsnConvert.parse(this.values[0], ChallengePassword);
const value = AsnConvert.parse(this.values[0], asnPkcs9.ChallengePassword);
this.password = value.toString();

@@ -994,4 +1012,4 @@ }

else {
const value = new Extensions(args[0]);
super(id_pkcs9_at_extensionRequest, [AsnConvert.serialize(value)]);
const value = new asn1X509.Extensions(args[0]);
super(asnPkcs9.id_pkcs9_at_extensionRequest, [AsnConvert.serialize(value)]);
}

@@ -1003,3 +1021,3 @@ (_a = this.items) !== null && _a !== void 0 ? _a : (this.items = []);

if (this.values[0]) {
const value = AsnConvert.parse(this.values[0], Extensions);
const value = AsnConvert.parse(this.values[0], asn1X509.Extensions);
this.items = value.map(o => ExtensionFactory.create(AsnConvert.serialize(o)));

@@ -1032,13 +1050,13 @@ }

case "sha-1":
return new AlgorithmIdentifier({ algorithm: id_sha1WithRSAEncryption, parameters: null });
return new AlgorithmIdentifier({ algorithm: asn1Rsa.id_sha1WithRSAEncryption, parameters: null });
case "sha-256":
return new AlgorithmIdentifier({ algorithm: id_sha256WithRSAEncryption, parameters: null });
return new AlgorithmIdentifier({ algorithm: asn1Rsa.id_sha256WithRSAEncryption, parameters: null });
case "sha-384":
return new AlgorithmIdentifier({ algorithm: id_sha384WithRSAEncryption, parameters: null });
return new AlgorithmIdentifier({ algorithm: asn1Rsa.id_sha384WithRSAEncryption, parameters: null });
case "sha-512":
return new AlgorithmIdentifier({ algorithm: id_sha512WithRSAEncryption, parameters: null });
return new AlgorithmIdentifier({ algorithm: asn1Rsa.id_sha512WithRSAEncryption, parameters: null });
}
}
else {
return new AlgorithmIdentifier({ algorithm: id_rsaEncryption, parameters: null });
return new AlgorithmIdentifier({ algorithm: asn1Rsa.id_rsaEncryption, parameters: null });
}

@@ -1050,11 +1068,11 @@ }

switch (alg.algorithm) {
case id_rsaEncryption:
case asn1Rsa.id_rsaEncryption:
return { name: "RSASSA-PKCS1-v1_5" };
case id_sha1WithRSAEncryption:
case asn1Rsa.id_sha1WithRSAEncryption:
return { name: "RSASSA-PKCS1-v1_5", hash: { name: "SHA-1" } };
case id_sha256WithRSAEncryption:
case asn1Rsa.id_sha256WithRSAEncryption:
return { name: "RSASSA-PKCS1-v1_5", hash: { name: "SHA-256" } };
case id_sha384WithRSAEncryption:
case asn1Rsa.id_sha384WithRSAEncryption:
return { name: "RSASSA-PKCS1-v1_5", hash: { name: "SHA-384" } };
case id_sha512WithRSAEncryption:
case asn1Rsa.id_sha512WithRSAEncryption:
return { name: "RSASSA-PKCS1-v1_5", hash: { name: "SHA-512" } };

@@ -1079,9 +1097,9 @@ }

case "sha-1":
return new AlgorithmIdentifier({ algorithm: id_ecdsaWithSHA1, parameters: null });
return new AlgorithmIdentifier({ algorithm: asn1Ecc.id_ecdsaWithSHA1, parameters: null });
case "sha-256":
return new AlgorithmIdentifier({ algorithm: id_ecdsaWithSHA256, parameters: null });
return new AlgorithmIdentifier({ algorithm: asn1Ecc.id_ecdsaWithSHA256, parameters: null });
case "sha-384":
return new AlgorithmIdentifier({ algorithm: id_ecdsaWithSHA384, parameters: null });
return new AlgorithmIdentifier({ algorithm: asn1Ecc.id_ecdsaWithSHA384, parameters: null });
case "sha-512":
return new AlgorithmIdentifier({ algorithm: id_ecdsaWithSHA512, parameters: null });
return new AlgorithmIdentifier({ algorithm: asn1Ecc.id_ecdsaWithSHA512, parameters: null });
}

@@ -1093,3 +1111,3 @@ }

case "P-256":
parameters = id_secp256r1;
parameters = asn1Ecc.id_secp256r1;
break;

@@ -1100,6 +1118,6 @@ case "K-256":

case "P-384":
parameters = id_secp384r1;
parameters = asn1Ecc.id_secp384r1;
break;
case "P-521":
parameters = id_secp521r1;
parameters = asn1Ecc.id_secp521r1;
break;

@@ -1109,4 +1127,4 @@ }

return new AlgorithmIdentifier({
algorithm: id_ecPublicKey,
parameters: AsnConvert.serialize(new ECParameters({ namedCurve: parameters })),
algorithm: asn1Ecc.id_ecPublicKey,
parameters: AsnConvert.serialize(new asn1Ecc.ECParameters({ namedCurve: parameters })),
});

@@ -1120,23 +1138,23 @@ }

switch (alg.algorithm) {
case id_ecdsaWithSHA1:
case asn1Ecc.id_ecdsaWithSHA1:
return { name: "ECDSA", hash: { name: "SHA-1" } };
case id_ecdsaWithSHA256:
case asn1Ecc.id_ecdsaWithSHA256:
return { name: "ECDSA", hash: { name: "SHA-256" } };
case id_ecdsaWithSHA384:
case asn1Ecc.id_ecdsaWithSHA384:
return { name: "ECDSA", hash: { name: "SHA-384" } };
case id_ecdsaWithSHA512:
case asn1Ecc.id_ecdsaWithSHA512:
return { name: "ECDSA", hash: { name: "SHA-512" } };
case id_ecPublicKey: {
case asn1Ecc.id_ecPublicKey: {
if (!alg.parameters) {
throw new TypeError("Cannot get required parameters from EC algorithm");
}
const parameters = AsnConvert.parse(alg.parameters, ECParameters);
const parameters = AsnConvert.parse(alg.parameters, asn1Ecc.ECParameters);
switch (parameters.namedCurve) {
case id_secp256r1:
case asn1Ecc.id_secp256r1:
return { name: "ECDSA", namedCurve: "P-256" };
case EcAlgorithm_1.SECP256K1:
return { name: "ECDSA", namedCurve: "K-256" };
case id_secp384r1:
case asn1Ecc.id_secp384r1:
return { name: "ECDSA", namedCurve: "P-384" };
case id_secp521r1:
case asn1Ecc.id_secp521r1:
return { name: "ECDSA", namedCurve: "P-521" };

@@ -1381,8 +1399,8 @@ }

export(format) {
const signedData = new SignedData();
signedData.certificates = new CertificateSet(this.map(o => new CertificateChoices({
const signedData = new asn1Cms.SignedData();
signedData.certificates = new asn1Cms.CertificateSet(this.map(o => new asn1Cms.CertificateChoices({
certificate: AsnConvert.parse(o.rawData, Certificate)
})));
const cms = new ContentInfo({
contentType: id_signedData,
const cms = new asn1Cms.ContentInfo({
contentType: asn1Cms.id_signedData,
content: AsnConvert.serialize(signedData),

@@ -1398,7 +1416,7 @@ });

const raw = PemData.toArrayBuffer(data);
const cms = AsnConvert.parse(raw, ContentInfo);
if (cms.contentType !== id_signedData) {
const cms = AsnConvert.parse(raw, asn1Cms.ContentInfo);
if (cms.contentType !== asn1Cms.id_signedData) {
throw new TypeError("Cannot parse CMS package. Incoming data is not a SignedData object.");
}
const signedData = AsnConvert.parse(cms.content, SignedData);
const signedData = AsnConvert.parse(cms.content, asn1Cms.SignedData);
this.clear();

@@ -1456,3 +1474,3 @@ for (const item of signedData.certificates || []) {

if (!await cert.isSelfSigned()) {
const akiExt = cert.getExtension(id_ce_authorityKeyIdentifier);
const akiExt = cert.getExtension(asn1X509.id_ce_authorityKeyIdentifier);
for (const item of this.certificates) {

@@ -1464,3 +1482,3 @@ if (item.subject !== cert.issuer) {

if (akiExt.keyId) {
const skiExt = item.getExtension(id_ce_subjectKeyIdentifier);
const skiExt = item.getExtension(asn1X509.id_ce_subjectKeyIdentifier);
if (skiExt && skiExt.keyId !== akiExt.keyId) {

@@ -1471,3 +1489,3 @@ continue;

else if (akiExt.certId) {
const sanExt = item.getExtension(id_ce_subjectAltName);
const sanExt = item.getExtension(asn1X509.id_ce_subjectAltName);
if (sanExt &&

@@ -1509,19 +1527,19 @@ !(akiExt.certId.serialNumber === item.serialNumber && isEqual(AsnConvert.serialize(akiExt.certId.name), AsnConvert.serialize(sanExt)))) {

const spki = await crypto.subtle.exportKey("spki", params.publicKey);
const asnX509 = new Certificate({
tbsCertificate: new TBSCertificate({
version: Version.v3,
const asnX509 = new asn1X509.Certificate({
tbsCertificate: new asn1X509.TBSCertificate({
version: asn1X509.Version.v3,
serialNumber: Convert.FromHex(params.serialNumber),
validity: new Validity({
validity: new asn1X509.Validity({
notBefore: params.notBefore,
notAfter: params.notAfter,
}),
extensions: new Extensions(((_a = params.extensions) === null || _a === void 0 ? void 0 : _a.map(o => AsnConvert.parse(o.rawData, Extension$1))) || []),
subjectPublicKeyInfo: AsnConvert.parse(spki, SubjectPublicKeyInfo),
extensions: new asn1X509.Extensions(((_a = params.extensions) === null || _a === void 0 ? void 0 : _a.map(o => AsnConvert.parse(o.rawData, asn1X509.Extension))) || []),
subjectPublicKeyInfo: AsnConvert.parse(spki, asn1X509.SubjectPublicKeyInfo),
}),
});
if (params.subject) {
asnX509.tbsCertificate.subject = AsnConvert.parse(new Name(params.subject).toArrayBuffer(), Name$1);
asnX509.tbsCertificate.subject = AsnConvert.parse(new Name(params.subject).toArrayBuffer(), asn1X509.Name);
}
if (params.issuer) {
asnX509.tbsCertificate.issuer = AsnConvert.parse(new Name(params.issuer).toArrayBuffer(), Name$1);
asnX509.tbsCertificate.issuer = AsnConvert.parse(new Name(params.issuer).toArrayBuffer(), asn1X509.Name);
}

@@ -1549,10 +1567,10 @@ const signingAlgorithm = { ...params.signingAlgorithm, ...params.signingKey.algorithm };

ExtensionFactory.register(id_ce_basicConstraints, BasicConstraintsExtension);
ExtensionFactory.register(id_ce_extKeyUsage, ExtendedKeyUsageExtension);
ExtensionFactory.register(id_ce_keyUsage, KeyUsagesExtension);
ExtensionFactory.register(id_ce_subjectKeyIdentifier, SubjectKeyIdentifierExtension);
ExtensionFactory.register(id_ce_authorityKeyIdentifier, AuthorityKeyIdentifierExtension);
ExtensionFactory.register(id_ce_subjectAltName, SubjectAlternativeNameExtension);
AttributeFactory.register(id_pkcs9_at_challengePassword, ChallengePasswordAttribute);
AttributeFactory.register(id_pkcs9_at_extensionRequest, ExtensionsAttribute);
ExtensionFactory.register(asn1X509.id_ce_basicConstraints, BasicConstraintsExtension);
ExtensionFactory.register(asn1X509.id_ce_extKeyUsage, ExtendedKeyUsageExtension);
ExtensionFactory.register(asn1X509.id_ce_keyUsage, KeyUsagesExtension);
ExtensionFactory.register(asn1X509.id_ce_subjectKeyIdentifier, SubjectKeyIdentifierExtension);
ExtensionFactory.register(asn1X509.id_ce_authorityKeyIdentifier, AuthorityKeyIdentifierExtension);
ExtensionFactory.register(asn1X509.id_ce_subjectAltName, SubjectAlternativeNameExtension);
AttributeFactory.register(asnPkcs9.id_pkcs9_at_challengePassword, ChallengePasswordAttribute);
AttributeFactory.register(asnPkcs9.id_pkcs9_at_extensionRequest, ExtensionsAttribute);
container.registerSingleton(diAsnSignatureFormatter, AsnDefaultSignatureFormatter);

@@ -1559,0 +1577,0 @@ container.registerSingleton(diAsnSignatureFormatter, AsnEcSignatureFormatter);

{
"name": "@peculiar/x509",
"version": "1.2.2",
"version": "1.3.0",
"description": "@peculiar/x509 is an easy to use TypeScript/Javascript library based on @peculiar/asn1-schema that makes generating X.509 Certificates and Certificate Requests as well as validating certificate chains easy",

@@ -86,36 +86,36 @@ "main": "build/x509.cjs.js",

"devDependencies": {
"@babel/core": "^7.13.10",
"@babel/preset-env": "^7.13.10",
"@babel/core": "^7.13.16",
"@babel/preset-env": "^7.13.15",
"@peculiar/webcrypto": "^1.1.6",
"@rollup/plugin-babel": "^5.3.0",
"@rollup/plugin-commonjs": "^17.1.0",
"@rollup/plugin-node-resolve": "^11.2.0",
"@types/mocha": "^8.2.1",
"@rollup/plugin-commonjs": "^18.0.0",
"@rollup/plugin-node-resolve": "^11.2.1",
"@types/mocha": "^8.2.2",
"@types/node": "^14.14.20",
"@typescript-eslint/eslint-plugin": "^4.18.0",
"@typescript-eslint/parser": "^4.18.0",
"@typescript-eslint/eslint-plugin": "^4.22.0",
"@typescript-eslint/parser": "^4.22.0",
"coveralls": "^3.1.0",
"eslint": "^7.22.0",
"eslint": "^7.25.0",
"mocha": "^8.3.2",
"nyc": "^15.1.0",
"rimraf": "^3.0.2",
"rollup": "^2.41.2",
"rollup": "^2.46.0",
"rollup-plugin-terser": "^7.0.2",
"rollup-plugin-typescript2": "^0.30.0",
"ts-node": "^9.1.1",
"typedoc": "^0.20.32",
"typescript": "^4.2.3"
"typedoc": "^0.20.36",
"typescript": "^4.2.4"
},
"dependencies": {
"@peculiar/asn1-cms": "^2.0.27",
"@peculiar/asn1-csr": "^2.0.27",
"@peculiar/asn1-ecc": "^2.0.27",
"@peculiar/asn1-pkcs9": "^2.0.27",
"@peculiar/asn1-rsa": "^2.0.27",
"@peculiar/asn1-schema": "^2.0.27",
"@peculiar/asn1-x509": "^2.0.27",
"pvtsutils": "^1.1.2",
"@peculiar/asn1-cms": "^2.0.32",
"@peculiar/asn1-csr": "^2.0.32",
"@peculiar/asn1-ecc": "^2.0.32",
"@peculiar/asn1-pkcs9": "^2.0.32",
"@peculiar/asn1-rsa": "^2.0.32",
"@peculiar/asn1-schema": "^2.0.32",
"@peculiar/asn1-x509": "^2.0.32",
"pvtsutils": "^1.1.5",
"reflect-metadata": "^0.1.13",
"tslib": "^2.1.0",
"tsyringe": "^4.4.0"
"tslib": "^2.2.0",
"tsyringe": "^4.5.0"
},

@@ -122,0 +122,0 @@ "eslintConfig": {

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc