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,21 @@
MIT License
Copyright (c) 2020
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,13 @@
# `@peculiar/asn1-x509`
[![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://raw.githubusercontent.com/PeculiarVentures/asn1-schema/master/packages/x509/LICENSE.md)
[![npm version](https://badge.fury.io/js/%40peculiar%2Fasn1-x509.svg)](https://badge.fury.io/js/%40peculiar%2Fasn1-x509)
[![NPM](https://nodei.co/npm/@peculiar/asn1-x509.png)](https://nodei.co/npm/@peculiar/asn1-x509/)
[RFC 5280](https://tools.ietf.org/html/rfc5280) Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile.
## List of links
- [EntrustVersionInfo](http://ftp.gnome.org/mirror/archive/ftp.sunet.se/pub/security/dfnpca/docs/misc/Entrust/directory.pdf) extension

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[]);
}

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