import * as asn1js from "asn1js"; import * as pvutils from "pvutils"; import { EMPTY_STRING } from "./constants"; import { DigestInfo, DigestInfoJson, DigestInfoSchema } from "./DigestInfo"; import { AsnError } from "./errors"; import { PkiObject, PkiObjectParameters } from "./PkiObject"; import * as Schema from "./Schema";
public mac!: DigestInfo; public macSalt!: asn1js.OctetString; public iterations?: number;
/** * Initializes a new instance of the {@link MacData} class * @param parameters Initialization parameters
*/
constructor(parameters: MacDataParameters = {}) { super();
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 MAC): DigestInfo; publicstatic override defaultValues(memberName: typeof MAC_SALT): asn1js.OctetString; publicstatic override defaultValues(memberName: typeof ITERATIONS): number; publicstatic override defaultValues(memberName: string): any { switch (memberName) { case MAC: returnnew DigestInfo(); case MAC_SALT: returnnew asn1js.OctetString(); case ITERATIONS: return1; default: returnsuper.defaultValues(memberName);
}
}
/** * Compare values with default values for all class members * @param memberName String name for a class member * @param memberValue Value to compare with default value
*/ publicstatic compareWithDefault(memberName: string, memberValue: any): boolean { switch (memberName) { case MAC: return ((DigestInfo.compareWithDefault("digestAlgorithm", memberValue.digestAlgorithm)) &&
(DigestInfo.compareWithDefault("digest", memberValue.digest))); case MAC_SALT: return (memberValue.isEqual(MacData.defaultValues(memberName))); case ITERATIONS: return (memberValue === MacData.defaultValues(memberName)); default: returnsuper.defaultValues(memberName);
}
}
/** * @inheritdoc * @asn ASN.1 schema * ```asn * MacData ::= SEQUENCE { * mac DigestInfo, * macSalt OCTET STRING, * iterations INTEGER DEFAULT 1 * -- Note: The default is for historical reasons and its use is * -- deprecated. A higher value, like 1024 is recommended. * } *```
*/ publicstatic override schema(parameters: MacDataSchema = {}): Schema.SchemaType { const names = pvutils.getParametersValue<NonNullable<typeof parameters.names>>(parameters, "names", {});
// Get internal properties from parsed schema this.mac = new DigestInfo({ schema: asn1.result.mac }); this.macSalt = asn1.result.macSalt; if (ITERATIONS in asn1.result) this.iterations = asn1.result.iterations.valueBlock.valueDec;
}
public toSchema(): asn1js.Sequence { //#region Construct and return new ASN.1 schema for this object const outputArray: any[] = [ this.mac.toSchema(), this.macSalt
];
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.