mirror of
https://github.com/bacher09/pwgen-for-bios.git
synced 2024-09-19 15:28:54 -04:00
Fix support for 8 hexadecimal fsi serials
This commit is contained in:
parent
e95542399c
commit
0f78f76539
2 changed files with 14 additions and 11 deletions
|
@ -1,16 +1,19 @@
|
||||||
import { fsi20DecNewSolver, fsi20DecOldSolver, fsi20HexSolver } from "./fsi";
|
import { fsi20DecNewSolver, fsi20DecOldSolver, fsiHexSolver } from "./fsi";
|
||||||
|
|
||||||
describe("Test Fujitsu-Siemens 5x4 hexadecimal BIOS", () => {
|
describe("Test Fujitsu-Siemens 5x4 hexadecimal BIOS", () => {
|
||||||
it("FSI key for 1234-4321-1234-4321-1234 is 35682708", () => {
|
it("FSI key for 1234-4321-1234-4321-1234 is 35682708", () => {
|
||||||
expect(fsi20HexSolver("1234-4321-1234-4321-1234")).toEqual(["35683789"]);
|
expect(fsiHexSolver("1234-4321-1234-4321-1234")).toEqual(["35683789"]);
|
||||||
});
|
});
|
||||||
it("FSI key for AAAA-BBBB-CCCC-DEAD-BEEF is 64830592", () => {
|
it("FSI key for AAAA-BBBB-CCCC-DEAD-BEEF is 64830592", () => {
|
||||||
expect(fsi20HexSolver("AAAA-BBBB-CCCC-DEAD-BEEF")).toEqual(["64830592"]);
|
expect(fsiHexSolver("AAAA-BBBB-CCCC-DEAD-BEEF")).toEqual(["64830592"]);
|
||||||
expect(fsi20HexSolver("AAAABBBBCCCCDEADBEEF")).toEqual(["64830592"]);
|
expect(fsiHexSolver("AAAABBBBCCCCDEADBEEF")).toEqual(["64830592"]);
|
||||||
|
});
|
||||||
|
it("FSI key for DEADBEEF is 64830592", () => {
|
||||||
|
expect(fsiHexSolver("DEADBEEF")).toEqual(["64830592"]);
|
||||||
});
|
});
|
||||||
it("test invalid keys", () => {
|
it("test invalid keys", () => {
|
||||||
expect(fsi20HexSolver("AAAA-BBBB-CCCC-DEAD-CODE")).toEqual([]);
|
expect(fsiHexSolver("AAAA-BBBB-CCCC-DEAD-CODE")).toEqual([]);
|
||||||
expect(fsi20HexSolver("AAAA-BBBB-CCCC-DEAD-BEEF-12")).toEqual([]);
|
expect(fsiHexSolver("AAAA-BBBB-CCCC-DEAD-BEEF-12")).toEqual([]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
10
src/fsi.ts
10
src/fsi.ts
|
@ -19,7 +19,7 @@ function generateCRC16Table(): number[] {
|
||||||
const crc16Table = generateCRC16Table();
|
const crc16Table = generateCRC16Table();
|
||||||
|
|
||||||
/* For Fujinsu-Siemens. 8 or 5x4 hexadecimal digits. */
|
/* For Fujinsu-Siemens. 8 or 5x4 hexadecimal digits. */
|
||||||
function fsi20HexKeygen(serial: string): string {
|
function fsiHexKeygen(serial: string): string {
|
||||||
|
|
||||||
function hashToString(hash: number) {
|
function hashToString(hash: number) {
|
||||||
const zero = "0".charCodeAt(0);
|
const zero = "0".charCodeAt(0);
|
||||||
|
@ -122,11 +122,11 @@ function fsi20DecNewKeygen(serial: string): string {
|
||||||
}).join("");
|
}).join("");
|
||||||
}
|
}
|
||||||
|
|
||||||
export let fsi20HexSolver = makeSolver({
|
export let fsiHexSolver = makeSolver({
|
||||||
name: "Fujitsu-Siemens hexdigits",
|
name: "Fujitsu-Siemens hexdigits",
|
||||||
examples: ["AAAA-BBBB-CCCC-DEAD-BEEF"],
|
examples: ["DEADBEEF", "AAAA-BBBB-CCCC-DEAD-BEEF"],
|
||||||
inputValidator: (s) => /^[0-9ABCDEF]{20}$/i.test(s),
|
inputValidator: (s) => /^([0-9ABCDEF]{20}|[0-9ABCDEF]{8})$/i.test(s),
|
||||||
fun: (code: string) => [fsi20HexKeygen(code)]
|
fun: (code: string) => [fsiHexKeygen(code)]
|
||||||
});
|
});
|
||||||
|
|
||||||
export let fsi20DecNewSolver = makeSolver({
|
export let fsi20DecNewSolver = makeSolver({
|
||||||
|
|
Loading…
Reference in a new issue