UNPKG

@wildboar/pkcs

Version:
373 lines 19.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports._encode_TokenInfo = exports._decode_TokenInfo = exports._extension_additions_list_spec_for_TokenInfo = exports._root_component_type_list_2_spec_for_TokenInfo = exports._root_component_type_list_1_spec_for_TokenInfo = exports.TokenInfo = exports._encode_TokenInfo_version = exports._decode_TokenInfo_version = exports.v1 = exports.TokenInfo_version_v1 = exports._encode_TokenFlags = exports._decode_TokenFlags = exports.TokenFlags_readonly = exports.TokenFlags_prnGeneration = exports.TokenFlags_loginRequired = exports.TokenFlags_eidCompliant = exports.readonly = exports.prnGeneration = exports.loginRequired = exports.eidCompliant = exports._encode_SecurityEnvironmentInfo = exports._decode_SecurityEnvironmentInfo = exports.SecurityEnvironmentInfo = exports._encode_RecordInfo = exports._decode_RecordInfo = exports.RecordInfo = exports._encode_LastUpdate = exports._decode_LastUpdate = exports._encode_Label = exports._decode_Label = exports._encode_AlgorithmInfo = exports._decode_AlgorithmInfo = exports.AlgorithmInfo = void 0; /* eslint-disable */ const asn1_ts_1 = require("asn1-ts"); const $ = require("asn1-ts/dist/node/functional"); const AlgorithmInfo_ta_1 = require("../PKCS-15/AlgorithmInfo.ta"); const Label_ta_1 = require("../PKCS-15/Label.ta"); const LastUpdate_ta_1 = require("../PKCS-15/LastUpdate.ta"); const RecordInfo_ta_1 = require("../PKCS-15/RecordInfo.ta"); const SecurityEnvironmentInfo_ta_1 = require("../PKCS-15/SecurityEnvironmentInfo.ta"); const TokenFlags_ta_1 = require("../PKCS-15/TokenFlags.ta"); const TokenInfo_version_ta_1 = require("../PKCS-15/TokenInfo-version.ta"); var AlgorithmInfo_ta_2 = require("../PKCS-15/AlgorithmInfo.ta"); Object.defineProperty(exports, "AlgorithmInfo", { enumerable: true, get: function () { return AlgorithmInfo_ta_2.AlgorithmInfo; } }); Object.defineProperty(exports, "_decode_AlgorithmInfo", { enumerable: true, get: function () { return AlgorithmInfo_ta_2._decode_AlgorithmInfo; } }); Object.defineProperty(exports, "_encode_AlgorithmInfo", { enumerable: true, get: function () { return AlgorithmInfo_ta_2._encode_AlgorithmInfo; } }); var Label_ta_2 = require("../PKCS-15/Label.ta"); Object.defineProperty(exports, "_decode_Label", { enumerable: true, get: function () { return Label_ta_2._decode_Label; } }); Object.defineProperty(exports, "_encode_Label", { enumerable: true, get: function () { return Label_ta_2._encode_Label; } }); var LastUpdate_ta_2 = require("../PKCS-15/LastUpdate.ta"); Object.defineProperty(exports, "_decode_LastUpdate", { enumerable: true, get: function () { return LastUpdate_ta_2._decode_LastUpdate; } }); Object.defineProperty(exports, "_encode_LastUpdate", { enumerable: true, get: function () { return LastUpdate_ta_2._encode_LastUpdate; } }); var RecordInfo_ta_2 = require("../PKCS-15/RecordInfo.ta"); Object.defineProperty(exports, "RecordInfo", { enumerable: true, get: function () { return RecordInfo_ta_2.RecordInfo; } }); Object.defineProperty(exports, "_decode_RecordInfo", { enumerable: true, get: function () { return RecordInfo_ta_2._decode_RecordInfo; } }); Object.defineProperty(exports, "_encode_RecordInfo", { enumerable: true, get: function () { return RecordInfo_ta_2._encode_RecordInfo; } }); var SecurityEnvironmentInfo_ta_2 = require("../PKCS-15/SecurityEnvironmentInfo.ta"); Object.defineProperty(exports, "SecurityEnvironmentInfo", { enumerable: true, get: function () { return SecurityEnvironmentInfo_ta_2.SecurityEnvironmentInfo; } }); Object.defineProperty(exports, "_decode_SecurityEnvironmentInfo", { enumerable: true, get: function () { return SecurityEnvironmentInfo_ta_2._decode_SecurityEnvironmentInfo; } }); Object.defineProperty(exports, "_encode_SecurityEnvironmentInfo", { enumerable: true, get: function () { return SecurityEnvironmentInfo_ta_2._encode_SecurityEnvironmentInfo; } }); var TokenFlags_ta_2 = require("../PKCS-15/TokenFlags.ta"); Object.defineProperty(exports, "eidCompliant", { enumerable: true, get: function () { return TokenFlags_ta_2.eidCompliant; } }); /* IMPORTED_SHORT_NAMED_BIT */ Object.defineProperty(exports, "loginRequired", { enumerable: true, get: function () { return TokenFlags_ta_2.loginRequired; } }); /* IMPORTED_SHORT_NAMED_BIT */ Object.defineProperty(exports, "prnGeneration", { enumerable: true, get: function () { return TokenFlags_ta_2.prnGeneration; } }); /* IMPORTED_SHORT_NAMED_BIT */ Object.defineProperty(exports, "readonly", { enumerable: true, get: function () { return TokenFlags_ta_2.readonly; } }); /* IMPORTED_SHORT_NAMED_BIT */ Object.defineProperty(exports, "TokenFlags_eidCompliant", { enumerable: true, get: function () { return TokenFlags_ta_2.TokenFlags_eidCompliant; } }); /* IMPORTED_LONG_NAMED_BIT */ Object.defineProperty(exports, "TokenFlags_loginRequired", { enumerable: true, get: function () { return TokenFlags_ta_2.TokenFlags_loginRequired; } }); /* IMPORTED_LONG_NAMED_BIT */ Object.defineProperty(exports, "TokenFlags_prnGeneration", { enumerable: true, get: function () { return TokenFlags_ta_2.TokenFlags_prnGeneration; } }); /* IMPORTED_LONG_NAMED_BIT */ Object.defineProperty(exports, "TokenFlags_readonly", { enumerable: true, get: function () { return TokenFlags_ta_2.TokenFlags_readonly; } }); /* IMPORTED_LONG_NAMED_BIT */ Object.defineProperty(exports, "_decode_TokenFlags", { enumerable: true, get: function () { return TokenFlags_ta_2._decode_TokenFlags; } }); Object.defineProperty(exports, "_encode_TokenFlags", { enumerable: true, get: function () { return TokenFlags_ta_2._encode_TokenFlags; } }); var TokenInfo_version_ta_2 = require("../PKCS-15/TokenInfo-version.ta"); Object.defineProperty(exports, "TokenInfo_version_v1", { enumerable: true, get: function () { return TokenInfo_version_ta_2.TokenInfo_version_v1; } }); /* IMPORTED_LONG_NAMED_INTEGER */ Object.defineProperty(exports, "v1", { enumerable: true, get: function () { return TokenInfo_version_ta_2.v1; } }); /* IMPORTED_SHORT_NAMED_INTEGER */ Object.defineProperty(exports, "_decode_TokenInfo_version", { enumerable: true, get: function () { return TokenInfo_version_ta_2._decode_TokenInfo_version; } }); Object.defineProperty(exports, "_encode_TokenInfo_version", { enumerable: true, get: function () { return TokenInfo_version_ta_2._encode_TokenInfo_version; } }); /* START_OF_SYMBOL_DEFINITION TokenInfo */ /** * @summary TokenInfo * @description * * ### ASN.1 Definition: * * ```asn1 * TokenInfo ::= SEQUENCE { * version INTEGER {v1(0)} (v1,...), * serialNumber OCTET STRING, * manufacturerID Label OPTIONAL, * label [0] Label OPTIONAL, * tokenflags TokenFlags, * seInfo SEQUENCE OF SecurityEnvironmentInfo OPTIONAL, * recordInfo [1] RecordInfo OPTIONAL, * supportedAlgorithms [2] SEQUENCE OF AlgorithmInfo OPTIONAL, * ..., * issuerId [3] Label OPTIONAL, * holderId [4] Label OPTIONAL, * lastUpdate [5] LastUpdate OPTIONAL, * preferredLanguage PrintableString OPTIONAL -- In accordance with IETF RFC 1766 * } (CONSTRAINED BY { -- Each AlgorithmInfo.reference value must be unique -- }) * ``` * * @class */ class TokenInfo { constructor( /** * @summary `version`. * @public * @readonly */ version, /** * @summary `serialNumber`. * @public * @readonly */ serialNumber, /** * @summary `manufacturerID`. * @public * @readonly */ manufacturerID, /** * @summary `label`. * @public * @readonly */ label, /** * @summary `tokenflags`. * @public * @readonly */ tokenflags, /** * @summary `seInfo`. * @public * @readonly */ seInfo, /** * @summary `recordInfo`. * @public * @readonly */ recordInfo, /** * @summary `supportedAlgorithms`. * @public * @readonly */ supportedAlgorithms, /** * @summary `issuerId`. * @public * @readonly */ issuerId, /** * @summary `holderId`. * @public * @readonly */ holderId, /** * @summary `lastUpdate`. * @public * @readonly */ lastUpdate, /** * @summary `preferredLanguage`. * @public * @readonly */ preferredLanguage, /** * @summary Extensions that are not recognized. * @public * @readonly */ _unrecognizedExtensionsList = []) { this.version = version; this.serialNumber = serialNumber; this.manufacturerID = manufacturerID; this.label = label; this.tokenflags = tokenflags; this.seInfo = seInfo; this.recordInfo = recordInfo; this.supportedAlgorithms = supportedAlgorithms; this.issuerId = issuerId; this.holderId = holderId; this.lastUpdate = lastUpdate; this.preferredLanguage = preferredLanguage; this._unrecognizedExtensionsList = _unrecognizedExtensionsList; } /** * @summary Restructures an object into a TokenInfo * @description * * This takes an `object` and converts it to a `TokenInfo`. * * @public * @static * @method * @param {Object} _o An object having all of the keys and values of a `TokenInfo`. * @returns {TokenInfo} */ static _from_object(_o) { return new TokenInfo(_o.version, _o.serialNumber, _o.manufacturerID, _o.label, _o.tokenflags, _o.seInfo, _o.recordInfo, _o.supportedAlgorithms, _o.issuerId, _o.holderId, _o.lastUpdate, _o.preferredLanguage, _o._unrecognizedExtensionsList); } } exports.TokenInfo = TokenInfo; /* END_OF_SYMBOL_DEFINITION TokenInfo */ /* START_OF_SYMBOL_DEFINITION _root_component_type_list_1_spec_for_TokenInfo */ /** * @summary The Leading Root Component Types of TokenInfo * @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_TokenInfo = [ new $.ComponentSpec("version", false, $.hasTag(asn1_ts_1.ASN1TagClass.universal, 2), undefined, undefined), new $.ComponentSpec("serialNumber", false, $.hasTag(asn1_ts_1.ASN1TagClass.universal, 4), undefined, undefined), new $.ComponentSpec("manufacturerID", true, $.hasTag(asn1_ts_1.ASN1TagClass.universal, 12), undefined, undefined), new $.ComponentSpec("label", true, $.hasTag(asn1_ts_1.ASN1TagClass.context, 0), undefined, undefined), new $.ComponentSpec("tokenflags", false, $.hasTag(asn1_ts_1.ASN1TagClass.universal, 3), undefined, undefined), new $.ComponentSpec("seInfo", true, $.hasTag(asn1_ts_1.ASN1TagClass.universal, 16), undefined, undefined), new $.ComponentSpec("recordInfo", true, $.hasTag(asn1_ts_1.ASN1TagClass.context, 1), undefined, undefined), new $.ComponentSpec("supportedAlgorithms", true, $.hasTag(asn1_ts_1.ASN1TagClass.context, 2), undefined, undefined), ]; /* END_OF_SYMBOL_DEFINITION _root_component_type_list_1_spec_for_TokenInfo */ /* START_OF_SYMBOL_DEFINITION _root_component_type_list_2_spec_for_TokenInfo */ /** * @summary The Trailing Root Component Types of TokenInfo * @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_TokenInfo = []; /* END_OF_SYMBOL_DEFINITION _root_component_type_list_2_spec_for_TokenInfo */ /* START_OF_SYMBOL_DEFINITION _extension_additions_list_spec_for_TokenInfo */ /** * @summary The Extension Addition Component Types of TokenInfo * @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_TokenInfo = [ new $.ComponentSpec("issuerId", true, $.hasTag(asn1_ts_1.ASN1TagClass.context, 3), undefined, undefined), new $.ComponentSpec("holderId", true, $.hasTag(asn1_ts_1.ASN1TagClass.context, 4), undefined, undefined), new $.ComponentSpec("lastUpdate", true, $.hasTag(asn1_ts_1.ASN1TagClass.context, 5), undefined, undefined), new $.ComponentSpec("preferredLanguage", true, $.hasTag(asn1_ts_1.ASN1TagClass.universal, 19), undefined, undefined), ]; /* END_OF_SYMBOL_DEFINITION _extension_additions_list_spec_for_TokenInfo */ /* START_OF_SYMBOL_DEFINITION _cached_decoder_for_TokenInfo */ let _cached_decoder_for_TokenInfo = null; /* END_OF_SYMBOL_DEFINITION _cached_decoder_for_TokenInfo */ /* START_OF_SYMBOL_DEFINITION _decode_TokenInfo */ /** * @summary Decodes an ASN.1 element into a(n) TokenInfo * @function * @param {_Element} el The element being decoded. * @returns {TokenInfo} The decoded data structure. */ function _decode_TokenInfo(el) { if (!_cached_decoder_for_TokenInfo) { _cached_decoder_for_TokenInfo = function (el) { /* START_OF_SEQUENCE_COMPONENT_DECLARATIONS */ let version; let serialNumber; let manufacturerID; let label; let tokenflags; let seInfo; let recordInfo; let supportedAlgorithms; let issuerId; let holderId; let lastUpdate; let preferredLanguage; let _unrecognizedExtensionsList = []; /* END_OF_SEQUENCE_COMPONENT_DECLARATIONS */ /* START_OF_CALLBACKS_MAP */ const callbacks = { version: (_el) => { version = TokenInfo_version_ta_1._decode_TokenInfo_version(_el); }, serialNumber: (_el) => { serialNumber = $._decodeOctetString(_el); }, manufacturerID: (_el) => { manufacturerID = Label_ta_1._decode_Label(_el); }, label: (_el) => { label = $._decode_implicit(() => Label_ta_1._decode_Label)(_el); }, tokenflags: (_el) => { tokenflags = TokenFlags_ta_1._decode_TokenFlags(_el); }, seInfo: (_el) => { seInfo = $._decodeSequenceOf(() => SecurityEnvironmentInfo_ta_1._decode_SecurityEnvironmentInfo)(_el); }, recordInfo: (_el) => { recordInfo = $._decode_implicit(() => RecordInfo_ta_1._decode_RecordInfo)(_el); }, supportedAlgorithms: (_el) => { supportedAlgorithms = $._decode_implicit(() => $._decodeSequenceOf(() => AlgorithmInfo_ta_1._decode_AlgorithmInfo))(_el); }, issuerId: (_el) => { issuerId = $._decode_implicit(() => Label_ta_1._decode_Label)(_el); }, holderId: (_el) => { holderId = $._decode_implicit(() => Label_ta_1._decode_Label)(_el); }, lastUpdate: (_el) => { lastUpdate = $._decode_explicit(() => LastUpdate_ta_1._decode_LastUpdate)(_el); }, preferredLanguage: (_el) => { preferredLanguage = $._decodePrintableString(_el); }, }; /* END_OF_CALLBACKS_MAP */ $._parse_sequence(el, callbacks, exports._root_component_type_list_1_spec_for_TokenInfo, exports._extension_additions_list_spec_for_TokenInfo, exports._root_component_type_list_2_spec_for_TokenInfo, (ext) => { _unrecognizedExtensionsList.push(ext); }); return new TokenInfo( /* SEQUENCE_CONSTRUCTOR_CALL */ version, serialNumber, manufacturerID, label, tokenflags, seInfo, recordInfo, supportedAlgorithms, issuerId, holderId, lastUpdate, preferredLanguage, _unrecognizedExtensionsList); }; } return _cached_decoder_for_TokenInfo(el); } exports._decode_TokenInfo = _decode_TokenInfo; /* END_OF_SYMBOL_DEFINITION _decode_TokenInfo */ /* START_OF_SYMBOL_DEFINITION _cached_encoder_for_TokenInfo */ let _cached_encoder_for_TokenInfo = null; /* END_OF_SYMBOL_DEFINITION _cached_encoder_for_TokenInfo */ /* START_OF_SYMBOL_DEFINITION _encode_TokenInfo */ /** * @summary Encodes a(n) TokenInfo 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 TokenInfo, encoded as an ASN.1 Element. */ function _encode_TokenInfo(value, elGetter) { if (!_cached_encoder_for_TokenInfo) { _cached_encoder_for_TokenInfo = function (value, elGetter) { return $._encodeSequence([] .concat([ /* REQUIRED */ TokenInfo_version_ta_1._encode_TokenInfo_version(value.version, $.BER), /* REQUIRED */ $._encodeOctetString(value.serialNumber, $.BER), /* IF_ABSENT */ value.manufacturerID === undefined ? undefined : Label_ta_1._encode_Label(value.manufacturerID, $.BER), /* IF_ABSENT */ value.label === undefined ? undefined : $._encode_implicit(asn1_ts_1.ASN1TagClass.context, 0, () => Label_ta_1._encode_Label, $.BER)(value.label, $.BER), /* REQUIRED */ TokenFlags_ta_1._encode_TokenFlags(value.tokenflags, $.BER), /* IF_ABSENT */ value.seInfo === undefined ? undefined : $._encodeSequenceOf(() => SecurityEnvironmentInfo_ta_1._encode_SecurityEnvironmentInfo, $.BER)(value.seInfo, $.BER), /* IF_ABSENT */ value.recordInfo === undefined ? undefined : $._encode_implicit(asn1_ts_1.ASN1TagClass.context, 1, () => RecordInfo_ta_1._encode_RecordInfo, $.BER)(value.recordInfo, $.BER), /* IF_ABSENT */ value.supportedAlgorithms === undefined ? undefined : $._encode_implicit(asn1_ts_1.ASN1TagClass.context, 2, () => $._encodeSequenceOf(() => AlgorithmInfo_ta_1._encode_AlgorithmInfo, $.BER), $.BER)(value.supportedAlgorithms, $.BER), ], [ /* IF_ABSENT */ value.issuerId === undefined ? undefined : $._encode_implicit(asn1_ts_1.ASN1TagClass.context, 3, () => Label_ta_1._encode_Label, $.BER)(value.issuerId, $.BER), /* IF_ABSENT */ value.holderId === undefined ? undefined : $._encode_implicit(asn1_ts_1.ASN1TagClass.context, 4, () => Label_ta_1._encode_Label, $.BER)(value.holderId, $.BER), /* IF_ABSENT */ value.lastUpdate === undefined ? undefined : $._encode_explicit(asn1_ts_1.ASN1TagClass.context, 5, () => LastUpdate_ta_1._encode_LastUpdate, $.BER)(value.lastUpdate, $.BER), /* IF_ABSENT */ value.preferredLanguage === undefined ? undefined : $._encodePrintableString(value.preferredLanguage, $.BER), ], value._unrecognizedExtensionsList ? value._unrecognizedExtensionsList : []) .filter((c) => !!c), $.BER); }; } return _cached_encoder_for_TokenInfo(value, elGetter); } exports._encode_TokenInfo = _encode_TokenInfo; /* END_OF_SYMBOL_DEFINITION _encode_TokenInfo */ /* eslint-enable */ //# sourceMappingURL=TokenInfo.ta.js.map