From 6c6c02da4e07810d4624a8b46c9cf0aa1e12e333 Mon Sep 17 00:00:00 2001 From: Slava Bacherikov Date: Wed, 7 Feb 2018 22:03:32 +0200 Subject: [PATCH] Rename solvers, make names unique --- html/index.html | 2 +- src/dell/index.ts | 9 ++++++--- src/fsi.ts | 9 ++++++--- src/hpmini.ts | 3 ++- src/insyde.ts | 3 ++- src/keygen.spec.ts | 12 +++++++++++- src/phoenix.ts | 23 +++++++++++++++-------- src/samsung.ts | 3 ++- src/sony.ts | 3 ++- 9 files changed, 47 insertions(+), 20 deletions(-) diff --git a/html/index.html b/html/index.html index 2fc6b06..c3805cd 100644 --- a/html/index.html +++ b/html/index.html @@ -37,7 +37,7 @@


- +
diff --git a/src/dell/index.ts b/src/dell/index.ts index d9cf9f3..13d5c31 100644 --- a/src/dell/index.ts +++ b/src/dell/index.ts @@ -198,14 +198,16 @@ function checkDellTag(tag: string): boolean { } export let hddOldSolver = makeSolver({ - name: "Dell HDD Serial Number (old)", + name: "dellHDDOld", + description: "Dell HDD Serial Number (old)", examples: ["12345678901"], inputValidator: (s) => s.length === 11, fun: (s) => [keygenHddOld(s)] }); export let dellSolver = makeSolver({ - name: "Dell from serial number", + name: "dellTag", + description: "Dell from serial number", examples: ["1234567-595B", "1234567-1D3B"], inputValidator: (password: string) => { if (password.length !== 11) { @@ -221,7 +223,8 @@ export let dellSolver = makeSolver({ }); export let dellHddSolver = makeSolver({ - name: "Dell from hdd serial number", + name: "dellHddNew", + description: "Dell from hdd serial number", examples: ["1234567890A-595B"], inputValidator: (password: string) => { if (password.length !== 15) { diff --git a/src/fsi.ts b/src/fsi.ts index 4be68f5..6fcdccc 100644 --- a/src/fsi.ts +++ b/src/fsi.ts @@ -123,21 +123,24 @@ function fsi20DecNewKeygen(serial: string): string { } export let fsiHexSolver = makeSolver({ - name: "Fujitsu-Siemens hexdigits", + name: "fsiHex", + description: "Fujitsu-Siemens hexdigits", examples: ["DEADBEEF", "AAAA-BBBB-CCCC-DEAD-BEEF"], inputValidator: (s) => /^([0-9ABCDEF]{20}|[0-9ABCDEF]{8})$/i.test(s), fun: (code: string) => [fsiHexKeygen(code)] }); export let fsi20DecNewSolver = makeSolver({ - name: "Fujitsu-Siemens decimal new", + name: "fsiDecNew", + description: "Fujitsu-Siemens decimal new", examples: ["1234-4321-1234-4321-1234"], inputValidator: (s) => /^\d{20}$/i.test(s), fun: (code: string) => [fsi20DecNewKeygen(code)] }); export let fsi20DecOldSolver = makeSolver({ - name: "Fujitsu-Siemens decimal old", + name: "fsiDecOld", + description: "Fujitsu-Siemens decimal old", examples: ["1234-4321-1234-4321-1234"], inputValidator: (s) => /^\d{20}$/i.test(s), fun: (code: string) => [fsi20DecOldKeygen(code)] diff --git a/src/hpmini.ts b/src/hpmini.ts index 609936c..b5ce0ed 100644 --- a/src/hpmini.ts +++ b/src/hpmini.ts @@ -36,7 +36,8 @@ function hpMiniKeygen(serial: string): string[] { } export let hpMiniSolver = makeSolver({ - name: "HPMini", + name: "hpMini", + description: "HP/Compaq Mini Netbooks", examples: ["CNU1234ABC"], inputValidator: (s) => /^[0-9A-Z]{10}$/i.test(s), fun: hpMiniKeygen diff --git a/src/insyde.ts b/src/insyde.ts index eb2623e..8bec931 100644 --- a/src/insyde.ts +++ b/src/insyde.ts @@ -25,7 +25,8 @@ function insydeKeygen(serial: string): string[] { } export let insydeSolver = makeSolver({ - name: "Insyde H2O", + name: "insydeH2O", + description: "Insyde H2O BIOS (Acer, HP)", examples: ["03133610"], inputValidator: (s) => /^\d{8}$/i.test(s), fun: insydeKeygen diff --git a/src/keygen.spec.ts b/src/keygen.spec.ts index 1f8396a..bc52374 100644 --- a/src/keygen.spec.ts +++ b/src/keygen.spec.ts @@ -1,8 +1,18 @@ -import { keygen } from "./keygen"; +import { keygen, solvers } from "./keygen"; describe("BIOS keygen", () => { it("Sony key for 1234567 is 9648669", () => { let keysList = keygen("1234567"); expect(keysList[0][1]).toEqual(["9648669"]); }); + it("Solvers names should be unique", () => { + let names: {[key: string]: boolean} = {}; + solvers.forEach((solver) => { + if (solver.biosName in names) { + throw Error(`${solver.biosName} isn't unique name`); + } else { + names[solver.biosName] = true; + } + }); + }); }); diff --git a/src/phoenix.ts b/src/phoenix.ts index f5de4d2..56e91ad 100644 --- a/src/phoenix.ts +++ b/src/phoenix.ts @@ -188,49 +188,56 @@ function makePhoenixSolver(description?: PhoenixBios): PhoenixSolver { solver.calculateHash = calculateHash; if (description.description) { - solver.description = description; + solver.description = description.description; } return solver as PhoenixSolver; } export let phoenixSolver = makePhoenixSolver({ - name: "Generic Phoenix" + name: "phoenix", + description: "Generic Phoenix" }); export let phoenixHPCompaqSolver = makePhoenixSolver({ - name: "HP/Compaq Phoenix BIOS", + name: "phoenixHP", + description: "HP/Compaq Phoenix BIOS", salt: 17232 }); export let phoenixFsiSolver = makePhoenixSolver({ - name: "Fujitsu-Siemens Phoenix", + name: "phoenixFSI", + description: "Fujitsu-Siemens Phoenix", salt: 65, dictionary: digitsOnly }); export let phoenixFsiLSolver = makePhoenixSolver({ - name: "Fujitsu-Siemens (model L) Phoenix", + name: "phoenixFSIModelL", + description: "Fujitsu-Siemens (model L) Phoenix", shift: 1, salt: "L".charCodeAt(0), dictionary: digitsOnly }); export let phoenixFsiPSolver = makePhoenixSolver({ - name: "Fujitsu-Siemens (model P) Phoenix", + name: "phoenixFSIModelP", + description: "Fujitsu-Siemens (model P) Phoenix", shift: 1, salt: "P".charCodeAt(0), dictionary: digitsOnly }); export let phoenixFsiSSolver = makePhoenixSolver({ - name: "Fujitsu-Siemens (model S) Phoenix", + name: "phoenixFSIModelS", + description: "Fujitsu-Siemens (model S) Phoenix", shift: 1, salt: "S".charCodeAt(0), dictionary: digitsOnly }); export let phoenixFsiXSolver = makePhoenixSolver({ - name: "Fujitsu-Siemens (model X) Phoenix", + name: "phoenixFSIModelX", + description: "Fujitsu-Siemens (model X) Phoenix", shift: 1, salt: "X".charCodeAt(0), dictionary: digitsOnly diff --git a/src/samsung.ts b/src/samsung.ts index 36c9088..5cc0f44 100644 --- a/src/samsung.ts +++ b/src/samsung.ts @@ -69,7 +69,8 @@ function samsungKeygen(serial: string): string[] { } export let samsungSolver = makeSolver({ - name: "Samsung", + name: "samsung", + description: "Samsung", examples: ["07088120410C0000"], inputValidator: (s) => /^[0-9ABCDEF]+$/i.test(s) && ( s.length === 12 || s.length === 14 || s.length === 16 || s.length === 18 diff --git a/src/sony.ts b/src/sony.ts index 964f088..98e0b24 100644 --- a/src/sony.ts +++ b/src/sony.ts @@ -12,7 +12,8 @@ function sonyKeygen(serial: string): string { } export let sonySolver = makeSolver({ - name: "Sony", + name: "sony", + description: "Old Sony", examples: ["1234567"], inputValidator: (s) => /^\d{7}$/i.test(s), fun: (code: string) => {