feat: 초기 프로젝트 설정 및 룰.md 파일 추가

This commit is contained in:
2025-07-28 09:53:31 +09:00
commit 09a4d38512
8165 changed files with 1021855 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AlgorithmIdentifier = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const pvtsutils = require("pvtsutils");
class AlgorithmIdentifier {
constructor(params = {}) {
this.algorithm = "";
Object.assign(this, params);
}
isEqual(data) {
return (data instanceof AlgorithmIdentifier &&
data.algorithm == this.algorithm &&
((data.parameters &&
this.parameters &&
pvtsutils.isEqual(data.parameters, this.parameters)) ||
data.parameters === this.parameters));
}
}
exports.AlgorithmIdentifier = AlgorithmIdentifier;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_1.AsnPropTypes.ObjectIdentifier,
})
], AlgorithmIdentifier.prototype, "algorithm", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_1.AsnPropTypes.Any,
optional: true,
})
], AlgorithmIdentifier.prototype, "parameters", void 0);

View File

@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Attribute = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
class Attribute {
constructor(params = {}) {
this.type = "";
this.values = [];
Object.assign(this, params);
}
}
exports.Attribute = Attribute;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.ObjectIdentifier })
], Attribute.prototype, "type", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Any, repeated: "set" })
], Attribute.prototype, "values", void 0);

View File

@@ -0,0 +1,25 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Certificate = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const algorithm_identifier_1 = require("./algorithm_identifier");
const tbs_certificate_1 = require("./tbs_certificate");
class Certificate {
constructor(params = {}) {
this.tbsCertificate = new tbs_certificate_1.TBSCertificate();
this.signatureAlgorithm = new algorithm_identifier_1.AlgorithmIdentifier();
this.signatureValue = new ArrayBuffer(0);
Object.assign(this, params);
}
}
exports.Certificate = Certificate;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: tbs_certificate_1.TBSCertificate })
], Certificate.prototype, "tbsCertificate", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: algorithm_identifier_1.AlgorithmIdentifier })
], Certificate.prototype, "signatureAlgorithm", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.BitString })
], Certificate.prototype, "signatureValue", void 0);

View File

@@ -0,0 +1,25 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CertificateList = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const algorithm_identifier_1 = require("./algorithm_identifier");
const tbs_cert_list_1 = require("./tbs_cert_list");
class CertificateList {
constructor(params = {}) {
this.tbsCertList = new tbs_cert_list_1.TBSCertList();
this.signatureAlgorithm = new algorithm_identifier_1.AlgorithmIdentifier();
this.signature = new ArrayBuffer(0);
Object.assign(this, params);
}
}
exports.CertificateList = CertificateList;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: tbs_cert_list_1.TBSCertList })
], CertificateList.prototype, "tbsCertList", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: algorithm_identifier_1.AlgorithmIdentifier })
], CertificateList.prototype, "signatureAlgorithm", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.BitString })
], CertificateList.prototype, "signature", void 0);

View File

@@ -0,0 +1,38 @@
"use strict";
var Extensions_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Extensions = exports.Extension = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
class Extension {
constructor(params = {}) {
this.extnID = "";
this.critical = Extension.CRITICAL;
this.extnValue = new asn1_schema_1.OctetString();
Object.assign(this, params);
}
}
exports.Extension = Extension;
Extension.CRITICAL = false;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.ObjectIdentifier })
], Extension.prototype, "extnID", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_1.AsnPropTypes.Boolean,
defaultValue: Extension.CRITICAL,
})
], Extension.prototype, "critical", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.OctetString })
], Extension.prototype, "extnValue", void 0);
let Extensions = Extensions_1 = class Extensions extends asn1_schema_1.AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, Extensions_1.prototype);
}
};
exports.Extensions = Extensions;
exports.Extensions = Extensions = Extensions_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence, itemType: Extension })
], Extensions);

View File

@@ -0,0 +1,33 @@
"use strict";
var AuthorityInfoAccessSyntax_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuthorityInfoAccessSyntax = exports.AccessDescription = exports.id_pe_authorityInfoAccess = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const general_name_1 = require("../general_name");
const object_identifiers_1 = require("../object_identifiers");
exports.id_pe_authorityInfoAccess = `${object_identifiers_1.id_pe}.1`;
class AccessDescription {
constructor(params = {}) {
this.accessMethod = "";
this.accessLocation = new general_name_1.GeneralName();
Object.assign(this, params);
}
}
exports.AccessDescription = AccessDescription;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.ObjectIdentifier })
], AccessDescription.prototype, "accessMethod", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: general_name_1.GeneralName })
], AccessDescription.prototype, "accessLocation", void 0);
let AuthorityInfoAccessSyntax = AuthorityInfoAccessSyntax_1 = class AuthorityInfoAccessSyntax extends asn1_schema_1.AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, AuthorityInfoAccessSyntax_1.prototype);
}
};
exports.AuthorityInfoAccessSyntax = AuthorityInfoAccessSyntax;
exports.AuthorityInfoAccessSyntax = AuthorityInfoAccessSyntax = AuthorityInfoAccessSyntax_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence, itemType: AccessDescription })
], AuthorityInfoAccessSyntax);

View File

@@ -0,0 +1,34 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuthorityKeyIdentifier = exports.KeyIdentifier = exports.id_ce_authorityKeyIdentifier = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const general_name_1 = require("../general_name");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_authorityKeyIdentifier = `${object_identifiers_1.id_ce}.35`;
class KeyIdentifier extends asn1_schema_1.OctetString {
}
exports.KeyIdentifier = KeyIdentifier;
class AuthorityKeyIdentifier {
constructor(params = {}) {
if (params) {
Object.assign(this, params);
}
}
}
exports.AuthorityKeyIdentifier = AuthorityKeyIdentifier;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: KeyIdentifier, context: 0, optional: true, implicit: true })
], AuthorityKeyIdentifier.prototype, "keyIdentifier", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: general_name_1.GeneralName, context: 1, optional: true, implicit: true, repeated: "sequence" })
], AuthorityKeyIdentifier.prototype, "authorityCertIssuer", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_1.AsnPropTypes.Integer,
context: 2,
optional: true,
implicit: true,
converter: asn1_schema_1.AsnIntegerArrayBufferConverter,
})
], AuthorityKeyIdentifier.prototype, "authorityCertSerialNumber", void 0);

View File

@@ -0,0 +1,20 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BasicConstraints = exports.id_ce_basicConstraints = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_basicConstraints = `${object_identifiers_1.id_ce}.19`;
class BasicConstraints {
constructor(params = {}) {
this.cA = false;
Object.assign(this, params);
}
}
exports.BasicConstraints = BasicConstraints;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Boolean, defaultValue: false })
], BasicConstraints.prototype, "cA", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer, optional: true })
], BasicConstraints.prototype, "pathLenConstraint", void 0);

View File

@@ -0,0 +1,19 @@
"use strict";
var CertificateIssuer_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CertificateIssuer = exports.id_ce_certificateIssuer = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const general_names_1 = require("../general_names");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_certificateIssuer = `${object_identifiers_1.id_ce}.29`;
let CertificateIssuer = CertificateIssuer_1 = class CertificateIssuer extends general_names_1.GeneralNames {
constructor(items) {
super(items);
Object.setPrototypeOf(this, CertificateIssuer_1.prototype);
}
};
exports.CertificateIssuer = CertificateIssuer;
exports.CertificateIssuer = CertificateIssuer = CertificateIssuer_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence })
], CertificateIssuer);

View File

@@ -0,0 +1,111 @@
"use strict";
var CertificatePolicies_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CertificatePolicies = exports.PolicyInformation = exports.PolicyQualifierInfo = exports.Qualifier = exports.UserNotice = exports.NoticeReference = exports.DisplayText = exports.id_ce_certificatePolicies_anyPolicy = exports.id_ce_certificatePolicies = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_certificatePolicies = `${object_identifiers_1.id_ce}.32`;
exports.id_ce_certificatePolicies_anyPolicy = `${exports.id_ce_certificatePolicies}.0`;
let DisplayText = class DisplayText {
constructor(params = {}) {
Object.assign(this, params);
}
toString() {
return this.ia5String || this.visibleString || this.bmpString || this.utf8String || "";
}
};
exports.DisplayText = DisplayText;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.IA5String })
], DisplayText.prototype, "ia5String", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.VisibleString })
], DisplayText.prototype, "visibleString", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.BmpString })
], DisplayText.prototype, "bmpString", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Utf8String })
], DisplayText.prototype, "utf8String", void 0);
exports.DisplayText = DisplayText = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Choice })
], DisplayText);
class NoticeReference {
constructor(params = {}) {
this.organization = new DisplayText();
this.noticeNumbers = [];
Object.assign(this, params);
}
}
exports.NoticeReference = NoticeReference;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: DisplayText })
], NoticeReference.prototype, "organization", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer, repeated: "sequence" })
], NoticeReference.prototype, "noticeNumbers", void 0);
class UserNotice {
constructor(params = {}) {
Object.assign(this, params);
}
}
exports.UserNotice = UserNotice;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: NoticeReference, optional: true })
], UserNotice.prototype, "noticeRef", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: DisplayText, optional: true })
], UserNotice.prototype, "explicitText", void 0);
let Qualifier = class Qualifier {
constructor(params = {}) {
Object.assign(this, params);
}
};
exports.Qualifier = Qualifier;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.IA5String })
], Qualifier.prototype, "cPSuri", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: UserNotice })
], Qualifier.prototype, "userNotice", void 0);
exports.Qualifier = Qualifier = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Choice })
], Qualifier);
class PolicyQualifierInfo {
constructor(params = {}) {
this.policyQualifierId = "";
this.qualifier = new ArrayBuffer(0);
Object.assign(this, params);
}
}
exports.PolicyQualifierInfo = PolicyQualifierInfo;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.ObjectIdentifier })
], PolicyQualifierInfo.prototype, "policyQualifierId", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Any })
], PolicyQualifierInfo.prototype, "qualifier", void 0);
class PolicyInformation {
constructor(params = {}) {
this.policyIdentifier = "";
Object.assign(this, params);
}
}
exports.PolicyInformation = PolicyInformation;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.ObjectIdentifier })
], PolicyInformation.prototype, "policyIdentifier", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: PolicyQualifierInfo, repeated: "sequence", optional: true })
], PolicyInformation.prototype, "policyQualifiers", void 0);
let CertificatePolicies = CertificatePolicies_1 = class CertificatePolicies extends asn1_schema_1.AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, CertificatePolicies_1.prototype);
}
};
exports.CertificatePolicies = CertificatePolicies;
exports.CertificatePolicies = CertificatePolicies = CertificatePolicies_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence, itemType: PolicyInformation })
], CertificatePolicies);

View File

@@ -0,0 +1,14 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseCRLNumber = exports.id_ce_deltaCRLIndicator = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const object_identifiers_1 = require("../object_identifiers");
const crl_number_1 = require("./crl_number");
exports.id_ce_deltaCRLIndicator = `${object_identifiers_1.id_ce}.27`;
let BaseCRLNumber = class BaseCRLNumber extends crl_number_1.CRLNumber {
};
exports.BaseCRLNumber = BaseCRLNumber;
exports.BaseCRLNumber = BaseCRLNumber = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Choice })
], BaseCRLNumber);

View File

@@ -0,0 +1,100 @@
"use strict";
var CRLDistributionPoints_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CRLDistributionPoints = exports.DistributionPoint = exports.DistributionPointName = exports.Reason = exports.ReasonFlags = exports.id_ce_cRLDistributionPoints = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const name_1 = require("../name");
const general_name_1 = require("../general_name");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_cRLDistributionPoints = `${object_identifiers_1.id_ce}.31`;
var ReasonFlags;
(function (ReasonFlags) {
ReasonFlags[ReasonFlags["unused"] = 1] = "unused";
ReasonFlags[ReasonFlags["keyCompromise"] = 2] = "keyCompromise";
ReasonFlags[ReasonFlags["cACompromise"] = 4] = "cACompromise";
ReasonFlags[ReasonFlags["affiliationChanged"] = 8] = "affiliationChanged";
ReasonFlags[ReasonFlags["superseded"] = 16] = "superseded";
ReasonFlags[ReasonFlags["cessationOfOperation"] = 32] = "cessationOfOperation";
ReasonFlags[ReasonFlags["certificateHold"] = 64] = "certificateHold";
ReasonFlags[ReasonFlags["privilegeWithdrawn"] = 128] = "privilegeWithdrawn";
ReasonFlags[ReasonFlags["aACompromise"] = 256] = "aACompromise";
})(ReasonFlags || (exports.ReasonFlags = ReasonFlags = {}));
class Reason extends asn1_schema_1.BitString {
toJSON() {
const res = [];
const flags = this.toNumber();
if (flags & ReasonFlags.aACompromise) {
res.push("aACompromise");
}
if (flags & ReasonFlags.affiliationChanged) {
res.push("affiliationChanged");
}
if (flags & ReasonFlags.cACompromise) {
res.push("cACompromise");
}
if (flags & ReasonFlags.certificateHold) {
res.push("certificateHold");
}
if (flags & ReasonFlags.cessationOfOperation) {
res.push("cessationOfOperation");
}
if (flags & ReasonFlags.keyCompromise) {
res.push("keyCompromise");
}
if (flags & ReasonFlags.privilegeWithdrawn) {
res.push("privilegeWithdrawn");
}
if (flags & ReasonFlags.superseded) {
res.push("superseded");
}
if (flags & ReasonFlags.unused) {
res.push("unused");
}
return res;
}
toString() {
return `[${this.toJSON().join(", ")}]`;
}
}
exports.Reason = Reason;
let DistributionPointName = class DistributionPointName {
constructor(params = {}) {
Object.assign(this, params);
}
};
exports.DistributionPointName = DistributionPointName;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: general_name_1.GeneralName, context: 0, repeated: "sequence", implicit: true })
], DistributionPointName.prototype, "fullName", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: name_1.RelativeDistinguishedName, context: 1, implicit: true })
], DistributionPointName.prototype, "nameRelativeToCRLIssuer", void 0);
exports.DistributionPointName = DistributionPointName = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Choice })
], DistributionPointName);
class DistributionPoint {
constructor(params = {}) {
Object.assign(this, params);
}
}
exports.DistributionPoint = DistributionPoint;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: DistributionPointName, context: 0, optional: true })
], DistributionPoint.prototype, "distributionPoint", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: Reason, context: 1, optional: true, implicit: true })
], DistributionPoint.prototype, "reasons", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: general_name_1.GeneralName, context: 2, optional: true, repeated: "sequence", implicit: true })
], DistributionPoint.prototype, "cRLIssuer", void 0);
let CRLDistributionPoints = CRLDistributionPoints_1 = class CRLDistributionPoints extends asn1_schema_1.AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, CRLDistributionPoints_1.prototype);
}
};
exports.CRLDistributionPoints = CRLDistributionPoints;
exports.CRLDistributionPoints = CRLDistributionPoints = CRLDistributionPoints_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence, itemType: DistributionPoint })
], CRLDistributionPoints);

View File

