import * as asn1js from "asn1js"; import * as pvutils from "pvutils"; import { EMPTY_STRING } from "./constants"; import { AsnError } from "./errors"; import { GeneralName, GeneralNameJson, GeneralNameSchema } from "./GeneralName"; import { PkiObject, PkiObjectParameters } from "./PkiObject"; import * as Schema from "./Schema";
export interface IAccessDescription { /** * The type and format of the information are specified by the accessMethod field. This profile defines two accessMethod OIDs: id-ad-caIssuers and id-ad-ocsp
*/
accessMethod: string; /** * The accessLocation field specifies the location of the information
*/
accessLocation: GeneralName;
}
export type AccessDescriptionParameters = PkiObjectParameters & Partial<IAccessDescription>;
/** * Represents the AccessDescription structure described in [RFC5280](https://datatracker.ietf.org/doc/html/rfc5280) * * The authority information access extension indicates how to access * information and services for the issuer of the certificate in which * the extension appears. Information and services may include on-line * validation services and CA policy data. This extension may be included in * end entity or CA certificates. Conforming CAs MUST mark this * extension as non-critical.
*/
export class AccessDescription extends PkiObject implements IAccessDescription {
public accessMethod!: string; public accessLocation!: GeneralName;
/** * Initializes a new instance of the {@link AccessDescription} class * @param parameters Initialization parameters
*/
constructor(parameters: AccessDescriptionParameters = {}) { 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 ACCESS_METHOD): string; publicstatic override defaultValues(memberName: typeof ACCESS_LOCATION): GeneralName; publicstatic override defaultValues(memberName: string): any { switch (memberName) { case ACCESS_METHOD: return EMPTY_STRING; case ACCESS_LOCATION: returnnew GeneralName(); default: returnsuper.defaultValues(memberName);
}
}
// Get internal properties from parsed schema this.accessMethod = asn1.result.accessMethod.valueBlock.toString(); this.accessLocation = new GeneralName({ schema: asn1.result.accessLocation });
}
public toSchema(): asn1js.Sequence { //#region Construct and return new ASN.1 schema for this object return (new asn1js.Sequence({
value: [ new asn1js.ObjectIdentifier({ value: this.accessMethod }), this.accessLocation.toSchema()
]
})); //#endregion
}
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.