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) => {