UNPKG

@wildboar/pki-stub

Version:
237 lines (236 loc) 6.68 kB
import { OPTIONAL, ASN1Element as _Element } from "asn1-ts"; import * as $ from "asn1-ts/dist/node/functional"; import { Version } from "../PKI-Stub/Version.ta"; import { CertificateSerialNumber } from "../PKI-Stub/CertificateSerialNumber.ta"; import { AlgorithmIdentifier } from "../PKI-Stub/AlgorithmIdentifier.ta"; import { Name } from "../PKI-Stub/Name.ta"; import { Validity } from "../PKI-Stub/Validity.ta"; import { SubjectPublicKeyInfo } from "../PKI-Stub/SubjectPublicKeyInfo.ta"; import { UniqueIdentifier } from "../PKI-Stub/UniqueIdentifier.ta"; import { Extensions } from "../PKI-Stub/Extensions.ta"; /** * @summary TBSCertificate * @description * * ### ASN.1 Definition: * * ```asn1 * TBSCertificate ::= SEQUENCE { * version [0] Version DEFAULT v1, * serialNumber CertificateSerialNumber, * signature AlgorithmIdentifier{{SupportedAlgorithms}}, * issuer Name, * validity Validity, * subject Name, * subjectPublicKeyInfo SubjectPublicKeyInfo, * issuerUniqueIdentifier [1] IMPLICIT UniqueIdentifier OPTIONAL, * ..., * --[[2: if present, version shall be v2 or v3 * subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL--]]--, * --[[3: if present, version shall be v2 or v3 * extensions [3] Extensions OPTIONAL --]] * -- If present, version shall be v3]] * } (CONSTRAINED BY { -- shall be DER encoded -- } ) * ``` * * @class */ export declare class TBSCertificate { /** * @summary `version`. * @public * @readonly */ readonly version: OPTIONAL<Version>; /** * @summary `serialNumber`. * @public * @readonly */ readonly serialNumber: CertificateSerialNumber; /** * @summary `signature`. * @public * @readonly */ readonly signature: AlgorithmIdentifier; /** * @summary `issuer`. * @public * @readonly */ readonly issuer: Name; /** * @summary `validity`. * @public * @readonly */ readonly validity: Validity; /** * @summary `subject`. * @public * @readonly */ readonly subject: Name; /** * @summary `subjectPublicKeyInfo`. * @public * @readonly */ readonly subjectPublicKeyInfo: SubjectPublicKeyInfo; /** * @summary `issuerUniqueIdentifier`. * @public * @readonly */ readonly issuerUniqueIdentifier?: OPTIONAL<UniqueIdentifier>; /** * @summary `subjectUniqueIdentifier`. * @public * @readonly */ readonly subjectUniqueIdentifier?: OPTIONAL<UniqueIdentifier>; /** * @summary `extensions`. * @public * @readonly */ readonly extensions?: OPTIONAL<Extensions>; /** * @summary Extensions that are not recognized. * @public * @readonly */ readonly _unrecognizedExtensionsList: _Element[]; constructor( /** * @summary `version`. * @public * @readonly */ version: OPTIONAL<Version>, /** * @summary `serialNumber`. * @public * @readonly */ serialNumber: CertificateSerialNumber, /** * @summary `signature`. * @public * @readonly */ signature: AlgorithmIdentifier, /** * @summary `issuer`. * @public * @readonly */ issuer: Name, /** * @summary `validity`. * @public * @readonly */ validity: Validity, /** * @summary `subject`. * @public * @readonly */ subject: Name, /** * @summary `subjectPublicKeyInfo`. * @public * @readonly */ subjectPublicKeyInfo: SubjectPublicKeyInfo, /** * @summary `issuerUniqueIdentifier`. * @public * @readonly */ issuerUniqueIdentifier?: OPTIONAL<UniqueIdentifier>, /** * @summary `subjectUniqueIdentifier`. * @public * @readonly */ subjectUniqueIdentifier?: OPTIONAL<UniqueIdentifier>, /** * @summary `extensions`. * @public * @readonly */ extensions?: OPTIONAL<Extensions>, /** * @summary Extensions that are not recognized. * @public * @readonly */ _unrecognizedExtensionsList?: _Element[]); /** * @summary Restructures an object into a TBSCertificate * @description * * This takes an `object` and converts it to a `TBSCertificate`. * * @public * @static * @method * @param {Object} _o An object having all of the keys and values of a `TBSCertificate`. * @returns {TBSCertificate} */ static _from_object(_o: { [_K in keyof TBSCertificate]: TBSCertificate[_K]; }): TBSCertificate; /** * @summary Getter that returns the default value for `version`. * @public * @static * @method */ static get _default_value_for_version(): import("asn1-ts").INTEGER; } /** * @summary The Leading Root Component Types of TBSCertificate * @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 */ export declare const _root_component_type_list_1_spec_for_TBSCertificate: $.ComponentSpec[]; /** * @summary The Trailing Root Component Types of TBSCertificate * @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 */ export declare const _root_component_type_list_2_spec_for_TBSCertificate: $.ComponentSpec[]; /** * @summary The Extension Addition Component Types of TBSCertificate * @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 */ export declare const _extension_additions_list_spec_for_TBSCertificate: $.ComponentSpec[]; /** * @summary Decodes an ASN.1 element into a(n) TBSCertificate * @function * @param {_Element} el The element being decoded. * @returns {TBSCertificate} The decoded data structure. */ export declare function _decode_TBSCertificate(el: _Element): TBSCertificate; /** * @summary Encodes a(n) TBSCertificate 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 TBSCertificate, encoded as an ASN.1 Element. */ export declare function _encode_TBSCertificate(value: TBSCertificate, elGetter: $.ASN1Encoder<TBSCertificate>): _Element;