@@ -0,0 +1,19 @@
"use strict";
var FreshestCRL_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FreshestCRL = exports.id_ce_freshestCRL = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const object_identifiers_1 = require("../object_identifiers");
const crl_distribution_points_1 = require("./crl_distribution_points");
exports.id_ce_freshestCRL = `${object_identifiers_1.id_ce}.46`;
let FreshestCRL = FreshestCRL_1 = class FreshestCRL extends crl_distribution_points_1.CRLDistributionPoints {
constructor(items) {
super(items);
Object.setPrototypeOf(this, FreshestCRL_1.prototype);
}
};
exports.FreshestCRL = FreshestCRL;
exports.FreshestCRL = FreshestCRL = FreshestCRL_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence, itemType: crl_distribution_points_1.DistributionPoint })
], FreshestCRL);

View File

@@ -0,0 +1,58 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.IssuingDistributionPoint = exports.id_ce_issuingDistributionPoint = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const crl_distribution_points_1 = require("./crl_distribution_points");
const object_identifiers_1 = require("../object_identifiers");
const asn1_schema_2 = require("@peculiar/asn1-schema");
exports.id_ce_issuingDistributionPoint = `${object_identifiers_1.id_ce}.28`;
class IssuingDistributionPoint {
constructor(params = {}) {
this.onlyContainsUserCerts = IssuingDistributionPoint.ONLY;
this.onlyContainsCACerts = IssuingDistributionPoint.ONLY;
this.indirectCRL = IssuingDistributionPoint.ONLY;
this.onlyContainsAttributeCerts = IssuingDistributionPoint.ONLY;
Object.assign(this, params);
}
}
exports.IssuingDistributionPoint = IssuingDistributionPoint;
IssuingDistributionPoint.ONLY = false;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: crl_distribution_points_1.DistributionPointName, context: 0, optional: true })
], IssuingDistributionPoint.prototype, "distributionPoint", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_2.AsnPropTypes.Boolean,
context: 1,
defaultValue: IssuingDistributionPoint.ONLY,
implicit: true,
})
], IssuingDistributionPoint.prototype, "onlyContainsUserCerts", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_2.AsnPropTypes.Boolean,
context: 2,
defaultValue: IssuingDistributionPoint.ONLY,
implicit: true,
})
], IssuingDistributionPoint.prototype, "onlyContainsCACerts", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: crl_distribution_points_1.Reason, context: 3, optional: true, implicit: true })
], IssuingDistributionPoint.prototype, "onlySomeReasons", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_2.AsnPropTypes.Boolean,
context: 4,
defaultValue: IssuingDistributionPoint.ONLY,
implicit: true,
})
], IssuingDistributionPoint.prototype, "indirectCRL", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_2.AsnPropTypes.Boolean,
context: 5,
defaultValue: IssuingDistributionPoint.ONLY,
implicit: true,
})
], IssuingDistributionPoint.prototype, "onlyContainsAttributeCerts", void 0);

View File

@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CRLNumber = exports.id_ce_cRLNumber = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_cRLNumber = `${object_identifiers_1.id_ce}.20`;
let CRLNumber = class CRLNumber {
constructor(value = 0) {
this.value = value;
}
};
exports.CRLNumber = CRLNumber;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer })
], CRLNumber.prototype, "value", void 0);
exports.CRLNumber = CRLNumber = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Choice })
], CRLNumber);

View File

@@ -0,0 +1,39 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CRLReason = exports.CRLReasons = exports.id_ce_cRLReasons = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_cRLReasons = `${object_identifiers_1.id_ce}.21`;
var CRLReasons;
(function (CRLReasons) {
CRLReasons[CRLReasons["unspecified"] = 0] = "unspecified";
CRLReasons[CRLReasons["keyCompromise"] = 1] = "keyCompromise";
CRLReasons[CRLReasons["cACompromise"] = 2] = "cACompromise";
CRLReasons[CRLReasons["affiliationChanged"] = 3] = "affiliationChanged";
CRLReasons[CRLReasons["superseded"] = 4] = "superseded";
CRLReasons[CRLReasons["cessationOfOperation"] = 5] = "cessationOfOperation";
CRLReasons[CRLReasons["certificateHold"] = 6] = "certificateHold";
CRLReasons[CRLReasons["removeFromCRL"] = 8] = "removeFromCRL";
CRLReasons[CRLReasons["privilegeWithdrawn"] = 9] = "privilegeWithdrawn";
CRLReasons[CRLReasons["aACompromise"] = 10] = "aACompromise";
})(CRLReasons || (exports.CRLReasons = CRLReasons = {}));
let CRLReason = class CRLReason {
constructor(reason = CRLReasons.unspecified) {
this.reason = CRLReasons.unspecified;
this.reason = reason;
}
toJSON() {
return CRLReasons[this.reason];
}
toString() {
return this.toJSON();
}
};
exports.CRLReason = CRLReason;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Enumerated })
], CRLReason.prototype, "reason", void 0);
exports.CRLReason = CRLReason = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Choice })
], CRLReason);

View File

@@ -0,0 +1,46 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EntrustVersionInfo = exports.EntrustInfo = exports.EntrustInfoFlags = exports.id_entrust_entrustVersInfo = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
exports.id_entrust_entrustVersInfo = "1.2.840.113533.7.65.0";
var EntrustInfoFlags;
(function (EntrustInfoFlags) {
EntrustInfoFlags[EntrustInfoFlags["keyUpdateAllowed"] = 1] = "keyUpdateAllowed";
EntrustInfoFlags[EntrustInfoFlags["newExtensions"] = 2] = "newExtensions";
EntrustInfoFlags[EntrustInfoFlags["pKIXCertificate"] = 4] = "pKIXCertificate";
})(EntrustInfoFlags || (exports.EntrustInfoFlags = EntrustInfoFlags = {}));
class EntrustInfo extends asn1_schema_1.BitString {
toJSON() {
const res = [];
const flags = this.toNumber();
if (flags & EntrustInfoFlags.pKIXCertificate) {
res.push("pKIXCertificate");
}
if (flags & EntrustInfoFlags.newExtensions) {
res.push("newExtensions");
}
if (flags & EntrustInfoFlags.keyUpdateAllowed) {
res.push("keyUpdateAllowed");
}
return res;
}
toString() {
return `[${this.toJSON().join(", ")}]`;
}
}
exports.EntrustInfo = EntrustInfo;
class EntrustVersionInfo {
constructor(params = {}) {
this.entrustVers = "";
this.entrustInfoFlags = new EntrustInfo();
Object.assign(this, params);
}
}
exports.EntrustVersionInfo = EntrustVersionInfo;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.GeneralString })
], EntrustVersionInfo.prototype, "entrustVers", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: EntrustInfo })
], EntrustVersionInfo.prototype, "entrustInfoFlags", void 0);

View File

@@ -0,0 +1,25 @@
"use strict";
var ExtendedKeyUsage_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.id_kp_OCSPSigning = exports.id_kp_timeStamping = exports.id_kp_emailProtection = exports.id_kp_codeSigning = exports.id_kp_clientAuth = exports.id_kp_serverAuth = exports.anyExtendedKeyUsage = exports.ExtendedKeyUsage = exports.id_ce_extKeyUsage = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_extKeyUsage = `${object_identifiers_1.id_ce}.37`;
let ExtendedKeyUsage = ExtendedKeyUsage_1 = class ExtendedKeyUsage extends asn1_schema_1.AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, ExtendedKeyUsage_1.prototype);
}
};
exports.ExtendedKeyUsage = ExtendedKeyUsage;
exports.ExtendedKeyUsage = ExtendedKeyUsage = ExtendedKeyUsage_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence, itemType: asn1_schema_1.AsnPropTypes.ObjectIdentifier })
], ExtendedKeyUsage);
exports.anyExtendedKeyUsage = `${exports.id_ce_extKeyUsage}.0`;
exports.id_kp_serverAuth = `${object_identifiers_1.id_kp}.1`;
exports.id_kp_clientAuth = `${object_identifiers_1.id_kp}.2`;
exports.id_kp_codeSigning = `${object_identifiers_1.id_kp}.3`;
exports.id_kp_emailProtection = `${object_identifiers_1.id_kp}.4`;
exports.id_kp_timeStamping = `${object_identifiers_1.id_kp}.8`;
exports.id_kp_OCSPSigning = `${object_identifiers_1.id_kp}.9`;

View File

@@ -0,0 +1,28 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./authority_information_access"), exports);
tslib_1.__exportStar(require("./authority_key_identifier"), exports);
tslib_1.__exportStar(require("./basic_constraints"), exports);
tslib_1.__exportStar(require("./certificate_issuer"), exports);
tslib_1.__exportStar(require("./certificate_policies"), exports);
tslib_1.__exportStar(require("./crl_delta_indicator"), exports);
tslib_1.__exportStar(require("./crl_distribution_points"), exports);
tslib_1.__exportStar(require("./crl_freshest"), exports);
tslib_1.__exportStar(require("./crl_issuing_distribution_point"), exports);
tslib_1.__exportStar(require("./crl_number"), exports);
tslib_1.__exportStar(require("./crl_reason"), exports);
tslib_1.__exportStar(require("./extended_key_usage"), exports);
tslib_1.__exportStar(require("./inhibit_any_policy"), exports);
tslib_1.__exportStar(require("./invalidity_date"), exports);
tslib_1.__exportStar(require("./issuer_alternative_name"), exports);
tslib_1.__exportStar(require("./key_usage"), exports);
tslib_1.__exportStar(require("./name_constraints"), exports);
tslib_1.__exportStar(require("./policy_constraints"), exports);
tslib_1.__exportStar(require("./policy_mappings"), exports);
tslib_1.__exportStar(require("./subject_alternative_name"), exports);
tslib_1.__exportStar(require("./subject_directory_attributes"), exports);
tslib_1.__exportStar(require("./subject_key_identifier"), exports);
tslib_1.__exportStar(require("./private_key_usage_period"), exports);
tslib_1.__exportStar(require("./entrust_version_info"), exports);
tslib_1.__exportStar(require("./subject_info_access"), exports);

View File

@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.InhibitAnyPolicy = exports.id_ce_inhibitAnyPolicy = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_inhibitAnyPolicy = `${object_identifiers_1.id_ce}.54`;
let InhibitAnyPolicy = class InhibitAnyPolicy {
constructor(value = new ArrayBuffer(0)) {
this.value = value;
}
};
exports.InhibitAnyPolicy = InhibitAnyPolicy;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer, converter: asn1_schema_1.AsnIntegerArrayBufferConverter })
], InhibitAnyPolicy.prototype, "value", void 0);
exports.InhibitAnyPolicy = InhibitAnyPolicy = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Choice })
], InhibitAnyPolicy);

View File

@@ -0,0 +1,22 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.InvalidityDate = exports.id_ce_invalidityDate = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_invalidityDate = `${object_identifiers_1.id_ce}.24`;
let InvalidityDate = class InvalidityDate {
constructor(value) {
this.value = new Date();
if (value) {
this.value = value;
}
}
};
exports.InvalidityDate = InvalidityDate;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.GeneralizedTime })
], InvalidityDate.prototype, "value", void 0);
exports.InvalidityDate = InvalidityDate = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Choice })
], InvalidityDate);

View File

@@ -0,0 +1,19 @@
"use strict";
var IssueAlternativeName_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.IssueAlternativeName = exports.id_ce_issuerAltName = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const general_names_1 = require("../general_names");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_issuerAltName = `${object_identifiers_1.id_ce}.18`;
let IssueAlternativeName = IssueAlternativeName_1 = class IssueAlternativeName extends general_names_1.GeneralNames {
constructor(items) {
super(items);
Object.setPrototypeOf(this, IssueAlternativeName_1.prototype);
}
};
exports.IssueAlternativeName = IssueAlternativeName;
exports.IssueAlternativeName = IssueAlternativeName = IssueAlternativeName_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence })
], IssueAlternativeName);

View File

@@ -0,0 +1,56 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.KeyUsage = exports.KeyUsageFlags = exports.id_ce_keyUsage = void 0;
const asn1_schema_1 = require("@peculiar/asn1-schema");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_keyUsage = `${object_identifiers_1.id_ce}.15`;
var KeyUsageFlags;
(function (KeyUsageFlags) {
KeyUsageFlags[KeyUsageFlags["digitalSignature"] = 1] = "digitalSignature";
KeyUsageFlags[KeyUsageFlags["nonRepudiation"] = 2] = "nonRepudiation";
KeyUsageFlags[KeyUsageFlags["keyEncipherment"] = 4] = "keyEncipherment";
KeyUsageFlags[KeyUsageFlags["dataEncipherment"] = 8] = "dataEncipherment";
KeyUsageFlags[KeyUsageFlags["keyAgreement"] = 16] = "keyAgreement";
KeyUsageFlags[KeyUsageFlags["keyCertSign"] = 32] = "keyCertSign";
KeyUsageFlags[KeyUsageFlags["cRLSign"] = 64] = "cRLSign";
KeyUsageFlags[KeyUsageFlags["encipherOnly"] = 128] = "encipherOnly";
KeyUsageFlags[KeyUsageFlags["decipherOnly"] = 256] = "decipherOnly";
})(KeyUsageFlags || (exports.KeyUsageFlags = KeyUsageFlags = {}));
class KeyUsage extends asn1_schema_1.BitString {
toJSON() {
const flag = this.toNumber();
const res = [];
if (flag & KeyUsageFlags.cRLSign) {
res.push("crlSign");
}
if (flag & KeyUsageFlags.dataEncipherment) {
res.push("dataEncipherment");
}
if (flag & KeyUsageFlags.decipherOnly) {
res.push("decipherOnly");
}
if (flag & KeyUsageFlags.digitalSignature) {
res.push("digitalSignature");
}
if (flag & KeyUsageFlags.encipherOnly) {
res.push("encipherOnly");
}
if (flag & KeyUsageFlags.keyAgreement) {
res.push("keyAgreement");
}
if (flag & KeyUsageFlags.keyCertSign) {
res.push("keyCertSign");
}
if (flag & KeyUsageFlags.keyEncipherment) {
res.push("keyEncipherment");
}
if (flag & KeyUsageFlags.nonRepudiation) {
res.push("nonRepudiation");
}
return res;
}
toString() {
return `[${this.toJSON().join(", ")}]`;
}
}
exports.KeyUsage = KeyUsage;

View File

@@ -0,0 +1,48 @@
"use strict";
var GeneralSubtrees_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NameConstraints = exports.GeneralSubtrees = exports.GeneralSubtree = exports.id_ce_nameConstraints = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const general_name_1 = require("../general_name");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_nameConstraints = `${object_identifiers_1.id_ce}.30`;
class GeneralSubtree {
constructor(params = {}) {
this.base = new general_name_1.GeneralName();
this.minimum = 0;
Object.assign(this, params);
}
}
exports.GeneralSubtree = GeneralSubtree;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: general_name_1.GeneralName })
], GeneralSubtree.prototype, "base", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer, context: 0, defaultValue: 0, implicit: true })
], GeneralSubtree.prototype, "minimum", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer, context: 1, optional: true, implicit: true })
], GeneralSubtree.prototype, "maximum", void 0);
let GeneralSubtrees = GeneralSubtrees_1 = class GeneralSubtrees extends asn1_schema_1.AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, GeneralSubtrees_1.prototype);
}
};
exports.GeneralSubtrees = GeneralSubtrees;
exports.GeneralSubtrees = GeneralSubtrees = GeneralSubtrees_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence, itemType: GeneralSubtree })
], GeneralSubtrees);
class NameConstraints {
constructor(params = {}) {
Object.assign(this, params);
}
}
exports.NameConstraints = NameConstraints;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: GeneralSubtrees, context: 0, optional: true, implicit: true })
], NameConstraints.prototype, "permittedSubtrees", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: GeneralSubtrees, context: 1, optional: true, implicit: true })
], NameConstraints.prototype, "excludedSubtrees", void 0);

