UNPKG

@wildboar/pkcs

Version:
41 lines (40 loc) 1.44 kB
import * as asn1 from "@wildboar/asn1"; import * as $ from "@wildboar/asn1/functional"; import { _decode_GeneralName, _encode_GeneralName, } from "@wildboar/x500/CertificateExtensions"; // CertId ::= SEQUENCE { // issuer GeneralName, // serialNumber INTEGER } export class CertId { issuer; serialNumber; constructor(issuer, serialNumber) { this.issuer = issuer; this.serialNumber = serialNumber; } } export const _root_component_type_list_1_spec_for_CertId = [ new $.ComponentSpec("issuer", false, $.hasAnyTag), new $.ComponentSpec("serialNumber", false, $.hasTag(asn1.ASN1TagClass.universal, asn1.ASN1UniversalType.octetString)), ]; export const _encode_CertId = function (value) { return $._encodeSequence([] .concat([ _encode_GeneralName(value.issuer, $.BER), $._encodeBigInt(value.serialNumber, $.BER), ]) .filter((c) => !!c), $.BER); }; export const _decode_CertId = function (el) { let issuer; let serialNumber; const callbacks = { issuer: (_el) => { issuer = $._decode_implicit(() => _decode_GeneralName)(_el); }, serialNumber: (_el) => { serialNumber = $._decode_implicit(() => $._decodeBigInt)(_el); }, }; $._parse_sequence(el, callbacks, _root_component_type_list_1_spec_for_CertId, [], [], undefined); return new CertId(issuer, serialNumber); };