@peculiar/fortify-client-core
Version:
Fortify client core API for quickly connect to Fortify App
39 lines (38 loc) • 1.53 kB
JavaScript
/**
* @license
* Copyright (c) Peculiar Ventures, LLC.
*
* This source code is licensed under the BSD 3-Clause license found in the
* LICENSE file in the root directory of this source tree.
*/
import { Extension as AsnExtension, id_ce_keyUsage, KeyUsage, id_ce_certificatePolicies, CertificatePolicies, id_ce_basicConstraints, BasicConstraints, } from '@peculiar/asn1-x509';
import { id_pe_qcStatements, QCStatements, } from '@peculiar/asn1-x509-qualified';
import { AsnParser } from '@peculiar/asn1-schema';
import { AsnData } from './asn_data';
export class Extension extends AsnData {
value;
constructor(raw) {
super(raw, AsnExtension);
const asnExtnValue = this.getAsnExtnValue();
switch (this.asn.extnID) {
case id_ce_keyUsage:
this.value = AsnParser.parse(asnExtnValue, KeyUsage);
break;
case id_ce_certificatePolicies:
this.value = AsnParser.parse(asnExtnValue, CertificatePolicies);
break;
case id_pe_qcStatements:
this.value = AsnParser.parse(asnExtnValue, QCStatements);
break;
case id_ce_basicConstraints:
this.value = AsnParser.parse(asnExtnValue, BasicConstraints);
break;
default:
// eslint-disable-next-line @typescript-eslint/no-explicit-any
this.value = asnExtnValue;
}
}
getAsnExtnValue() {
return this.asn.extnValue.buffer;
}
}