View File

@@ -0,0 +1,31 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PolicyConstraints = exports.id_ce_policyConstraints = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_policyConstraints = `${object_identifiers_1.id_ce}.36`;
class PolicyConstraints {
constructor(params = {}) {
Object.assign(this, params);
}
}
exports.PolicyConstraints = PolicyConstraints;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_1.AsnPropTypes.Integer,
context: 0,
implicit: true,
optional: true,
converter: asn1_schema_1.AsnIntegerArrayBufferConverter,
})
], PolicyConstraints.prototype, "requireExplicitPolicy", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_1.AsnPropTypes.Integer,
context: 1,
implicit: true,
optional: true,
converter: asn1_schema_1.AsnIntegerArrayBufferConverter,
})
], PolicyConstraints.prototype, "inhibitPolicyMapping", void 0);

View File

@@ -0,0 +1,32 @@
"use strict";
var PolicyMappings_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PolicyMappings = exports.PolicyMapping = exports.id_ce_policyMappings = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_policyMappings = `${object_identifiers_1.id_ce}.33`;
class PolicyMapping {
constructor(params = {}) {
this.issuerDomainPolicy = "";
this.subjectDomainPolicy = "";
Object.assign(this, params);
}
}
exports.PolicyMapping = PolicyMapping;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.ObjectIdentifier })
], PolicyMapping.prototype, "issuerDomainPolicy", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.ObjectIdentifier })
], PolicyMapping.prototype, "subjectDomainPolicy", void 0);
let PolicyMappings = PolicyMappings_1 = class PolicyMappings extends asn1_schema_1.AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, PolicyMappings_1.prototype);
}
};
exports.PolicyMappings = PolicyMappings;
exports.PolicyMappings = PolicyMappings = PolicyMappings_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence, itemType: PolicyMapping })
], PolicyMappings);

View File

@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PrivateKeyUsagePeriod = exports.id_ce_privateKeyUsagePeriod = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_privateKeyUsagePeriod = `${object_identifiers_1.id_ce}.16`;
class PrivateKeyUsagePeriod {
constructor(params = {}) {
Object.assign(this, params);
}
}
exports.PrivateKeyUsagePeriod = PrivateKeyUsagePeriod;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.GeneralizedTime, context: 0, implicit: true, optional: true })
], PrivateKeyUsagePeriod.prototype, "notBefore", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.GeneralizedTime, context: 1, implicit: true, optional: true })
], PrivateKeyUsagePeriod.prototype, "notAfter", void 0);

View File

@@ -0,0 +1,19 @@
"use strict";
var SubjectAlternativeName_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SubjectAlternativeName = exports.id_ce_subjectAltName = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const general_names_1 = require("../general_names");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_subjectAltName = `${object_identifiers_1.id_ce}.17`;
let SubjectAlternativeName = SubjectAlternativeName_1 = class SubjectAlternativeName extends general_names_1.GeneralNames {
constructor(items) {
super(items);
Object.setPrototypeOf(this, SubjectAlternativeName_1.prototype);
}
};
exports.SubjectAlternativeName = SubjectAlternativeName;
exports.SubjectAlternativeName = SubjectAlternativeName = SubjectAlternativeName_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence })
], SubjectAlternativeName);

View File

@@ -0,0 +1,19 @@
"use strict";
var SubjectDirectoryAttributes_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SubjectDirectoryAttributes = exports.id_ce_subjectDirectoryAttributes = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const attribute_1 = require("../attribute");
const object_identifiers_1 = require("../object_identifiers");
exports.id_ce_subjectDirectoryAttributes = `${object_identifiers_1.id_ce}.9`;
let SubjectDirectoryAttributes = SubjectDirectoryAttributes_1 = class SubjectDirectoryAttributes extends asn1_schema_1.AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, SubjectDirectoryAttributes_1.prototype);
}
};
exports.SubjectDirectoryAttributes = SubjectDirectoryAttributes;
exports.SubjectDirectoryAttributes = SubjectDirectoryAttributes = SubjectDirectoryAttributes_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence, itemType: attribute_1.Attribute })
], SubjectDirectoryAttributes);

View File

@@ -0,0 +1,19 @@
"use strict";
var SubjectInfoAccessSyntax_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SubjectInfoAccessSyntax = exports.id_pe_subjectInfoAccess = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const object_identifiers_1 = require("../object_identifiers");
const authority_information_access_1 = require("./authority_information_access");
exports.id_pe_subjectInfoAccess = `${object_identifiers_1.id_pe}.11`;
let SubjectInfoAccessSyntax = SubjectInfoAccessSyntax_1 = class SubjectInfoAccessSyntax extends asn1_schema_1.AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, SubjectInfoAccessSyntax_1.prototype);
}
};
exports.SubjectInfoAccessSyntax = SubjectInfoAccessSyntax;
exports.SubjectInfoAccessSyntax = SubjectInfoAccessSyntax = SubjectInfoAccessSyntax_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence, itemType: authority_information_access_1.AccessDescription })
], SubjectInfoAccessSyntax);

View File

@@ -0,0 +1,9 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SubjectKeyIdentifier = exports.id_ce_subjectKeyIdentifier = void 0;
const object_identifiers_1 = require("../object_identifiers");
const authority_key_identifier_1 = require("./authority_key_identifier");
exports.id_ce_subjectKeyIdentifier = `${object_identifiers_1.id_ce}.14`;
class SubjectKeyIdentifier extends authority_key_identifier_1.KeyIdentifier {
}
exports.SubjectKeyIdentifier = SubjectKeyIdentifier;

View File

@@ -0,0 +1,79 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GeneralName = exports.EDIPartyName = exports.OtherName = exports.AsnIpConverter = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const ip_converter_1 = require("./ip_converter");
const name_1 = require("./name");
exports.AsnIpConverter = {
fromASN: (value) => ip_converter_1.IpConverter.toString(asn1_schema_1.AsnOctetStringConverter.fromASN(value)),
toASN: (value) => asn1_schema_1.AsnOctetStringConverter.toASN(ip_converter_1.IpConverter.fromString(value)),
};
class OtherName {
constructor(params = {}) {
this.typeId = "";
this.value = new ArrayBuffer(0);
Object.assign(this, params);
}
}
exports.OtherName = OtherName;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.ObjectIdentifier })
], OtherName.prototype, "typeId", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Any, context: 0 })
], OtherName.prototype, "value", void 0);
class EDIPartyName {
constructor(params = {}) {
this.partyName = new name_1.DirectoryString();
Object.assign(this, params);
}
}
exports.EDIPartyName = EDIPartyName;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: name_1.DirectoryString, optional: true, context: 0, implicit: true })
], EDIPartyName.prototype, "nameAssigner", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: name_1.DirectoryString, context: 1, implicit: true })
], EDIPartyName.prototype, "partyName", void 0);
let GeneralName = class GeneralName {
constructor(params = {}) {
Object.assign(this, params);
}
};
exports.GeneralName = GeneralName;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: OtherName, context: 0, implicit: true })
], GeneralName.prototype, "otherName", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.IA5String, context: 1, implicit: true })
], GeneralName.prototype, "rfc822Name", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.IA5String, context: 2, implicit: true })
], GeneralName.prototype, "dNSName", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Any, context: 3, implicit: true })
], GeneralName.prototype, "x400Address", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: name_1.Name, context: 4, implicit: false })
], GeneralName.prototype, "directoryName", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: EDIPartyName, context: 5 })
], GeneralName.prototype, "ediPartyName", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.IA5String, context: 6, implicit: true })
], GeneralName.prototype, "uniformResourceIdentifier", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_1.AsnPropTypes.OctetString,
context: 7,
implicit: true,
converter: exports.AsnIpConverter,
})
], GeneralName.prototype, "iPAddress", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.ObjectIdentifier, context: 8, implicit: true })
], GeneralName.prototype, "registeredID", void 0);
exports.GeneralName = GeneralName = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Choice })
], GeneralName);

View File

@@ -0,0 +1,18 @@
"use strict";
var GeneralNames_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.GeneralNames = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const general_name_1 = require("./general_name");
const asn1_schema_2 = require("@peculiar/asn1-schema");
let GeneralNames = GeneralNames_1 = class GeneralNames extends asn1_schema_2.AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, GeneralNames_1.prototype);
}
};
exports.GeneralNames = GeneralNames;
exports.GeneralNames = GeneralNames = GeneralNames_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence, itemType: general_name_1.GeneralName })
], GeneralNames);

View File

@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
tslib_1.__exportStar(require("./extensions"), exports);
tslib_1.__exportStar(require("./algorithm_identifier"), exports);
tslib_1.__exportStar(require("./attribute"), exports);
tslib_1.__exportStar(require("./certificate"), exports);
tslib_1.__exportStar(require("./certificate_list"), exports);
tslib_1.__exportStar(require("./extension"), exports);
tslib_1.__exportStar(require("./general_name"), exports);
tslib_1.__exportStar(require("./general_names"), exports);
tslib_1.__exportStar(require("./name"), exports);
tslib_1.__exportStar(require("./object_identifiers"), exports);
tslib_1.__exportStar(require("./subject_public_key_info"), exports);
tslib_1.__exportStar(require("./tbs_cert_list"), exports);
tslib_1.__exportStar(require("./tbs_certificate"), exports);
tslib_1.__exportStar(require("./time"), exports);
tslib_1.__exportStar(require("./types"), exports);
tslib_1.__exportStar(require("./validity"), exports);

View File

@@ -0,0 +1,177 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.IpConverter = void 0;
const pvtsutils_1 = require("pvtsutils");
class IpConverter {
static isIPv4(ip) {
return /^(\d{1,3}\.){3}\d{1,3}$/.test(ip);
}
static parseIPv4(ip) {
const parts = ip.split(".");
if (parts.length !== 4) {
throw new Error("Invalid IPv4 address");
}
return parts.map((part) => {
const num = parseInt(part, 10);
if (isNaN(num) || num < 0 || num > 255) {
throw new Error("Invalid IPv4 address part");
}
return num;
});
}
static parseIPv6(ip) {
const expandedIP = this.expandIPv6(ip);
const parts = expandedIP.split(":");
if (parts.length !== 8) {
throw new Error("Invalid IPv6 address");
}
return parts.reduce((bytes, part) => {
const num = parseInt(part, 16);
if (isNaN(num) || num < 0 || num > 0xffff) {
throw new Error("Invalid IPv6 address part");
}
bytes.push((num >> 8) & 0xff);
bytes.push(num & 0xff);
return bytes;
}, []);
}
static expandIPv6(ip) {
if (!ip.includes("::")) {
return ip;
}
const parts = ip.split("::");
if (parts.length > 2) {
throw new Error("Invalid IPv6 address");
}
const left = parts[0] ? parts[0].split(":") : [];
const right = parts[1] ? parts[1].split(":") : [];
const missing = 8 - (left.length + right.length);
if (missing < 0) {
throw new Error("Invalid IPv6 address");
}
return [...left, ...Array(missing).fill("0"), ...right].join(":");
}
static formatIPv6(bytes) {
const parts = [];
for (let i = 0; i < 16; i += 2) {
parts.push(((bytes[i] << 8) | bytes[i + 1]).toString(16));
}
return this.compressIPv6(parts.join(":"));
}
static compressIPv6(ip) {
const parts = ip.split(":");
let longestZeroStart = -1;
let longestZeroLength = 0;
let currentZeroStart = -1;
let currentZeroLength = 0;
for (let i = 0; i < parts.length; i++) {
if (parts[i] === "0") {
if (currentZeroStart === -1) {
currentZeroStart = i;
}
currentZeroLength++;
}
else {
if (currentZeroLength > longestZeroLength) {
longestZeroStart = currentZeroStart;
longestZeroLength = currentZeroLength;
}
currentZeroStart = -1;
currentZeroLength = 0;
}
}
if (currentZeroLength > longestZeroLength) {
longestZeroStart = currentZeroStart;
longestZeroLength = currentZeroLength;
}
if (longestZeroLength > 1) {
const before = parts.slice(0, longestZeroStart).join(":");
const after = parts.slice(longestZeroStart + longestZeroLength).join(":");
return `${before}::${after}`;
}
return ip;
}
static parseCIDR(text) {
const [addr, prefixStr] = text.split("/");
const prefix = parseInt(prefixStr, 10);
if (this.isIPv4(addr)) {
if (prefix < 0 || prefix > 32) {
throw new Error("Invalid IPv4 prefix length");
}
return [this.parseIPv4(addr), prefix];
}
else {
if (prefix < 0 || prefix > 128) {
throw new Error("Invalid IPv6 prefix length");
}
return [this.parseIPv6(addr), prefix];
}
}
static decodeIP(value) {
if (value.length === 64 && parseInt(value, 16) === 0) {
return "::/0";
}
if (value.length !== 16) {
return value;
}
const mask = parseInt(value.slice(8), 16)
.toString(2)
.split("")
.reduce((a, k) => a + +k, 0);
let ip = value.slice(0, 8).replace(/(.{2})/g, (match) => `${parseInt(match, 16)}.`);
ip = ip.slice(0, -1);
return `${ip}/${mask}`;
}
static toString(buf) {
const uint8 = new Uint8Array(buf);
if (uint8.length === 4) {
return Array.from(uint8).join(".");
}
if (uint8.length === 16) {
return this.formatIPv6(uint8);
}
if (uint8.length === 8 || uint8.length === 32) {
const half = uint8.length / 2;
const addrBytes = uint8.slice(0, half);
const maskBytes = uint8.slice(half);
const isAllZeros = uint8.every((byte) => byte === 0);
if (isAllZeros) {
return uint8.length === 8 ? "0.0.0.0/0" : "::/0";
}
const prefixLen = maskBytes.reduce((a, b) => a + (b.toString(2).match(/1/g) || []).length, 0);
if (uint8.length === 8) {
const addrStr = Array.from(addrBytes).join(".");
return `${addrStr}/${prefixLen}`;
}
else {
const addrStr = this.formatIPv6(addrBytes);
return `${addrStr}/${prefixLen}`;
}
}
return this.decodeIP(pvtsutils_1.Convert.ToHex(buf));
}
static fromString(text) {
if (text.includes("/")) {
const [addr, prefix] = this.parseCIDR(text);
const maskBytes = new Uint8Array(addr.length);
let bitsLeft = prefix;
for (let i = 0; i < maskBytes.length; i++) {
if (bitsLeft >= 8) {
maskBytes[i] = 0xff;
bitsLeft -= 8;
}
else if (bitsLeft > 0) {
maskBytes[i] = 0xff << (8 - bitsLeft);
bitsLeft = 0;
}
}
const out = new Uint8Array(addr.length * 2);
out.set(addr, 0);
out.set(maskBytes, addr.length);
return out.buffer;
}
const bytes = this.isIPv4(text) ? this.parseIPv4(text) : this.parseIPv6(text);
return new Uint8Array(bytes).buffer;
}
}
exports.IpConverter = IpConverter;

