From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- third_party/js/PKI.js/src/ECNamedCurves.ts | 53 ++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 third_party/js/PKI.js/src/ECNamedCurves.ts (limited to 'third_party/js/PKI.js/src/ECNamedCurves.ts') diff --git a/third_party/js/PKI.js/src/ECNamedCurves.ts b/third_party/js/PKI.js/src/ECNamedCurves.ts new file mode 100644 index 0000000000..123bad1558 --- /dev/null +++ b/third_party/js/PKI.js/src/ECNamedCurves.ts @@ -0,0 +1,53 @@ +export interface ECNamedCurve { + /** + * The curve ASN.1 object identifier + */ + id: string; + /** + * The name of the curve + */ + name: string; + /** + * The coordinate length in bytes + */ + size: number; +} + +export class ECNamedCurves { + + public static readonly namedCurves: Record = {}; + + /** + * Registers an ECC named curve + * @param name The name o the curve + * @param id The curve ASN.1 object identifier + * @param size The coordinate length in bytes + */ + public static register(name: string, id: string, size: number): void { + this.namedCurves[name.toLowerCase()] = this.namedCurves[id] = { name, id, size }; + } + + /** + * Returns an ECC named curve object + * @param nameOrId Name or identifier of the named curve + * @returns + */ + static find(nameOrId: string): ECNamedCurve | null { + return this.namedCurves[nameOrId.toLowerCase()] || null; + } + + static { + // Register default curves + + // NIST + this.register("P-256", "1.2.840.10045.3.1.7", 32); + this.register("P-384", "1.3.132.0.34", 48); + this.register("P-521", "1.3.132.0.35", 66); + + // Brainpool + this.register("brainpoolP256r1", "1.3.36.3.3.2.8.1.1.7", 32); + this.register("brainpoolP384r1", "1.3.36.3.3.2.8.1.1.11", 48); + this.register("brainpoolP512r1", "1.3.36.3.3.2.8.1.1.13", 64); + } + +} -- cgit v1.2.3