diff --git a/src/dell.spec.ts b/src/dell.spec.ts index dded110..4a172cb 100644 --- a/src/dell.spec.ts +++ b/src/dell.spec.ts @@ -102,6 +102,10 @@ describe("Test keygenDell", () => { expect(keygenDell("1234567", DellTag.Tag2A7B, SuffixType.ServiceTag)) .toEqual("J1KuwWpSUgnDarfi"); }); + it("Dell password for: 1234567-A95B", () => { + expect(keygenDell("1234567", DellTag.TagA95B, SuffixType.ServiceTag)) + .toEqual("46rg65ky"); + }); it("Dell password for: 1234567-1D3B", () => { expect(keygenDell("1234567", DellTag.Tag1D3B, SuffixType.ServiceTag)) .toEqual("Sn4fkF8bS57NymZl"); @@ -155,6 +159,10 @@ describe("Test keygenDell", () => { expect(keygenDell("1234567890A", DellTag.Tag2A7B, SuffixType.HDD)) .toEqual("h6lwdi91qluUyt3u"); }); + it("Dell HDD password for: 1234567890A-A95B", () => { + expect(keygenDell("1234567890A", DellTag.TagA95B, SuffixType.HDD)) + .toEqual("qr0s6x4n"); + }); it("Dell HDD password for: 1234567890A-1D3B", () => { expect(keygenDell("1234567890A", DellTag.Tag1D3B, SuffixType.HDD)) .toEqual("6JQ1WacHNNR0Taia"); @@ -184,5 +192,7 @@ describe("Test Dell BIOS", () => { }); it("Check bad dell tag", () => { expect(dellSolver("1234567-BAD1")).toEqual([]); + expect(dellSolver("1234567-TOLONG")).toEqual([]); + expect(dellHddSolver("1234567-SHORT")).toEqual([]); }); }); diff --git a/src/dell/encode.ts b/src/dell/encode.ts index 61aca07..4e4a989 100644 --- a/src/dell/encode.ts +++ b/src/dell/encode.ts @@ -62,7 +62,7 @@ interface Encoder { function rol(x: number, bitsrot: number): number { // n >>> 0 used to convert signed number to unsigned // (unsigned(x) >> (32 - bitsrot)) | (unsigned(x) << bitsrot); - return ((x >>> 0) / (1 << (32 - bitsrot))) | (((x >>> 0) << bitsrot) | 0 ); + return ((x >>> 0) / Math.pow(2, 32 - bitsrot)) | (((x >>> 0) << bitsrot) | 0 ); } function encF2(num1: number, num2: number, num3: number): number { diff --git a/src/hpmini.spec.ts b/src/hpmini.spec.ts index 1cd614e..12cccbf 100644 --- a/src/hpmini.spec.ts +++ b/src/hpmini.spec.ts @@ -7,6 +7,11 @@ describe("Test HP Mini BIOS", () => { it("HPMini key for CNU1234567 is e9l37fvqgx", () => { expect(hpMiniSolver("CNU1234567")).toEqual(["e9l37fvqgx"]); }); + + it("HPMini key for CNU1234ABX is e9l37fvcp4 or e9l37fvcpr", () => { + expect(hpMiniSolver("CNU1234ABX").sort()).toEqual(["e9l37fvcp4", "e9l37fvcpr"].sort()); + }); + it("test invalid keys", () => { expect(hpMiniSolver("CNU12345678")).toEqual([]); expect(hpMiniSolver("CNU1234")).toEqual([]); diff --git a/src/samsung.spec.ts b/src/samsung.spec.ts index a03db75..c7c6894 100644 --- a/src/samsung.spec.ts +++ b/src/samsung.spec.ts @@ -11,6 +11,10 @@ describe("Test Samsung BIOS", () => { it("Samsung key for 1AA9CD4638C0186000 is 5728000", () => { expect(samsungSolver("1AA9CD4638C0186000")).toEqual(["5728000"]); }); + + it("Samsung key for 1AA9CD4638C0186001 is 5728000@", () => { + expect(samsungSolver("1AA9CD4638C0186001")).toEqual(["5728000@"]); + }); it("test invalid keys", () => { expect(samsungSolver("1AA9CD4638C01860Z0")).toEqual([]); expect(samsungSolver("1AA9CD4638C01860000")).toEqual([]);