View File

@@ -0,0 +1,102 @@
"use strict";
var RelativeDistinguishedName_1, RDNSequence_1, Name_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Name = exports.RDNSequence = exports.RelativeDistinguishedName = exports.AttributeTypeAndValue = exports.AttributeValue = exports.DirectoryString = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const pvtsutils_1 = require("pvtsutils");
let DirectoryString = class DirectoryString {
constructor(params = {}) {
Object.assign(this, params);
}
toString() {
return (this.bmpString ||
this.printableString ||
this.teletexString ||
this.universalString ||
this.utf8String ||
"");
}
};
exports.DirectoryString = DirectoryString;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.TeletexString })
], DirectoryString.prototype, "teletexString", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.PrintableString })
], DirectoryString.prototype, "printableString", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.UniversalString })
], DirectoryString.prototype, "universalString", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Utf8String })
], DirectoryString.prototype, "utf8String", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.BmpString })
], DirectoryString.prototype, "bmpString", void 0);
exports.DirectoryString = DirectoryString = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Choice })
], DirectoryString);
let AttributeValue = class AttributeValue extends DirectoryString {
constructor(params = {}) {
super(params);
Object.assign(this, params);
}
toString() {
return this.ia5String || (this.anyValue ? pvtsutils_1.Convert.ToHex(this.anyValue) : super.toString());
}
};
exports.AttributeValue = AttributeValue;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.IA5String })
], AttributeValue.prototype, "ia5String", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Any })
], AttributeValue.prototype, "anyValue", void 0);
exports.AttributeValue = AttributeValue = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Choice })
], AttributeValue);
class AttributeTypeAndValue {
constructor(params = {}) {
this.type = "";
this.value = new AttributeValue();
Object.assign(this, params);
}
}
exports.AttributeTypeAndValue = AttributeTypeAndValue;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.ObjectIdentifier })
], AttributeTypeAndValue.prototype, "type", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: AttributeValue })
], AttributeTypeAndValue.prototype, "value", void 0);
let RelativeDistinguishedName = RelativeDistinguishedName_1 = class RelativeDistinguishedName extends asn1_schema_1.AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, RelativeDistinguishedName_1.prototype);
}
};
exports.RelativeDistinguishedName = RelativeDistinguishedName;
exports.RelativeDistinguishedName = RelativeDistinguishedName = RelativeDistinguishedName_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Set, itemType: AttributeTypeAndValue })
], RelativeDistinguishedName);
let RDNSequence = RDNSequence_1 = class RDNSequence extends asn1_schema_1.AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, RDNSequence_1.prototype);
}
};
exports.RDNSequence = RDNSequence;
exports.RDNSequence = RDNSequence = RDNSequence_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence, itemType: RelativeDistinguishedName })
], RDNSequence);
let Name = Name_1 = class Name extends RDNSequence {
constructor(items) {
super(items);
Object.setPrototypeOf(this, Name_1.prototype);
}
};
exports.Name = Name;
exports.Name = Name = Name_1 = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Sequence })
], Name);

View File

@@ -0,0 +1,15 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.id_ce = exports.id_ad_caRepository = exports.id_ad_timeStamping = exports.id_ad_caIssuers = exports.id_ad_ocsp = exports.id_qt_unotice = exports.id_qt_csp = exports.id_ad = exports.id_kp = exports.id_qt = exports.id_pe = exports.id_pkix = void 0;
exports.id_pkix = "1.3.6.1.5.5.7";
exports.id_pe = `${exports.id_pkix}.1`;
exports.id_qt = `${exports.id_pkix}.2`;
exports.id_kp = `${exports.id_pkix}.3`;
exports.id_ad = `${exports.id_pkix}.48`;
exports.id_qt_csp = `${exports.id_qt}.1`;
exports.id_qt_unotice = `${exports.id_qt}.2`;
exports.id_ad_ocsp = `${exports.id_ad}.1`;
exports.id_ad_caIssuers = `${exports.id_ad}.2`;
exports.id_ad_timeStamping = `${exports.id_ad}.3`;
exports.id_ad_caRepository = `${exports.id_ad}.5`;
exports.id_ce = "2.5.29";

View File

@@ -0,0 +1,20 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SubjectPublicKeyInfo = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const algorithm_identifier_1 = require("./algorithm_identifier");
class SubjectPublicKeyInfo {
constructor(params = {}) {
this.algorithm = new algorithm_identifier_1.AlgorithmIdentifier();
this.subjectPublicKey = new ArrayBuffer(0);
Object.assign(this, params);
}
}
exports.SubjectPublicKeyInfo = SubjectPublicKeyInfo;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: algorithm_identifier_1.AlgorithmIdentifier })
], SubjectPublicKeyInfo.prototype, "algorithm", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.BitString })
], SubjectPublicKeyInfo.prototype, "subjectPublicKey", void 0);

View File

@@ -0,0 +1,56 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TBSCertList = exports.RevokedCertificate = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const algorithm_identifier_1 = require("./algorithm_identifier");
const name_1 = require("./name");
const time_1 = require("./time");
const extension_1 = require("./extension");
class RevokedCertificate {
constructor(params = {}) {
this.userCertificate = new ArrayBuffer(0);
this.revocationDate = new time_1.Time();
Object.assign(this, params);
}
}
exports.RevokedCertificate = RevokedCertificate;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer, converter: asn1_schema_1.AsnIntegerArrayBufferConverter })
], RevokedCertificate.prototype, "userCertificate", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: time_1.Time })
], RevokedCertificate.prototype, "revocationDate", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: extension_1.Extension, optional: true, repeated: "sequence" })
], RevokedCertificate.prototype, "crlEntryExtensions", void 0);
class TBSCertList {
constructor(params = {}) {
this.signature = new algorithm_identifier_1.AlgorithmIdentifier();
this.issuer = new name_1.Name();
this.thisUpdate = new time_1.Time();
Object.assign(this, params);
}
}
exports.TBSCertList = TBSCertList;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.Integer, optional: true })
], TBSCertList.prototype, "version", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: algorithm_identifier_1.AlgorithmIdentifier })
], TBSCertList.prototype, "signature", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: name_1.Name })
], TBSCertList.prototype, "issuer", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: time_1.Time })
], TBSCertList.prototype, "thisUpdate", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: time_1.Time, optional: true })
], TBSCertList.prototype, "nextUpdate", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: RevokedCertificate, repeated: "sequence", optional: true })
], TBSCertList.prototype, "revokedCertificates", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: extension_1.Extension, optional: true, context: 0, repeated: "sequence" })
], TBSCertList.prototype, "crlExtensions", void 0);

View File

@@ -0,0 +1,66 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TBSCertificate = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const algorithm_identifier_1 = require("./algorithm_identifier");
const name_1 = require("./name");
const subject_public_key_info_1 = require("./subject_public_key_info");
const validity_1 = require("./validity");
const extension_1 = require("./extension");
const types_1 = require("./types");
class TBSCertificate {
constructor(params = {}) {
this.version = types_1.Version.v1;
this.serialNumber = new ArrayBuffer(0);
this.signature = new algorithm_identifier_1.AlgorithmIdentifier();
this.issuer = new name_1.Name();
this.validity = new validity_1.Validity();
this.subject = new name_1.Name();
this.subjectPublicKeyInfo = new subject_public_key_info_1.SubjectPublicKeyInfo();
Object.assign(this, params);
}
}
exports.TBSCertificate = TBSCertificate;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_1.AsnPropTypes.Integer,
context: 0,
defaultValue: types_1.Version.v1,
})
], TBSCertificate.prototype, "version", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_1.AsnPropTypes.Integer,
converter: asn1_schema_1.AsnIntegerArrayBufferConverter,
})
], TBSCertificate.prototype, "serialNumber", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: algorithm_identifier_1.AlgorithmIdentifier })
], TBSCertificate.prototype, "signature", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: name_1.Name })
], TBSCertificate.prototype, "issuer", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: validity_1.Validity })
], TBSCertificate.prototype, "validity", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: name_1.Name })
], TBSCertificate.prototype, "subject", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: subject_public_key_info_1.SubjectPublicKeyInfo })
], TBSCertificate.prototype, "subjectPublicKeyInfo", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_1.AsnPropTypes.BitString,
context: 1,
implicit: true,
optional: true,
})
], TBSCertificate.prototype, "issuerUniqueID", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: asn1_schema_1.AsnPropTypes.BitString, context: 2, implicit: true, optional: true })
], TBSCertificate.prototype, "subjectUniqueID", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: extension_1.Extensions, context: 3, optional: true })
], TBSCertificate.prototype, "extensions", void 0);

View File

@@ -0,0 +1,44 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Time = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
let Time = class Time {
constructor(time) {
if (time) {
if (typeof time === "string" || typeof time === "number" || time instanceof Date) {
const date = new Date(time);
if (date.getUTCFullYear() > 2049) {
this.generalTime = date;
}
else {
this.utcTime = date;
}
}
else {
Object.assign(this, time);
}
}
}
getTime() {
const time = this.utcTime || this.generalTime;
if (!time) {
throw new Error("Cannot get time from CHOICE object");
}
return time;
}
};
exports.Time = Time;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_1.AsnPropTypes.UTCTime,
})
], Time.prototype, "utcTime", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({
type: asn1_schema_1.AsnPropTypes.GeneralizedTime,
})
], Time.prototype, "generalTime", void 0);
exports.Time = Time = tslib_1.__decorate([
(0, asn1_schema_1.AsnType)({ type: asn1_schema_1.AsnTypeTypes.Choice })
], Time);

View File

@@ -0,0 +1,9 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Version = void 0;
var Version;
(function (Version) {
Version[Version["v1"] = 0] = "v1";
Version[Version["v2"] = 1] = "v2";
Version[Version["v3"] = 2] = "v3";
})(Version || (exports.Version = Version = {}));

View File

@@ -0,0 +1,23 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Validity = void 0;
const tslib_1 = require("tslib");
const asn1_schema_1 = require("@peculiar/asn1-schema");
const time_1 = require("./time");
class Validity {
constructor(params) {
this.notBefore = new time_1.Time(new Date());
this.notAfter = new time_1.Time(new Date());
if (params) {
this.notBefore = new time_1.Time(params.notBefore);
this.notAfter = new time_1.Time(params.notAfter);
}
}
}
exports.Validity = Validity;
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: time_1.Time })
], Validity.prototype, "notBefore", void 0);
tslib_1.__decorate([
(0, asn1_schema_1.AsnProp)({ type: time_1.Time })
], Validity.prototype, "notAfter", void 0);

View File

@@ -0,0 +1,28 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes } from "@peculiar/asn1-schema";
import * as pvtsutils from "pvtsutils";
export class AlgorithmIdentifier {
constructor(params = {}) {
this.algorithm = "";
Object.assign(this, params);
}
isEqual(data) {
return (data instanceof AlgorithmIdentifier &&
data.algorithm == this.algorithm &&
((data.parameters &&
this.parameters &&
pvtsutils.isEqual(data.parameters, this.parameters)) ||
data.parameters === this.parameters));
}
}
__decorate([
AsnProp({
type: AsnPropTypes.ObjectIdentifier,
})
], AlgorithmIdentifier.prototype, "algorithm", void 0);
__decorate([
AsnProp({
type: AsnPropTypes.Any,
optional: true,
})
], AlgorithmIdentifier.prototype, "parameters", void 0);

View File

@@ -0,0 +1,15 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes } from "@peculiar/asn1-schema";
export class Attribute {
constructor(params = {}) {
this.type = "";
this.values = [];
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AsnPropTypes.ObjectIdentifier })
], Attribute.prototype, "type", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Any, repeated: "set" })
], Attribute.prototype, "values", void 0);

View File

@@ -0,0 +1,21 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes } from "@peculiar/asn1-schema";
import { AlgorithmIdentifier } from "./algorithm_identifier";
import { TBSCertificate } from "./tbs_certificate";
export class Certificate {
constructor(params = {}) {
this.tbsCertificate = new TBSCertificate();
this.signatureAlgorithm = new AlgorithmIdentifier();
this.signatureValue = new ArrayBuffer(0);
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: TBSCertificate })
], Certificate.prototype, "tbsCertificate", void 0);
__decorate([
AsnProp({ type: AlgorithmIdentifier })
], Certificate.prototype, "signatureAlgorithm", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.BitString })
], Certificate.prototype, "signatureValue", void 0);

View File

@@ -0,0 +1,21 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes } from "@peculiar/asn1-schema";
import { AlgorithmIdentifier } from "./algorithm_identifier";
import { TBSCertList } from "./tbs_cert_list";
export class CertificateList {
constructor(params = {}) {
this.tbsCertList = new TBSCertList();
this.signatureAlgorithm = new AlgorithmIdentifier();
this.signature = new ArrayBuffer(0);
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: TBSCertList })
], CertificateList.prototype, "tbsCertList", void 0);
__decorate([
AsnProp({ type: AlgorithmIdentifier })
], CertificateList.prototype, "signatureAlgorithm", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.BitString })
], CertificateList.prototype, "signature", void 0);

View File

@@ -0,0 +1,34 @@
var Extensions_1;
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnArray, AsnType, AsnTypeTypes, OctetString, } from "@peculiar/asn1-schema";
export class Extension {
constructor(params = {}) {
this.extnID = "";
this.critical = Extension.CRITICAL;
this.extnValue = new OctetString();
Object.assign(this, params);
}
}
Extension.CRITICAL = false;
__decorate([
AsnProp({ type: AsnPropTypes.ObjectIdentifier })
], Extension.prototype, "extnID", void 0);
__decorate([
AsnProp({
type: AsnPropTypes.Boolean,
defaultValue: Extension.CRITICAL,
})
], Extension.prototype, "critical", void 0);
__decorate([
AsnProp({ type: OctetString })
], Extension.prototype, "extnValue", void 0);
let Extensions = Extensions_1 = class Extensions extends AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, Extensions_1.prototype);
}
};
Extensions = Extensions_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence, itemType: Extension })
], Extensions);
export { Extensions };

View File

@@ -0,0 +1,29 @@
var AuthorityInfoAccessSyntax_1;
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnArray, AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { GeneralName } from "../general_name";
import { id_pe } from "../object_identifiers";
export const id_pe_authorityInfoAccess = `${id_pe}.1`;
export class AccessDescription {
constructor(params = {}) {
this.accessMethod = "";
this.accessLocation = new GeneralName();
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AsnPropTypes.ObjectIdentifier })
], AccessDescription.prototype, "accessMethod", void 0);
__decorate([
AsnProp({ type: GeneralName })
], AccessDescription.prototype, "accessLocation", void 0);
let AuthorityInfoAccessSyntax = AuthorityInfoAccessSyntax_1 = class AuthorityInfoAccessSyntax extends AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, AuthorityInfoAccessSyntax_1.prototype);
}
};
AuthorityInfoAccessSyntax = AuthorityInfoAccessSyntax_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence, itemType: AccessDescription })
], AuthorityInfoAccessSyntax);
export { AuthorityInfoAccessSyntax };

