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);