@wildboar/pkcs
Version:
Public Key Cryptography Standard PDUs in TypeScript
41 lines (40 loc) • 1.44 kB
JavaScript
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);
};