View File

@@ -0,0 +1,29 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter, OctetString, } from "@peculiar/asn1-schema";
import { GeneralName } from "../general_name";
import { id_ce } from "../object_identifiers";
export const id_ce_authorityKeyIdentifier = `${id_ce}.35`;
export class KeyIdentifier extends OctetString {
}
export class AuthorityKeyIdentifier {
constructor(params = {}) {
if (params) {
Object.assign(this, params);
}
}
}
__decorate([
AsnProp({ type: KeyIdentifier, context: 0, optional: true, implicit: true })
], AuthorityKeyIdentifier.prototype, "keyIdentifier", void 0);
__decorate([
AsnProp({ type: GeneralName, context: 1, optional: true, implicit: true, repeated: "sequence" })
], AuthorityKeyIdentifier.prototype, "authorityCertIssuer", void 0);
__decorate([
AsnProp({
type: AsnPropTypes.Integer,
context: 2,
optional: true,
implicit: true,
converter: AsnIntegerArrayBufferConverter,
})
], AuthorityKeyIdentifier.prototype, "authorityCertSerialNumber", void 0);

View File

@@ -0,0 +1,16 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes } from "@peculiar/asn1-schema";
import { id_ce } from "../object_identifiers";
export const id_ce_basicConstraints = `${id_ce}.19`;
export class BasicConstraints {
constructor(params = {}) {
this.cA = false;
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AsnPropTypes.Boolean, defaultValue: false })
], BasicConstraints.prototype, "cA", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Integer, optional: true })
], BasicConstraints.prototype, "pathLenConstraint", void 0);

View File

@@ -0,0 +1,16 @@
var CertificateIssuer_1;
import { __decorate } from "tslib";
import { AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { GeneralNames } from "../general_names";
import { id_ce } from "../object_identifiers";
export const id_ce_certificateIssuer = `${id_ce}.29`;
let CertificateIssuer = CertificateIssuer_1 = class CertificateIssuer extends GeneralNames {
constructor(items) {
super(items);
Object.setPrototypeOf(this, CertificateIssuer_1.prototype);
}
};
CertificateIssuer = CertificateIssuer_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence })
], CertificateIssuer);
export { CertificateIssuer };

View File

@@ -0,0 +1,104 @@
var CertificatePolicies_1;
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, AsnArray } from "@peculiar/asn1-schema";
import { id_ce } from "../object_identifiers";
export const id_ce_certificatePolicies = `${id_ce}.32`;
export const id_ce_certificatePolicies_anyPolicy = `${id_ce_certificatePolicies}.0`;
let DisplayText = class DisplayText {
constructor(params = {}) {
Object.assign(this, params);
}
toString() {
return this.ia5String || this.visibleString || this.bmpString || this.utf8String || "";
}
};
__decorate([
AsnProp({ type: AsnPropTypes.IA5String })
], DisplayText.prototype, "ia5String", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.VisibleString })
], DisplayText.prototype, "visibleString", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.BmpString })
], DisplayText.prototype, "bmpString", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Utf8String })
], DisplayText.prototype, "utf8String", void 0);
DisplayText = __decorate([
AsnType({ type: AsnTypeTypes.Choice })
], DisplayText);
export { DisplayText };
export class NoticeReference {
constructor(params = {}) {
this.organization = new DisplayText();
this.noticeNumbers = [];
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: DisplayText })
], NoticeReference.prototype, "organization", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Integer, repeated: "sequence" })
], NoticeReference.prototype, "noticeNumbers", void 0);
export class UserNotice {
constructor(params = {}) {
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: NoticeReference, optional: true })
], UserNotice.prototype, "noticeRef", void 0);
__decorate([
AsnProp({ type: DisplayText, optional: true })
], UserNotice.prototype, "explicitText", void 0);
let Qualifier = class Qualifier {
constructor(params = {}) {
Object.assign(this, params);
}
};
__decorate([
AsnProp({ type: AsnPropTypes.IA5String })
], Qualifier.prototype, "cPSuri", void 0);
__decorate([
AsnProp({ type: UserNotice })
], Qualifier.prototype, "userNotice", void 0);
Qualifier = __decorate([
AsnType({ type: AsnTypeTypes.Choice })
], Qualifier);
export { Qualifier };
export class PolicyQualifierInfo {
constructor(params = {}) {
this.policyQualifierId = "";
this.qualifier = new ArrayBuffer(0);
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AsnPropTypes.ObjectIdentifier })
], PolicyQualifierInfo.prototype, "policyQualifierId", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Any })
], PolicyQualifierInfo.prototype, "qualifier", void 0);
export class PolicyInformation {
constructor(params = {}) {
this.policyIdentifier = "";
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AsnPropTypes.ObjectIdentifier })
], PolicyInformation.prototype, "policyIdentifier", void 0);
__decorate([
AsnProp({ type: PolicyQualifierInfo, repeated: "sequence", optional: true })
], PolicyInformation.prototype, "policyQualifiers", void 0);
let CertificatePolicies = CertificatePolicies_1 = class CertificatePolicies extends AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, CertificatePolicies_1.prototype);
}
};
CertificatePolicies = CertificatePolicies_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence, itemType: PolicyInformation })
], CertificatePolicies);
export { CertificatePolicies };

View File

@@ -0,0 +1,11 @@
import { __decorate } from "tslib";
import { AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { id_ce } from "../object_identifiers";
import { CRLNumber } from "./crl_number";
export const id_ce_deltaCRLIndicator = `${id_ce}.27`;
let BaseCRLNumber = class BaseCRLNumber extends CRLNumber {
};
BaseCRLNumber = __decorate([
AsnType({ type: AsnTypeTypes.Choice })
], BaseCRLNumber);
export { BaseCRLNumber };

View File

@@ -0,0 +1,95 @@
var CRLDistributionPoints_1;
import { __decorate } from "tslib";
import { AsnProp, AsnType, AsnTypeTypes, AsnArray, BitString } from "@peculiar/asn1-schema";
import { RelativeDistinguishedName } from "../name";
import { GeneralName } from "../general_name";
import { id_ce } from "../object_identifiers";
export const id_ce_cRLDistributionPoints = `${id_ce}.31`;
export var ReasonFlags;
(function (ReasonFlags) {
ReasonFlags[ReasonFlags["unused"] = 1] = "unused";
ReasonFlags[ReasonFlags["keyCompromise"] = 2] = "keyCompromise";
ReasonFlags[ReasonFlags["cACompromise"] = 4] = "cACompromise";
ReasonFlags[ReasonFlags["affiliationChanged"] = 8] = "affiliationChanged";
ReasonFlags[ReasonFlags["superseded"] = 16] = "superseded";
ReasonFlags[ReasonFlags["cessationOfOperation"] = 32] = "cessationOfOperation";
ReasonFlags[ReasonFlags["certificateHold"] = 64] = "certificateHold";
ReasonFlags[ReasonFlags["privilegeWithdrawn"] = 128] = "privilegeWithdrawn";
ReasonFlags[ReasonFlags["aACompromise"] = 256] = "aACompromise";
})(ReasonFlags || (ReasonFlags = {}));
export class Reason extends BitString {
toJSON() {
const res = [];
const flags = this.toNumber();
if (flags & ReasonFlags.aACompromise) {
res.push("aACompromise");
}
if (flags & ReasonFlags.affiliationChanged) {
res.push("affiliationChanged");
}
if (flags & ReasonFlags.cACompromise) {
res.push("cACompromise");
}
if (flags & ReasonFlags.certificateHold) {
res.push("certificateHold");
}
if (flags & ReasonFlags.cessationOfOperation) {
res.push("cessationOfOperation");
}
if (flags & ReasonFlags.keyCompromise) {
res.push("keyCompromise");
}
if (flags & ReasonFlags.privilegeWithdrawn) {
res.push("privilegeWithdrawn");
}
if (flags & ReasonFlags.superseded) {
res.push("superseded");
}
if (flags & ReasonFlags.unused) {
res.push("unused");
}
return res;
}
toString() {
return `[${this.toJSON().join(", ")}]`;
}
}
let DistributionPointName = class DistributionPointName {
constructor(params = {}) {
Object.assign(this, params);
}
};
__decorate([
AsnProp({ type: GeneralName, context: 0, repeated: "sequence", implicit: true })
], DistributionPointName.prototype, "fullName", void 0);
__decorate([
AsnProp({ type: RelativeDistinguishedName, context: 1, implicit: true })
], DistributionPointName.prototype, "nameRelativeToCRLIssuer", void 0);
DistributionPointName = __decorate([
AsnType({ type: AsnTypeTypes.Choice })
], DistributionPointName);
export { DistributionPointName };
export class DistributionPoint {
constructor(params = {}) {
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: DistributionPointName, context: 0, optional: true })
], DistributionPoint.prototype, "distributionPoint", void 0);
__decorate([
AsnProp({ type: Reason, context: 1, optional: true, implicit: true })
], DistributionPoint.prototype, "reasons", void 0);
__decorate([
AsnProp({ type: GeneralName, context: 2, optional: true, repeated: "sequence", implicit: true })
], DistributionPoint.prototype, "cRLIssuer", void 0);
let CRLDistributionPoints = CRLDistributionPoints_1 = class CRLDistributionPoints extends AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, CRLDistributionPoints_1.prototype);
}
};
CRLDistributionPoints = CRLDistributionPoints_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence, itemType: DistributionPoint })
], CRLDistributionPoints);
export { CRLDistributionPoints };

View File

@@ -0,0 +1,16 @@
var FreshestCRL_1;
import { __decorate } from "tslib";
import { AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { id_ce } from "../object_identifiers";
import { CRLDistributionPoints, DistributionPoint } from "./crl_distribution_points";
export const id_ce_freshestCRL = `${id_ce}.46`;
let FreshestCRL = FreshestCRL_1 = class FreshestCRL extends CRLDistributionPoints {
constructor(items) {
super(items);
Object.setPrototypeOf(this, FreshestCRL_1.prototype);
}
};
FreshestCRL = FreshestCRL_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence, itemType: DistributionPoint })
], FreshestCRL);
export { FreshestCRL };

View File

@@ -0,0 +1,54 @@
import { __decorate } from "tslib";
import { AsnProp } from "@peculiar/asn1-schema";
import { DistributionPointName, Reason } from "./crl_distribution_points";
import { id_ce } from "../object_identifiers";
import { AsnPropTypes } from "@peculiar/asn1-schema";
export const id_ce_issuingDistributionPoint = `${id_ce}.28`;
export class IssuingDistributionPoint {
constructor(params = {}) {
this.onlyContainsUserCerts = IssuingDistributionPoint.ONLY;
this.onlyContainsCACerts = IssuingDistributionPoint.ONLY;
this.indirectCRL = IssuingDistributionPoint.ONLY;
this.onlyContainsAttributeCerts = IssuingDistributionPoint.ONLY;
Object.assign(this, params);
}
}
IssuingDistributionPoint.ONLY = false;
__decorate([
AsnProp({ type: DistributionPointName, context: 0, optional: true })
], IssuingDistributionPoint.prototype, "distributionPoint", void 0);
__decorate([
AsnProp({
type: AsnPropTypes.Boolean,
context: 1,
defaultValue: IssuingDistributionPoint.ONLY,
implicit: true,
})
], IssuingDistributionPoint.prototype, "onlyContainsUserCerts", void 0);
__decorate([
AsnProp({
type: AsnPropTypes.Boolean,
context: 2,
defaultValue: IssuingDistributionPoint.ONLY,
implicit: true,
})
], IssuingDistributionPoint.prototype, "onlyContainsCACerts", void 0);
__decorate([
AsnProp({ type: Reason, context: 3, optional: true, implicit: true })
], IssuingDistributionPoint.prototype, "onlySomeReasons", void 0);
__decorate([
AsnProp({
type: AsnPropTypes.Boolean,
context: 4,
defaultValue: IssuingDistributionPoint.ONLY,
implicit: true,
})
], IssuingDistributionPoint.prototype, "indirectCRL", void 0);
__decorate([
AsnProp({
type: AsnPropTypes.Boolean,
context: 5,
defaultValue: IssuingDistributionPoint.ONLY,
implicit: true,
})
], IssuingDistributionPoint.prototype, "onlyContainsAttributeCerts", void 0);

View File

@@ -0,0 +1,16 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { id_ce } from "../object_identifiers";
export const id_ce_cRLNumber = `${id_ce}.20`;
let CRLNumber = class CRLNumber {
constructor(value = 0) {
this.value = value;
}
};
__decorate([
AsnProp({ type: AsnPropTypes.Integer })
], CRLNumber.prototype, "value", void 0);
CRLNumber = __decorate([
AsnType({ type: AsnTypeTypes.Choice })
], CRLNumber);
export { CRLNumber };

View File

@@ -0,0 +1,36 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { id_ce } from "../object_identifiers";
export const id_ce_cRLReasons = `${id_ce}.21`;
export var CRLReasons;
(function (CRLReasons) {
CRLReasons[CRLReasons["unspecified"] = 0] = "unspecified";
CRLReasons[CRLReasons["keyCompromise"] = 1] = "keyCompromise";
CRLReasons[CRLReasons["cACompromise"] = 2] = "cACompromise";
CRLReasons[CRLReasons["affiliationChanged"] = 3] = "affiliationChanged";
CRLReasons[CRLReasons["superseded"] = 4] = "superseded";
CRLReasons[CRLReasons["cessationOfOperation"] = 5] = "cessationOfOperation";
CRLReasons[CRLReasons["certificateHold"] = 6] = "certificateHold";
CRLReasons[CRLReasons["removeFromCRL"] = 8] = "removeFromCRL";
CRLReasons[CRLReasons["privilegeWithdrawn"] = 9] = "privilegeWithdrawn";
CRLReasons[CRLReasons["aACompromise"] = 10] = "aACompromise";
})(CRLReasons || (CRLReasons = {}));
let CRLReason = class CRLReason {
constructor(reason = CRLReasons.unspecified) {
this.reason = CRLReasons.unspecified;
this.reason = reason;
}
toJSON() {
return CRLReasons[this.reason];
}
toString() {
return this.toJSON();
}
};
__decorate([
AsnProp({ type: AsnPropTypes.Enumerated })
], CRLReason.prototype, "reason", void 0);
CRLReason = __decorate([
AsnType({ type: AsnTypeTypes.Choice })
], CRLReason);
export { CRLReason };

View File

