import * as asn1js from "asn1js"; import * as pvutils from "pvutils"; import * as Schema from "./Schema"; import { ExtensionParsedValue, ExtensionValueFactory } from "./ExtensionValueFactory"; import { PkiObject, PkiObjectParameters } from "./PkiObject"; import { AsnError } from "./errors"; import { EMPTY_STRING } from "./constants";
public extnID!: string; public critical!: boolean; public extnValue!: asn1js.OctetString;
private _parsedValue?: ExtensionParsedValue | null; public get parsedValue(): ExtensionParsedValue | undefined { if (this._parsedValue === undefined) { // Get PARSED_VALUE for well-known extensions const parsedValue = ExtensionValueFactory.fromBER(this.extnID, this.extnValue.valueBlock.valueHexView); this._parsedValue = parsedValue;
}
returnthis._parsedValue || undefined;
} public set parsedValue(value: ExtensionParsedValue | undefined) { this._parsedValue = value;
}
/** * Initializes a new instance of the {@link Extension} class * @param parameters Initialization parameters
*/
constructor(parameters: ExtensionParameters = {}) { super();
this.extnID = pvutils.getParametersValue(parameters, EXTN_ID, Extension.defaultValues(EXTN_ID)); this.critical = pvutils.getParametersValue(parameters, CRITICAL, Extension.defaultValues(CRITICAL)); if (EXTN_VALUE in parameters) { this.extnValue = new asn1js.OctetString({ valueHex: parameters.extnValue });
} else { this.extnValue = Extension.defaultValues(EXTN_VALUE);
} if (PARSED_VALUE in parameters) { this.parsedValue = pvutils.getParametersValue(parameters, PARSED_VALUE, Extension.defaultValues(PARSED_VALUE));
}
if (parameters.schema) { this.fromSchema(parameters.schema);
}
}
/** * Returns default values for all class members * @param memberName String name for a class member * @returns Default value
*/ publicstatic override defaultValues(memberName: typeof EXTN_ID): string; publicstatic override defaultValues(memberName: typeof CRITICAL): boolean; publicstatic override defaultValues(memberName: typeof EXTN_VALUE): asn1js.OctetString; publicstatic override defaultValues(memberName: typeof PARSED_VALUE): ExtensionParsedValue; publicstatic override defaultValues(memberName: string): any { switch (memberName) { case EXTN_ID: return EMPTY_STRING; case CRITICAL: returnfalse; case EXTN_VALUE: returnnew asn1js.OctetString(); case PARSED_VALUE: return {}; default: returnsuper.defaultValues(memberName);
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.