UNPKG

@wildboar/pki-stub

Version:
266 lines 11.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports._encode_TBSAttributeCertificate = exports._decode_TBSAttributeCertificate = exports._extension_additions_list_spec_for_TBSAttributeCertificate = exports._root_component_type_list_2_spec_for_TBSAttributeCertificate = exports._root_component_type_list_1_spec_for_TBSAttributeCertificate = exports.TBSAttributeCertificate = void 0; /* eslint-disable */ const asn1_ts_1 = require("asn1-ts"); const $ = require("asn1-ts/dist/node/functional"); const AttCertVersion_ta_1 = require("../PKI-Stub/AttCertVersion.ta"); const Holder_ta_1 = require("../PKI-Stub/Holder.ta"); const AttCertIssuer_ta_1 = require("../PKI-Stub/AttCertIssuer.ta"); const AlgorithmIdentifier_ta_1 = require("../PKI-Stub/AlgorithmIdentifier.ta"); const CertificateSerialNumber_ta_1 = require("../PKI-Stub/CertificateSerialNumber.ta"); const AttCertValidityPeriod_ta_1 = require("../PKI-Stub/AttCertValidityPeriod.ta"); const Attribute_ta_1 = require("../PKI-Stub/Attribute.ta"); const UniqueIdentifier_ta_1 = require("../PKI-Stub/UniqueIdentifier.ta"); const Extensions_ta_1 = require("../PKI-Stub/Extensions.ta"); /* START_OF_SYMBOL_DEFINITION TBSAttributeCertificate */ /** * @summary TBSAttributeCertificate * @description * * ### ASN.1 Definition: * * ```asn1 * TBSAttributeCertificate ::= SEQUENCE { * version AttCertVersion, -- version is v2 * holder Holder, * issuer AttCertIssuer, * signature AlgorithmIdentifier{{SupportedAlgorithms}}, * serialNumber CertificateSerialNumber, * attrCertValidityPeriod AttCertValidityPeriod, * attributes SEQUENCE OF Attribute{{SupportedAttributes}}, * issuerUniqueID UniqueIdentifier OPTIONAL, * ..., * ..., * extensions Extensions OPTIONAL * } (CONSTRAINED BY { -- shall be DER encoded -- } ) * ``` * * @class */ class TBSAttributeCertificate { constructor( /** * @summary `version`. * @public * @readonly */ version, /** * @summary `holder`. * @public * @readonly */ holder, /** * @summary `issuer`. * @public * @readonly */ issuer, /** * @summary `signature`. * @public * @readonly */ signature, /** * @summary `serialNumber`. * @public * @readonly */ serialNumber, /** * @summary `attrCertValidityPeriod`. * @public * @readonly */ attrCertValidityPeriod, /** * @summary `attributes`. * @public * @readonly */ attributes, /** * @summary `issuerUniqueID`. * @public * @readonly */ issuerUniqueID, /** * @summary Extensions that are not recognized. * @public * @readonly */ _unrecognizedExtensionsList = [], /** * @summary `extensions`. * @public * @readonly */ extensions) { this.version = version; this.holder = holder; this.issuer = issuer; this.signature = signature; this.serialNumber = serialNumber; this.attrCertValidityPeriod = attrCertValidityPeriod; this.attributes = attributes; this.issuerUniqueID = issuerUniqueID; this._unrecognizedExtensionsList = _unrecognizedExtensionsList; this.extensions = extensions; } /** * @summary Restructures an object into a TBSAttributeCertificate * @description * * This takes an `object` and converts it to a `TBSAttributeCertificate`. * * @public * @static * @method * @param {Object} _o An object having all of the keys and values of a `TBSAttributeCertificate`. * @returns {TBSAttributeCertificate} */ static _from_object(_o) { return new TBSAttributeCertificate(_o.version, _o.holder, _o.issuer, _o.signature, _o.serialNumber, _o.attrCertValidityPeriod, _o.attributes, _o.issuerUniqueID, _o._unrecognizedExtensionsList, _o.extensions); } } exports.TBSAttributeCertificate = TBSAttributeCertificate; /* END_OF_SYMBOL_DEFINITION TBSAttributeCertificate */ /* START_OF_SYMBOL_DEFINITION _root_component_type_list_1_spec_for_TBSAttributeCertificate */ /** * @summary The Leading Root Component Types of TBSAttributeCertificate * @description * * This is an array of `ComponentSpec`s that define how to decode the leading root component type list of a SET or SEQUENCE. * * @constant */ exports._root_component_type_list_1_spec_for_TBSAttributeCertificate = [ new $.ComponentSpec("version", false, $.hasTag(asn1_ts_1.ASN1TagClass.universal, 2), undefined, undefined), new $.ComponentSpec("holder", false, $.hasTag(asn1_ts_1.ASN1TagClass.universal, 16), undefined, undefined), new $.ComponentSpec("issuer", false, $.hasTag(asn1_ts_1.ASN1TagClass.context, 0), undefined, undefined), new $.ComponentSpec("signature", false, $.hasTag(asn1_ts_1.ASN1TagClass.universal, 16), undefined, undefined), new $.ComponentSpec("serialNumber", false, $.hasTag(asn1_ts_1.ASN1TagClass.universal, 2), undefined, undefined), new $.ComponentSpec("attrCertValidityPeriod", false, $.hasTag(asn1_ts_1.ASN1TagClass.universal, 16), undefined, undefined), new $.ComponentSpec("attributes", false, $.hasTag(asn1_ts_1.ASN1TagClass.universal, 16), undefined, undefined), new $.ComponentSpec("issuerUniqueID", true, $.hasTag(asn1_ts_1.ASN1TagClass.universal, 3), undefined, undefined), ]; /* END_OF_SYMBOL_DEFINITION _root_component_type_list_1_spec_for_TBSAttributeCertificate */ /* START_OF_SYMBOL_DEFINITION _root_component_type_list_2_spec_for_TBSAttributeCertificate */ /** * @summary The Trailing Root Component Types of TBSAttributeCertificate * @description * * This is an array of `ComponentSpec`s that define how to decode the trailing root component type list of a SET or SEQUENCE. * * @constant */ exports._root_component_type_list_2_spec_for_TBSAttributeCertificate = [ new $.ComponentSpec("extensions", true, $.hasTag(asn1_ts_1.ASN1TagClass.universal, 16), undefined, undefined), ]; /* END_OF_SYMBOL_DEFINITION _root_component_type_list_2_spec_for_TBSAttributeCertificate */ /* START_OF_SYMBOL_DEFINITION _extension_additions_list_spec_for_TBSAttributeCertificate */ /** * @summary The Extension Addition Component Types of TBSAttributeCertificate * @description * * This is an array of `ComponentSpec`s that define how to decode the extension addition component type list of a SET or SEQUENCE. * * @constant */ exports._extension_additions_list_spec_for_TBSAttributeCertificate = []; /* END_OF_SYMBOL_DEFINITION _extension_additions_list_spec_for_TBSAttributeCertificate */ /* START_OF_SYMBOL_DEFINITION _decode_TBSAttributeCertificate */ /** * @summary Decodes an ASN.1 element into a(n) TBSAttributeCertificate * @function * @param {_Element} el The element being decoded. * @returns {TBSAttributeCertificate} The decoded data structure. */ function _decode_TBSAttributeCertificate(el) { /* START_OF_SEQUENCE_COMPONENT_DECLARATIONS */ let version; let holder; let issuer; let signature; let serialNumber; let attrCertValidityPeriod; let attributes; let issuerUniqueID; let _unrecognizedExtensionsList = []; let extensions; /* END_OF_SEQUENCE_COMPONENT_DECLARATIONS */ /* START_OF_CALLBACKS_MAP */ const callbacks = { version: (_el) => { version = AttCertVersion_ta_1._decode_AttCertVersion(_el); }, holder: (_el) => { holder = Holder_ta_1._decode_Holder(_el); }, issuer: (_el) => { issuer = AttCertIssuer_ta_1._decode_AttCertIssuer(_el); }, signature: (_el) => { signature = AlgorithmIdentifier_ta_1._decode_AlgorithmIdentifier(_el); }, serialNumber: (_el) => { serialNumber = CertificateSerialNumber_ta_1._decode_CertificateSerialNumber(_el); }, attrCertValidityPeriod: (_el) => { attrCertValidityPeriod = AttCertValidityPeriod_ta_1._decode_AttCertValidityPeriod(_el); }, attributes: (_el) => { attributes = $._decodeSequenceOf(() => Attribute_ta_1._decode_Attribute)(_el); }, issuerUniqueID: (_el) => { issuerUniqueID = UniqueIdentifier_ta_1._decode_UniqueIdentifier(_el); }, extensions: (_el) => { extensions = Extensions_ta_1._decode_Extensions(_el); }, }; /* END_OF_CALLBACKS_MAP */ $._parse_sequence(el, callbacks, exports._root_component_type_list_1_spec_for_TBSAttributeCertificate, exports._extension_additions_list_spec_for_TBSAttributeCertificate, exports._root_component_type_list_2_spec_for_TBSAttributeCertificate, (ext) => { _unrecognizedExtensionsList.push(ext); }); return new TBSAttributeCertificate( /* SEQUENCE_CONSTRUCTOR_CALL */ version, holder, issuer, signature, serialNumber, attrCertValidityPeriod, attributes, issuerUniqueID, _unrecognizedExtensionsList, extensions); } exports._decode_TBSAttributeCertificate = _decode_TBSAttributeCertificate; /* END_OF_SYMBOL_DEFINITION _decode_TBSAttributeCertificate */ /* START_OF_SYMBOL_DEFINITION _encode_TBSAttributeCertificate */ /** * @summary Encodes a(n) TBSAttributeCertificate into an ASN.1 Element. * @function * @param {value} el The element being decoded. * @param elGetter A function that can be used to get new ASN.1 elements. * @returns {_Element} The TBSAttributeCertificate, encoded as an ASN.1 Element. */ function _encode_TBSAttributeCertificate(value, elGetter) { var _a, _b; const components = [ /* REQUIRED */ AttCertVersion_ta_1._encode_AttCertVersion(value.version, $.BER), /* REQUIRED */ Holder_ta_1._encode_Holder(value.holder, $.BER), /* REQUIRED */ AttCertIssuer_ta_1._encode_AttCertIssuer(value.issuer, $.BER), /* REQUIRED */ AlgorithmIdentifier_ta_1._encode_AlgorithmIdentifier(value.signature, $.BER), /* REQUIRED */ CertificateSerialNumber_ta_1._encode_CertificateSerialNumber(value.serialNumber, $.BER), /* REQUIRED */ AttCertValidityPeriod_ta_1._encode_AttCertValidityPeriod(value.attrCertValidityPeriod, $.BER), /* REQUIRED */ $._encodeSequenceOf(() => Attribute_ta_1._encode_Attribute, $.BER)(value.attributes, $.BER), ]; if (value.issuerUniqueID) { components.push(UniqueIdentifier_ta_1._encode_UniqueIdentifier(value.issuerUniqueID, $.BER)); } components.push(...(_a = value._unrecognizedExtensionsList) !== null && _a !== void 0 ? _a : []); if ((_b = value.extensions) === null || _b === void 0 ? void 0 : _b.length) { components.push(Extensions_ta_1._encode_Extensions(value.extensions, $.BER)); } return $._encodeSequence(components, $.BER); } exports._encode_TBSAttributeCertificate = _encode_TBSAttributeCertificate; /* END_OF_SYMBOL_DEFINITION _encode_TBSAttributeCertificate */ /* eslint-enable */ //# sourceMappingURL=TBSAttributeCertificate.ta.js.map