@@ -0,0 +1,41 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, BitString } from "@peculiar/asn1-schema";
export const id_entrust_entrustVersInfo = "1.2.840.113533.7.65.0";
export var EntrustInfoFlags;
(function (EntrustInfoFlags) {
EntrustInfoFlags[EntrustInfoFlags["keyUpdateAllowed"] = 1] = "keyUpdateAllowed";
EntrustInfoFlags[EntrustInfoFlags["newExtensions"] = 2] = "newExtensions";
EntrustInfoFlags[EntrustInfoFlags["pKIXCertificate"] = 4] = "pKIXCertificate";
})(EntrustInfoFlags || (EntrustInfoFlags = {}));
export class EntrustInfo extends BitString {
toJSON() {
const res = [];
const flags = this.toNumber();
if (flags & EntrustInfoFlags.pKIXCertificate) {
res.push("pKIXCertificate");
}
if (flags & EntrustInfoFlags.newExtensions) {
res.push("newExtensions");
}
if (flags & EntrustInfoFlags.keyUpdateAllowed) {
res.push("keyUpdateAllowed");
}
return res;
}
toString() {
return `[${this.toJSON().join(", ")}]`;
}
}
export class EntrustVersionInfo {
constructor(params = {}) {
this.entrustVers = "";
this.entrustInfoFlags = new EntrustInfo();
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AsnPropTypes.GeneralString })
], EntrustVersionInfo.prototype, "entrustVers", void 0);
__decorate([
AsnProp({ type: EntrustInfo })
], EntrustVersionInfo.prototype, "entrustInfoFlags", void 0);

View File

@@ -0,0 +1,22 @@
var ExtendedKeyUsage_1;
import { __decorate } from "tslib";
import { AsnPropTypes, AsnArray, AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { id_ce, id_kp } from "../object_identifiers";
export const id_ce_extKeyUsage = `${id_ce}.37`;
let ExtendedKeyUsage = ExtendedKeyUsage_1 = class ExtendedKeyUsage extends AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, ExtendedKeyUsage_1.prototype);
}
};
ExtendedKeyUsage = ExtendedKeyUsage_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence, itemType: AsnPropTypes.ObjectIdentifier })
], ExtendedKeyUsage);
export { ExtendedKeyUsage };
export const anyExtendedKeyUsage = `${id_ce_extKeyUsage}.0`;
export const id_kp_serverAuth = `${id_kp}.1`;
export const id_kp_clientAuth = `${id_kp}.2`;
export const id_kp_codeSigning = `${id_kp}.3`;
export const id_kp_emailProtection = `${id_kp}.4`;
export const id_kp_timeStamping = `${id_kp}.8`;
export const id_kp_OCSPSigning = `${id_kp}.9`;

View File

@@ -0,0 +1,25 @@
export * from "./authority_information_access";
export * from "./authority_key_identifier";
export * from "./basic_constraints";
export * from "./certificate_issuer";
export * from "./certificate_policies";
export * from "./crl_delta_indicator";
export * from "./crl_distribution_points";
export * from "./crl_freshest";
export * from "./crl_issuing_distribution_point";
export * from "./crl_number";
export * from "./crl_reason";
export * from "./extended_key_usage";
export * from "./inhibit_any_policy";
export * from "./invalidity_date";
export * from "./issuer_alternative_name";
export * from "./key_usage";
export * from "./name_constraints";
export * from "./policy_constraints";
export * from "./policy_mappings";
export * from "./subject_alternative_name";
export * from "./subject_directory_attributes";
export * from "./subject_key_identifier";
export * from "./private_key_usage_period";
export * from "./entrust_version_info";
export * from "./subject_info_access";

View File

@@ -0,0 +1,16 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, AsnIntegerArrayBufferConverter, } from "@peculiar/asn1-schema";
import { id_ce } from "../object_identifiers";
export const id_ce_inhibitAnyPolicy = `${id_ce}.54`;
let InhibitAnyPolicy = class InhibitAnyPolicy {
constructor(value = new ArrayBuffer(0)) {
this.value = value;
}
};
__decorate([
AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter })
], InhibitAnyPolicy.prototype, "value", void 0);
InhibitAnyPolicy = __decorate([
AsnType({ type: AsnTypeTypes.Choice })
], InhibitAnyPolicy);
export { InhibitAnyPolicy };

View File

@@ -0,0 +1,19 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { id_ce } from "../object_identifiers";
export const id_ce_invalidityDate = `${id_ce}.24`;
let InvalidityDate = class InvalidityDate {
constructor(value) {
this.value = new Date();
if (value) {
this.value = value;
}
}
};
__decorate([
AsnProp({ type: AsnPropTypes.GeneralizedTime })
], InvalidityDate.prototype, "value", void 0);
InvalidityDate = __decorate([
AsnType({ type: AsnTypeTypes.Choice })
], InvalidityDate);
export { InvalidityDate };

View File

@@ -0,0 +1,16 @@
var IssueAlternativeName_1;
import { __decorate } from "tslib";
import { AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { GeneralNames } from "../general_names";
import { id_ce } from "../object_identifiers";
export const id_ce_issuerAltName = `${id_ce}.18`;
let IssueAlternativeName = IssueAlternativeName_1 = class IssueAlternativeName extends GeneralNames {
constructor(items) {
super(items);
Object.setPrototypeOf(this, IssueAlternativeName_1.prototype);
}
};
IssueAlternativeName = IssueAlternativeName_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence })
], IssueAlternativeName);
export { IssueAlternativeName };

View File

@@ -0,0 +1,52 @@
import { BitString } from "@peculiar/asn1-schema";
import { id_ce } from "../object_identifiers";
export const id_ce_keyUsage = `${id_ce}.15`;
export var KeyUsageFlags;
(function (KeyUsageFlags) {
KeyUsageFlags[KeyUsageFlags["digitalSignature"] = 1] = "digitalSignature";
KeyUsageFlags[KeyUsageFlags["nonRepudiation"] = 2] = "nonRepudiation";
KeyUsageFlags[KeyUsageFlags["keyEncipherment"] = 4] = "keyEncipherment";
KeyUsageFlags[KeyUsageFlags["dataEncipherment"] = 8] = "dataEncipherment";
KeyUsageFlags[KeyUsageFlags["keyAgreement"] = 16] = "keyAgreement";
KeyUsageFlags[KeyUsageFlags["keyCertSign"] = 32] = "keyCertSign";
KeyUsageFlags[KeyUsageFlags["cRLSign"] = 64] = "cRLSign";
KeyUsageFlags[KeyUsageFlags["encipherOnly"] = 128] = "encipherOnly";
KeyUsageFlags[KeyUsageFlags["decipherOnly"] = 256] = "decipherOnly";
})(KeyUsageFlags || (KeyUsageFlags = {}));
export class KeyUsage extends BitString {
toJSON() {
const flag = this.toNumber();
const res = [];
if (flag & KeyUsageFlags.cRLSign) {
res.push("crlSign");
}
if (flag & KeyUsageFlags.dataEncipherment) {
res.push("dataEncipherment");
}
if (flag & KeyUsageFlags.decipherOnly) {
res.push("decipherOnly");
}
if (flag & KeyUsageFlags.digitalSignature) {
res.push("digitalSignature");
}
if (flag & KeyUsageFlags.encipherOnly) {
res.push("encipherOnly");
}
if (flag & KeyUsageFlags.keyAgreement) {
res.push("keyAgreement");
}
if (flag & KeyUsageFlags.keyCertSign) {
res.push("keyCertSign");
}
if (flag & KeyUsageFlags.keyEncipherment) {
res.push("keyEncipherment");
}
if (flag & KeyUsageFlags.nonRepudiation) {
res.push("nonRepudiation");
}
return res;
}
toString() {
return `[${this.toJSON().join(", ")}]`;
}
}

View File

@@ -0,0 +1,43 @@
var GeneralSubtrees_1;
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnArray, AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { GeneralName } from "../general_name";
import { id_ce } from "../object_identifiers";
export const id_ce_nameConstraints = `${id_ce}.30`;
export class GeneralSubtree {
constructor(params = {}) {
this.base = new GeneralName();
this.minimum = 0;
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: GeneralName })
], GeneralSubtree.prototype, "base", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Integer, context: 0, defaultValue: 0, implicit: true })
], GeneralSubtree.prototype, "minimum", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Integer, context: 1, optional: true, implicit: true })
], GeneralSubtree.prototype, "maximum", void 0);
let GeneralSubtrees = GeneralSubtrees_1 = class GeneralSubtrees extends AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, GeneralSubtrees_1.prototype);
}
};
GeneralSubtrees = GeneralSubtrees_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence, itemType: GeneralSubtree })
], GeneralSubtrees);
export { GeneralSubtrees };
export class NameConstraints {
constructor(params = {}) {
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: GeneralSubtrees, context: 0, optional: true, implicit: true })
], NameConstraints.prototype, "permittedSubtrees", void 0);
__decorate([
AsnProp({ type: GeneralSubtrees, context: 1, optional: true, implicit: true })
], NameConstraints.prototype, "excludedSubtrees", void 0);

View File

@@ -0,0 +1,27 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter } from "@peculiar/asn1-schema";
import { id_ce } from "../object_identifiers";
export const id_ce_policyConstraints = `${id_ce}.36`;
export class PolicyConstraints {
constructor(params = {}) {
Object.assign(this, params);
}
}
__decorate([
AsnProp({
type: AsnPropTypes.Integer,
context: 0,
implicit: true,
optional: true,
converter: AsnIntegerArrayBufferConverter,
})
], PolicyConstraints.prototype, "requireExplicitPolicy", void 0);
__decorate([
AsnProp({
type: AsnPropTypes.Integer,
context: 1,
implicit: true,
optional: true,
converter: AsnIntegerArrayBufferConverter,
})
], PolicyConstraints.prototype, "inhibitPolicyMapping", void 0);

View File

@@ -0,0 +1,28 @@
var PolicyMappings_1;
import { __decorate } from "tslib";
import { AsnArray, AsnProp, AsnPropTypes, AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { id_ce } from "../object_identifiers";
export const id_ce_policyMappings = `${id_ce}.33`;
export class PolicyMapping {
constructor(params = {}) {
this.issuerDomainPolicy = "";
this.subjectDomainPolicy = "";
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AsnPropTypes.ObjectIdentifier })
], PolicyMapping.prototype, "issuerDomainPolicy", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.ObjectIdentifier })
], PolicyMapping.prototype, "subjectDomainPolicy", void 0);
let PolicyMappings = PolicyMappings_1 = class PolicyMappings extends AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, PolicyMappings_1.prototype);
}
};
PolicyMappings = PolicyMappings_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence, itemType: PolicyMapping })
], PolicyMappings);
export { PolicyMappings };

View File

@@ -0,0 +1,15 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes } from "@peculiar/asn1-schema";
import { id_ce } from "../object_identifiers";
export const id_ce_privateKeyUsagePeriod = `${id_ce}.16`;
export class PrivateKeyUsagePeriod {
constructor(params = {}) {
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AsnPropTypes.GeneralizedTime, context: 0, implicit: true, optional: true })
], PrivateKeyUsagePeriod.prototype, "notBefore", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.GeneralizedTime, context: 1, implicit: true, optional: true })
], PrivateKeyUsagePeriod.prototype, "notAfter", void 0);

View File

@@ -0,0 +1,16 @@
var SubjectAlternativeName_1;
import { __decorate } from "tslib";
import { AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { GeneralNames } from "../general_names";
import { id_ce } from "../object_identifiers";
export const id_ce_subjectAltName = `${id_ce}.17`;
let SubjectAlternativeName = SubjectAlternativeName_1 = class SubjectAlternativeName extends GeneralNames {
constructor(items) {
super(items);
Object.setPrototypeOf(this, SubjectAlternativeName_1.prototype);
}
};
SubjectAlternativeName = SubjectAlternativeName_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence })
], SubjectAlternativeName);
export { SubjectAlternativeName };

View File

@@ -0,0 +1,16 @@
var SubjectDirectoryAttributes_1;
import { __decorate } from "tslib";
import { AsnArray, AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { Attribute } from "../attribute";
import { id_ce } from "../object_identifiers";
export const id_ce_subjectDirectoryAttributes = `${id_ce}.9`;
let SubjectDirectoryAttributes = SubjectDirectoryAttributes_1 = class SubjectDirectoryAttributes extends AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, SubjectDirectoryAttributes_1.prototype);
}
};
SubjectDirectoryAttributes = SubjectDirectoryAttributes_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence, itemType: Attribute })
], SubjectDirectoryAttributes);
export { SubjectDirectoryAttributes };

View File

@@ -0,0 +1,16 @@
var SubjectInfoAccessSyntax_1;
import { __decorate } from "tslib";
import { AsnArray, AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { id_pe } from "../object_identifiers";
import { AccessDescription } from "./authority_information_access";
export const id_pe_subjectInfoAccess = `${id_pe}.11`;
let SubjectInfoAccessSyntax = SubjectInfoAccessSyntax_1 = class SubjectInfoAccessSyntax extends AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, SubjectInfoAccessSyntax_1.prototype);
}
};
SubjectInfoAccessSyntax = SubjectInfoAccessSyntax_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence, itemType: AccessDescription })
], SubjectInfoAccessSyntax);
export { SubjectInfoAccessSyntax };

View File

@@ -0,0 +1,5 @@
import { id_ce } from "../object_identifiers";
import { KeyIdentifier } from "./authority_key_identifier";
export const id_ce_subjectKeyIdentifier = `${id_ce}.14`;
export class SubjectKeyIdentifier extends KeyIdentifier {
}

View File

@@ -0,0 +1,74 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, AsnOctetStringConverter, } from "@peculiar/asn1-schema";
import { IpConverter } from "./ip_converter";
import { DirectoryString, Name } from "./name";
export const AsnIpConverter = {
fromASN: (value) => IpConverter.toString(AsnOctetStringConverter.fromASN(value)),
toASN: (value) => AsnOctetStringConverter.toASN(IpConverter.fromString(value)),
};
export class OtherName {
constructor(params = {}) {
this.typeId = "";
this.value = new ArrayBuffer(0);
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AsnPropTypes.ObjectIdentifier })
], OtherName.prototype, "typeId", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Any, context: 0 })
], OtherName.prototype, "value", void 0);
export class EDIPartyName {
constructor(params = {}) {
this.partyName = new DirectoryString();
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: DirectoryString, optional: true, context: 0, implicit: true })
], EDIPartyName.prototype, "nameAssigner", void 0);
__decorate([
AsnProp({ type: DirectoryString, context: 1, implicit: true })
], EDIPartyName.prototype, "partyName", void 0);
let GeneralName = class GeneralName {
constructor(params = {}) {
Object.assign(this, params);
}
};
__decorate([
AsnProp({ type: OtherName, context: 0, implicit: true })
], GeneralName.prototype, "otherName", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.IA5String, context: 1, implicit: true })
], GeneralName.prototype, "rfc822Name", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.IA5String, context: 2, implicit: true })
], GeneralName.prototype, "dNSName", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Any, context: 3, implicit: true })
], GeneralName.prototype, "x400Address", void 0);
__decorate([
AsnProp({ type: Name, context: 4, implicit: false })
], GeneralName.prototype, "directoryName", void 0);
__decorate([
AsnProp({ type: EDIPartyName, context: 5 })
], GeneralName.prototype, "ediPartyName", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.IA5String, context: 6, implicit: true })
], GeneralName.prototype, "uniformResourceIdentifier", void 0);
__decorate([
AsnProp({
type: AsnPropTypes.OctetString,
context: 7,
implicit: true,
converter: AsnIpConverter,
})
], GeneralName.prototype, "iPAddress", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.ObjectIdentifier, context: 8, implicit: true })
], GeneralName.prototype, "registeredID", void 0);
GeneralName = __decorate([
AsnType({ type: AsnTypeTypes.Choice })
], GeneralName);
export { GeneralName };

View File

@@ -0,0 +1,15 @@
var GeneralNames_1;
import { __decorate } from "tslib";
import { AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
import { GeneralName } from "./general_name";
import { AsnArray } from "@peculiar/asn1-schema";
let GeneralNames = GeneralNames_1 = class GeneralNames extends AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, GeneralNames_1.prototype);
}
};
GeneralNames = GeneralNames_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence, itemType: GeneralName })
], GeneralNames);
export { GeneralNames };

View File

@@ -0,0 +1,16 @@
export * from "./extensions";
export * from "./algorithm_identifier";
export * from "./attribute";
export * from "./certificate";
export * from "./certificate_list";
export * from "./extension";
export * from "./general_name";
export * from "./general_names";
export * from "./name";
export * from "./object_identifiers";
export * from "./subject_public_key_info";
export * from "./tbs_cert_list";
export * from "./tbs_certificate";
export * from "./time";
export * from "./types";
export * from "./validity";

View File

@@ -0,0 +1,173 @@
import { Convert } from "pvtsutils";
export class IpConverter {
static isIPv4(ip) {
return /^(\d{1,3}\.){3}\d{1,3}$/.test(ip);
}
static parseIPv4(ip) {
const parts = ip.split(".");
if (parts.length !== 4) {
throw new Error("Invalid IPv4 address");
}
return parts.map((part) => {
const num = parseInt(part, 10);
if (isNaN(num) || num < 0 || num > 255) {
throw new Error("Invalid IPv4 address part");
}
return num;
});
}
static parseIPv6(ip) {
const expandedIP = this.expandIPv6(ip);
const parts = expandedIP.split(":");
if (parts.length !== 8) {
throw new Error("Invalid IPv6 address");
}
return parts.reduce((bytes, part) => {
const num = parseInt(part, 16);
if (isNaN(num) || num < 0 || num > 0xffff) {
throw new Error("Invalid IPv6 address part");
}
bytes.push((num >> 8) & 0xff);
bytes.push(num & 0xff);
return bytes;
}, []);
}
static expandIPv6(ip) {
if (!ip.includes("::")) {
return ip;
}
const parts = ip.split("::");
if (parts.length > 2) {
throw new Error("Invalid IPv6 address");
}
const left = parts[0] ? parts[0].split(":") : [];
const right = parts[1] ? parts[1].split(":") : [];
const missing = 8 - (left.length + right.length);
if (missing < 0) {
throw new Error("Invalid IPv6 address");
}
return [...left, ...Array(missing).fill("0"), ...right].join(":");
}
static formatIPv6(bytes) {
const parts = [];
for (let i = 0; i < 16; i += 2) {
parts.push(((bytes[i] << 8) | bytes[i + 1]).toString(16));
}
return this.compressIPv6(parts.join(":"));
}
static compressIPv6(ip) {
const parts = ip.split(":");
let longestZeroStart = -1;
let longestZeroLength = 0;
let currentZeroStart = -1;
let currentZeroLength = 0;
for (let i = 0; i < parts.length; i++) {
if (parts[i] === "0") {
if (currentZeroStart === -1) {
currentZeroStart = i;
}
currentZeroLength++;
}
else {
if (currentZeroLength > longestZeroLength) {
longestZeroStart = currentZeroStart;
longestZeroLength = currentZeroLength;
}
currentZeroStart = -1;
currentZeroLength = 0;
}
}
if (currentZeroLength > longestZeroLength) {
longestZeroStart = currentZeroStart;
longestZeroLength = currentZeroLength;
}
if (longestZeroLength > 1) {
const before = parts.slice(0, longestZeroStart).join(":");
const after = parts.slice(longestZeroStart + longestZeroLength).join(":");
return `${before}::${after}`;
}
return ip;
}
static parseCIDR(text) {
const [addr, prefixStr] = text.split("/");
const prefix = parseInt(prefixStr, 10);
if (this.isIPv4(addr)) {
if (prefix < 0 || prefix > 32) {
throw new Error("Invalid IPv4 prefix length");
}
return [this.parseIPv4(addr), prefix];
}
else {
if (prefix < 0 || prefix > 128) {
throw new Error("Invalid IPv6 prefix length");
}
return [this.parseIPv6(addr), prefix];
}
}
static decodeIP(value) {
if (value.length === 64 && parseInt(value, 16) === 0) {
return "::/0";
}
if (value.length !== 16) {
return value;
}
const mask = parseInt(value.slice(8), 16)
.toString(2)
.split("")
.reduce((a, k) => a + +k, 0);
let ip = value.slice(0, 8).replace(/(.{2})/g, (match) => `${parseInt(match, 16)}.`);
ip = ip.slice(0, -1);
return `${ip}/${mask}`;
}
static toString(buf) {
const uint8 = new Uint8Array(buf);
if (uint8.length === 4) {
return Array.from(uint8).join(".");
}
if (uint8.length === 16) {
return this.formatIPv6(uint8);
}
if (uint8.length === 8 || uint8.length === 32) {
const half = uint8.length / 2;
const addrBytes = uint8.slice(0, half);
const maskBytes = uint8.slice(half);
const isAllZeros = uint8.every((byte) => byte === 0);
if (isAllZeros) {
return uint8.length === 8 ? "0.0.0.0/0" : "::/0";
}
const prefixLen = maskBytes.reduce((a, b) => a + (b.toString(2).match(/1/g) || []).length, 0);
if (uint8.length === 8) {
const addrStr = Array.from(addrBytes).join(".");
return `${addrStr}/${prefixLen}`;
}
else {
const addrStr = this.formatIPv6(addrBytes);
return `${addrStr}/${prefixLen}`;
}
}
return this.decodeIP(Convert.ToHex(buf));
}
static fromString(text) {
if (text.includes("/")) {
const [addr, prefix] = this.parseCIDR(text);
const maskBytes = new Uint8Array(addr.length);
let bitsLeft = prefix;
for (let i = 0; i < maskBytes.length; i++) {
if (bitsLeft >= 8) {
maskBytes[i] = 0xff;
bitsLeft -= 8;
}
else if (bitsLeft > 0) {
maskBytes[i] = 0xff << (8 - bitsLeft);
bitsLeft = 0;
}
}
const out = new Uint8Array(addr.length * 2);
out.set(addr, 0);
out.set(maskBytes, addr.length);
return out.buffer;
}
const bytes = this.isIPv4(text) ? this.parseIPv4(text) : this.parseIPv6(text);
return new Uint8Array(bytes).buffer;
}
}

View File

@@ -0,0 +1,98 @@
var RelativeDistinguishedName_1, RDNSequence_1, Name_1;
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, AsnArray } from "@peculiar/asn1-schema";
import { Convert } from "pvtsutils";
let DirectoryString = class DirectoryString {
constructor(params = {}) {
Object.assign(this, params);
}
toString() {
return (this.bmpString ||
this.printableString ||
this.teletexString ||
this.universalString ||
this.utf8String ||
"");
}
};
__decorate([
AsnProp({ type: AsnPropTypes.TeletexString })
], DirectoryString.prototype, "teletexString", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.PrintableString })
], DirectoryString.prototype, "printableString", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.UniversalString })
], DirectoryString.prototype, "universalString", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Utf8String })
], DirectoryString.prototype, "utf8String", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.BmpString })
], DirectoryString.prototype, "bmpString", void 0);
DirectoryString = __decorate([
AsnType({ type: AsnTypeTypes.Choice })
], DirectoryString);
export { DirectoryString };
let AttributeValue = class AttributeValue extends DirectoryString {
constructor(params = {}) {
super(params);
Object.assign(this, params);
}
toString() {
return this.ia5String || (this.anyValue ? Convert.ToHex(this.anyValue) : super.toString());
}
};
__decorate([
AsnProp({ type: AsnPropTypes.IA5String })
], AttributeValue.prototype, "ia5String", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.Any })
], AttributeValue.prototype, "anyValue", void 0);
AttributeValue = __decorate([
AsnType({ type: AsnTypeTypes.Choice })
], AttributeValue);
export { AttributeValue };
export class AttributeTypeAndValue {
constructor(params = {}) {
this.type = "";
this.value = new AttributeValue();
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AsnPropTypes.ObjectIdentifier })
], AttributeTypeAndValue.prototype, "type", void 0);
__decorate([
AsnProp({ type: AttributeValue })
], AttributeTypeAndValue.prototype, "value", void 0);
let RelativeDistinguishedName = RelativeDistinguishedName_1 = class RelativeDistinguishedName extends AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, RelativeDistinguishedName_1.prototype);
}
};
RelativeDistinguishedName = RelativeDistinguishedName_1 = __decorate([
AsnType({ type: AsnTypeTypes.Set, itemType: AttributeTypeAndValue })
], RelativeDistinguishedName);
export { RelativeDistinguishedName };
let RDNSequence = RDNSequence_1 = class RDNSequence extends AsnArray {
constructor(items) {
super(items);
Object.setPrototypeOf(this, RDNSequence_1.prototype);
}
};
RDNSequence = RDNSequence_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence, itemType: RelativeDistinguishedName })
], RDNSequence);
export { RDNSequence };
let Name = Name_1 = class Name extends RDNSequence {
constructor(items) {
super(items);
Object.setPrototypeOf(this, Name_1.prototype);
}
};
Name = Name_1 = __decorate([
AsnType({ type: AsnTypeTypes.Sequence })
], Name);
export { Name };

View File

@@ -0,0 +1,12 @@
export const id_pkix = "1.3.6.1.5.5.7";
export const id_pe = `${id_pkix}.1`;
export const id_qt = `${id_pkix}.2`;
export const id_kp = `${id_pkix}.3`;
export const id_ad = `${id_pkix}.48`;
export const id_qt_csp = `${id_qt}.1`;
export const id_qt_unotice = `${id_qt}.2`;
export const id_ad_ocsp = `${id_ad}.1`;
export const id_ad_caIssuers = `${id_ad}.2`;
export const id_ad_timeStamping = `${id_ad}.3`;
export const id_ad_caRepository = `${id_ad}.5`;
export const id_ce = "2.5.29";

View File

@@ -0,0 +1,16 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes } from "@peculiar/asn1-schema";
import { AlgorithmIdentifier } from "./algorithm_identifier";
export class SubjectPublicKeyInfo {
constructor(params = {}) {
this.algorithm = new AlgorithmIdentifier();
this.subjectPublicKey = new ArrayBuffer(0);
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AlgorithmIdentifier })
], SubjectPublicKeyInfo.prototype, "algorithm", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.BitString })
], SubjectPublicKeyInfo.prototype, "subjectPublicKey", void 0);

View File

@@ -0,0 +1,51 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter } from "@peculiar/asn1-schema";
import { AlgorithmIdentifier } from "./algorithm_identifier";
import { Name } from "./name";
import { Time } from "./time";
import { Extension } from "./extension";
export class RevokedCertificate {
constructor(params = {}) {
this.userCertificate = new ArrayBuffer(0);
this.revocationDate = new Time();
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter })
], RevokedCertificate.prototype, "userCertificate", void 0);
__decorate([
AsnProp({ type: Time })
], RevokedCertificate.prototype, "revocationDate", void 0);
__decorate([
AsnProp({ type: Extension, optional: true, repeated: "sequence" })
], RevokedCertificate.prototype, "crlEntryExtensions", void 0);
export class TBSCertList {
constructor(params = {}) {
this.signature = new AlgorithmIdentifier();
this.issuer = new Name();
this.thisUpdate = new Time();
Object.assign(this, params);
}
}
__decorate([
AsnProp({ type: AsnPropTypes.Integer, optional: true })
], TBSCertList.prototype, "version", void 0);
__decorate([
AsnProp({ type: AlgorithmIdentifier })
], TBSCertList.prototype, "signature", void 0);
__decorate([
AsnProp({ type: Name })
], TBSCertList.prototype, "issuer", void 0);
__decorate([
AsnProp({ type: Time })
], TBSCertList.prototype, "thisUpdate", void 0);
__decorate([
AsnProp({ type: Time, optional: true })
], TBSCertList.prototype, "nextUpdate", void 0);
__decorate([
AsnProp({ type: RevokedCertificate, repeated: "sequence", optional: true })
], TBSCertList.prototype, "revokedCertificates", void 0);
__decorate([
AsnProp({ type: Extension, optional: true, context: 0, repeated: "sequence" })
], TBSCertList.prototype, "crlExtensions", void 0);

View File

@@ -0,0 +1,62 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter } from "@peculiar/asn1-schema";
import { AlgorithmIdentifier } from "./algorithm_identifier";
import { Name } from "./name";
import { SubjectPublicKeyInfo } from "./subject_public_key_info";
import { Validity } from "./validity";
import { Extensions } from "./extension";
import { Version } from "./types";
export class TBSCertificate {
constructor(params = {}) {
this.version = Version.v1;
this.serialNumber = new ArrayBuffer(0);
this.signature = new AlgorithmIdentifier();
this.issuer = new Name();
this.validity = new Validity();
this.subject = new Name();
this.subjectPublicKeyInfo = new SubjectPublicKeyInfo();
Object.assign(this, params);
}
}
__decorate([
AsnProp({
type: AsnPropTypes.Integer,
context: 0,
defaultValue: Version.v1,
})
], TBSCertificate.prototype, "version", void 0);
__decorate([
AsnProp({
type: AsnPropTypes.Integer,
converter: AsnIntegerArrayBufferConverter,
})
], TBSCertificate.prototype, "serialNumber", void 0);
__decorate([
AsnProp({ type: AlgorithmIdentifier })
], TBSCertificate.prototype, "signature", void 0);
__decorate([
AsnProp({ type: Name })
], TBSCertificate.prototype, "issuer", void 0);
__decorate([
AsnProp({ type: Validity })
], TBSCertificate.prototype, "validity", void 0);
__decorate([
AsnProp({ type: Name })
], TBSCertificate.prototype, "subject", void 0);
__decorate([
AsnProp({ type: SubjectPublicKeyInfo })
], TBSCertificate.prototype, "subjectPublicKeyInfo", void 0);
__decorate([
AsnProp({
type: AsnPropTypes.BitString,
context: 1,
implicit: true,
optional: true,
})
], TBSCertificate.prototype, "issuerUniqueID", void 0);
__decorate([
AsnProp({ type: AsnPropTypes.BitString, context: 2, implicit: true, optional: true })
], TBSCertificate.prototype, "subjectUniqueID", void 0);
__decorate([
AsnProp({ type: Extensions, context: 3, optional: true })
], TBSCertificate.prototype, "extensions", void 0);

View File

@@ -0,0 +1,41 @@
import { __decorate } from "tslib";
import { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
let Time = class Time {
constructor(time) {
if (time) {
if (typeof time === "string" || typeof time === "number" || time instanceof Date) {
const date = new Date(time);
if (date.getUTCFullYear() > 2049) {
this.generalTime = date;
}
else {
this.utcTime = date;
}
}
else {
Object.assign(this, time);
}
}
}
getTime() {
const time = this.utcTime || this.generalTime;
if (!time) {
throw new Error("Cannot get time from CHOICE object");
}
return time;
}
};
__decorate([
AsnProp({
type: AsnPropTypes.UTCTime,
})
], Time.prototype, "utcTime", void 0);
__decorate([
AsnProp({
type: AsnPropTypes.GeneralizedTime,
})
], Time.prototype, "generalTime", void 0);
Time = __decorate([
AsnType({ type: AsnTypeTypes.Choice })
], Time);
export { Time };

View File

@@ -0,0 +1,6 @@
export var Version;
(function (Version) {
Version[Version["v1"] = 0] = "v1";
Version[Version["v2"] = 1] = "v2";
Version[Version["v3"] = 2] = "v3";
})(Version || (Version = {}));

View File

@@ -0,0 +1,19 @@
import { __decorate } from "tslib";
import { AsnProp } from "@peculiar/asn1-schema";
import { Time } from "./time";
export class Validity {
constructor(params) {
this.notBefore = new Time(new Date());
this.notAfter = new Time(new Date());
if (params) {
this.notBefore = new Time(params.notBefore);
this.notAfter = new Time(params.notAfter);
}
}
}
__decorate([
AsnProp({ type: Time })
], Validity.prototype, "notBefore", void 0);
__decorate([
AsnProp({ type: Time })
], Validity.prototype, "notAfter", void 0);

View File

@@ -0,0 +1,17 @@
export type ParametersType = ArrayBuffer | null;
/**
* ```asn1
* AlgorithmIdentifier ::= SEQUENCE {
* algorithm OBJECT IDENTIFIER,
* parameters ANY DEFINED BY algorithm OPTIONAL }
* -- contains a value of the type
* -- registered for use with the
* -- algorithm object identifier value
* ```
*/
export declare class AlgorithmIdentifier {
algorithm: string;
parameters?: ParametersType;
constructor(params?: Partial<Omit<AlgorithmIdentifier, "isEqual">>);
isEqual(data: unknown): data is this;
}

View File

@@ -0,0 +1,13 @@
/**
* ```asn1
* Attribute ::= SEQUENCE {
* type AttributeType,
* values SET OF AttributeValue }
* -- at least one value is required
* ```
*/
export declare class Attribute {
type: string;
values: ArrayBuffer[];
constructor(params?: Partial<Attribute>);
}

View File

@@ -0,0 +1,16 @@
import { AlgorithmIdentifier } from "./algorithm_identifier";
import { TBSCertificate } from "./tbs_certificate";
/**
* ```asn1
* Certificate ::= SEQUENCE {
* tbsCertificate TBSCertificate,
* signatureAlgorithm AlgorithmIdentifier,
* signatureValue BIT STRING }
* ```
*/
export declare class Certificate {
tbsCertificate: TBSCertificate;
signatureAlgorithm: AlgorithmIdentifier;
signatureValue: ArrayBuffer;
constructor(params?: Partial<Certificate>);
}

View File

@@ -0,0 +1,16 @@
import { AlgorithmIdentifier } from "./algorithm_identifier";
import { TBSCertList } from "./tbs_cert_list";
/**
* ```asn1
* CertificateList ::= SEQUENCE {
* tbsCertList TBSCertList,
* signatureAlgorithm AlgorithmIdentifier,
* signature BIT STRING }
* ```
*/
export declare class CertificateList {
tbsCertList: TBSCertList;
signatureAlgorithm: AlgorithmIdentifier;
signature: ArrayBuffer;
constructor(params?: Partial<CertificateList>);
}

View File

@@ -0,0 +1,28 @@
import { AsnArray, OctetString } from "@peculiar/asn1-schema";
/**
* ```asn1
* Extension ::= SEQUENCE {
* extnID OBJECT IDENTIFIER,
* critical BOOLEAN DEFAULT FALSE,
* extnValue OCTET STRING
* -- contains the DER encoding of an ASN.1 value
* -- corresponding to the extension type identified
* -- by extnID
* }
* ```
*/
export declare class Extension {
static CRITICAL: boolean;
extnID: string;
critical: boolean;
extnValue: OctetString;
constructor(params?: Partial<Extension>);
}
/**
* ```asn1
* Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
* ```
*/
export declare class Extensions extends AsnArray<Extension> {
constructor(items?: Extension[]);
}

View File

@@ -0,0 +1,29 @@
import { AsnArray } from "@peculiar/asn1-schema";
import { GeneralName } from "../general_name";
/***
* ```asn1
* id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
* ```
*/
export declare const id_pe_authorityInfoAccess = "1.3.6.1.5.5.7.1.1";
/**
* ```asn1
* AccessDescription ::= SEQUENCE {
* accessMethod OBJECT IDENTIFIER,
* accessLocation GeneralName }
* ```
*/
export declare class AccessDescription {
accessMethod: string;
accessLocation: GeneralName;
constructor(params?: Partial<AccessDescription>);
}
/**
* ```asn1
* AuthorityInfoAccessSyntax ::=
* SEQUENCE SIZE (1..MAX) OF AccessDescription
* ```
*/
export declare class AuthorityInfoAccessSyntax extends AsnArray<AccessDescription> {
constructor(items?: AccessDescription[]);
}

View File

@@ -0,0 +1,30 @@
import { OctetString } from "@peculiar/asn1-schema";
import { GeneralName } from "../general_name";
import { CertificateSerialNumber } from "../types";
/**
* ```asn1
* id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
* ```
*/
export declare const id_ce_authorityKeyIdentifier = "2.5.29.35";
/**
* ```asn1
* KeyIdentifier ::= OCTET STRING
* ```
*/
export declare class KeyIdentifier extends OctetString {
}
/**
* ```asn1
* AuthorityKeyIdentifier ::= SEQUENCE {
* keyIdentifier [0] KeyIdentifier OPTIONAL,
* authorityCertIssuer [1] GeneralNames OPTIONAL,
* authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }
* ```
*/
export declare class AuthorityKeyIdentifier {
keyIdentifier?: KeyIdentifier;
authorityCertIssuer?: GeneralName[];
authorityCertSerialNumber?: CertificateSerialNumber;
constructor(params?: Partial<AuthorityKeyIdentifier>);
}

View File

@@ -0,0 +1,18 @@
/**
* ```asn1
* id-ce-basicConstraints OBJECT IDENTIFIER ::= { id-ce 19 }
* ```
*/
export declare const id_ce_basicConstraints = "2.5.29.19";
/**
* ```asn1
* BasicConstraints ::= SEQUENCE {
* cA BOOLEAN DEFAULT FALSE,
* pathLenConstraint INTEGER (0..MAX) OPTIONAL }
* ```
*/
export declare class BasicConstraints {
cA: boolean;
pathLenConstraint?: number;
constructor(params?: Partial<BasicConstraints>);
}

View File

@@ -0,0 +1,16 @@
import { GeneralNames } from "../general_names";
import { GeneralName } from "../general_name";
/**
* ```asn1
* id-ce-certificateIssuer OBJECT IDENTIFIER ::= { id-ce 29 }
* ```
*/
export declare const id_ce_certificateIssuer = "2.5.29.29";
/**
* ```asn1
* CertificateIssuer ::= GeneralNames
* ```
*/
export declare class CertificateIssuer extends GeneralNames {
constructor(items?: GeneralName[]);
}

View File

@@ -0,0 +1,117 @@
import { AsnArray } from "@peculiar/asn1-schema";
/**
* ```asn1
* id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 }
* ```
*/
export declare const id_ce_certificatePolicies = "2.5.29.32";
/**
* ```asn1
* anyPolicy OBJECT IDENTIFIER ::= { id-ce-certificatePolicies 0 }
* ```
*/
export declare const id_ce_certificatePolicies_anyPolicy = "2.5.29.32.0";
/**
* ```asn1
* DisplayText ::= CHOICE {
* ia5String IA5String (SIZE (1..200)),
* visibleString VisibleString (SIZE (1..200)),
* bmpString BMPString (SIZE (1..200)),
* utf8String UTF8String (SIZE (1..200)) }
* ```
*/
export declare class DisplayText {
ia5String?: string;
visibleString?: string;
bmpString?: string;
utf8String?: string;
constructor(params?: Partial<DisplayText>);
toString(): string;
}
/**
* ```asn1
* NoticeReference ::= SEQUENCE {
* organization DisplayText,
* noticeNumbers SEQUENCE OF INTEGER }
* ```
*/
export declare class NoticeReference {
organization: DisplayText;
noticeNumbers: number[];
constructor(params?: Partial<NoticeReference>);
}
/**
* ```asn1
* UserNotice ::= SEQUENCE {
* noticeRef NoticeReference OPTIONAL,
* explicitText DisplayText OPTIONAL }
* ```
*/
export declare class UserNotice {
noticeRef?: NoticeReference;
explicitText?: DisplayText;
constructor(params?: Partial<UserNotice>);
}
/**
* ```asn1
* CPSuri ::= IA5String
* ```
*/
export type CPSuri = string;
/**
* ```asn1
* Qualifier ::= CHOICE {
* cPSuri CPSuri,
* userNotice UserNotice }
* ```
*/
export declare class Qualifier {
cPSuri?: CPSuri;
userNotice?: UserNotice;
constructor(params?: Partial<Qualifier>);
}
/**
* ```asn1
* PolicyQualifierId ::= OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
* ```
*/
export type PolicyQualifierId = string;
/**
* ```asn1
* PolicyQualifierInfo ::= SEQUENCE {
* policyQualifierId PolicyQualifierId,
* qualifier ANY DEFINED BY policyQualifierId }
* ```
*/
export declare class PolicyQualifierInfo {
policyQualifierId: PolicyQualifierId;
qualifier: ArrayBuffer;
constructor(params?: Partial<PolicyQualifierInfo>);
}
/**
* ```asn1
* CertPolicyId ::= OBJECT IDENTIFIER
* ```
*/
export type CertPolicyId = string;
/**
* ```asn1
* PolicyInformation ::= SEQUENCE {
* policyIdentifier CertPolicyId,
* policyQualifiers SEQUENCE SIZE (1..MAX) OF
* PolicyQualifierInfo OPTIONAL }
* ```
*/
export declare class PolicyInformation {
policyIdentifier: CertPolicyId;
policyQualifiers?: PolicyQualifierInfo[];
constructor(params?: Partial<PolicyInformation>);
}
/**
* ```asn1
* CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation
* ```
*/
export declare class CertificatePolicies extends AsnArray<PolicyInformation> {
constructor(items?: PolicyInformation[]);
}

View File

@@ -0,0 +1,14 @@
import { CRLNumber } from "./crl_number";
/**
* ```asn1
* id-ce-deltaCRLIndicator OBJECT IDENTIFIER ::= { id-ce 27 }
* ```
*/
export declare const id_ce_deltaCRLIndicator = "2.5.29.27";
/**
* ```asn1
* BaseCRLNumber ::= CRLNumber
* ```
*/
export declare class BaseCRLNumber extends CRLNumber {
}

View File

@@ -0,0 +1,73 @@
import { AsnArray, BitString } from "@peculiar/asn1-schema";
import { RelativeDistinguishedName } from "../name";
import { GeneralName } from "../general_name";
/**
* ```asn1
* id-ce-cRLDistributionPoints OBJECT IDENTIFIER ::= { id-ce 31 }
* ```
*/
export declare const id_ce_cRLDistributionPoints = "2.5.29.31";
export type ReasonType = "unused" | "keyCompromise" | "cACompromise" | "affiliationChanged" | "superseded" | "cessationOfOperation" | "certificateHold" | "privilegeWithdrawn" | "aACompromise";
export declare enum ReasonFlags {
unused = 1,
keyCompromise = 2,
cACompromise = 4,
affiliationChanged = 8,
superseded = 16,
cessationOfOperation = 32,
certificateHold = 64,
privilegeWithdrawn = 128,
aACompromise = 256
}
/**
* ```asn1
* ReasonFlags ::= BIT STRING {
* unused (0),
* keyCompromise (1),
* cACompromise (2),
* affiliationChanged (3),
* superseded (4),
* cessationOfOperation (5),
* certificateHold (6),
* privilegeWithdrawn (7),
* aACompromise (8) }
* ```
*/
export declare class Reason extends BitString {
toJSON(): ReasonType[];
toString(): string;
}
/**
* ```asn1
* DistributionPointName ::= CHOICE {
* fullName [0] GeneralNames,
* nameRelativeToCRLIssuer [1] RelativeDistinguishedName }
* ```
*/
export declare class DistributionPointName {
fullName?: GeneralName[];
nameRelativeToCRLIssuer?: RelativeDistinguishedName;
constructor(params?: Partial<DistributionPointName>);
}
/**
* ```asn1
* DistributionPoint ::= SEQUENCE {
* distributionPoint [0] DistributionPointName OPTIONAL,
* reasons [1] ReasonFlags OPTIONAL,
* cRLIssuer [2] GeneralNames OPTIONAL }
* ```
*/
export declare class DistributionPoint {
distributionPoint?: DistributionPointName;
reasons?: Reason;
cRLIssuer?: GeneralName[];
constructor(params?: Partial<DistributionPoint>);
}
/**
* ```asn1
* CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint
* ```
*/
export declare class CRLDistributionPoints extends AsnArray<DistributionPoint> {
constructor(items?: DistributionPoint[]);
}

View File

@@ -0,0 +1,15 @@
import { CRLDistributionPoints, DistributionPoint } from "./crl_distribution_points";
/**
* ```asn1
* id-ce-freshestCRL OBJECT IDENTIFIER ::= { id-ce 46 }
* ```
*/
export declare const id_ce_freshestCRL = "2.5.29.46";
/**
* ```asn1
* FreshestCRL ::= CRLDistributionPoints
* ```
*/
export declare class FreshestCRL extends CRLDistributionPoints {
constructor(items?: DistributionPoint[]);
}

View File

@@ -0,0 +1,31 @@
import { DistributionPointName, Reason } from "./crl_distribution_points";
/**
* ```asn1
* id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= { id-ce 28 }
* ```
*/
export declare const id_ce_issuingDistributionPoint = "2.5.29.28";
/**
* ```asn1
* IssuingDistributionPoint ::= SEQUENCE {
* distributionPoint [0] DistributionPointName OPTIONAL,
* onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
* onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
* onlySomeReasons [3] ReasonFlags OPTIONAL,
* indirectCRL [4] BOOLEAN DEFAULT FALSE,
* onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
*
* -- at most one of onlyContainsUserCerts, onlyContainsCACerts,
* -- and onlyContainsAttributeCerts may be set to TRUE.
* ```
*/
export declare class IssuingDistributionPoint {
static readonly ONLY = false;
distributionPoint?: DistributionPointName;
onlyContainsUserCerts: boolean;
onlyContainsCACerts: boolean;
onlySomeReasons?: Reason;
indirectCRL: boolean;
onlyContainsAttributeCerts: boolean;
constructor(params?: Partial<IssuingDistributionPoint>);
}

Some files were not shown because too many files have changed in this diff Show More