@nest-boot/crypt 7.0.2 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/crypt.module.d.ts +9 -3
- package/dist/crypt.module.js +42 -4
- package/dist/crypt.module.js.map +1 -1
- package/dist/crypt.module.spec.d.ts +1 -0
- package/dist/crypt.module.spec.js +73 -0
- package/dist/crypt.module.spec.js.map +1 -0
- package/dist/crypt.service.d.ts +59 -25
- package/dist/crypt.service.js +84 -104
- package/dist/crypt.service.js.map +1 -1
- package/dist/crypt.service.spec.js +77 -38
- package/dist/crypt.service.spec.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/derive-key.d.ts +7 -0
- package/dist/utils/derive-key.js +22 -0
- package/dist/utils/derive-key.js.map +1 -0
- package/dist/utils/estimate-entropy.d.ts +8 -0
- package/dist/utils/estimate-entropy.js +17 -0
- package/dist/utils/estimate-entropy.js.map +1 -0
- package/dist/utils/estimate-entropy.spec.d.ts +1 -0
- package/dist/utils/estimate-entropy.spec.js +17 -0
- package/dist/utils/estimate-entropy.spec.js.map +1 -0
- package/dist/utils/is-jwe.d.ts +14 -0
- package/dist/utils/is-jwe.js +38 -0
- package/dist/utils/is-jwe.js.map +1 -0
- package/dist/utils/is-jwe.spec.d.ts +1 -0
- package/dist/utils/is-jwe.spec.js +50 -0
- package/dist/utils/is-jwe.spec.js.map +1 -0
- package/package.json +10 -3
|
@@ -2,49 +2,88 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const testing_1 = require("@nestjs/testing");
|
|
4
4
|
const _1 = require(".");
|
|
5
|
+
const TEST_SECRET = "myTestSecretThatIsAtLeast32Chars!";
|
|
5
6
|
describe("CryptService", () => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
7
|
+
describe("instance methods (via CryptModule.register)", () => {
|
|
8
|
+
let cryptService;
|
|
9
|
+
beforeEach(async () => {
|
|
10
|
+
const moduleRef = await testing_1.Test.createTestingModule({
|
|
11
|
+
imports: [_1.CryptModule.register({ secret: TEST_SECRET })],
|
|
12
|
+
}).compile();
|
|
13
|
+
cryptService = moduleRef.get(_1.CryptService);
|
|
14
|
+
});
|
|
15
|
+
describe("encrypt", () => {
|
|
16
|
+
it("should encrypt the value", async () => {
|
|
17
|
+
const value = "Hello, World!";
|
|
18
|
+
const encryptedValue = await cryptService.encrypt(value);
|
|
19
|
+
expect(encryptedValue).toBeDefined();
|
|
20
|
+
expect(encryptedValue).not.toEqual(value);
|
|
21
|
+
});
|
|
22
|
+
it("should return JWE compact serialization format", async () => {
|
|
23
|
+
const value = "Hello, World!";
|
|
24
|
+
const encryptedValue = await cryptService.encrypt(value);
|
|
25
|
+
// JWE compact serialization has 5 parts separated by dots
|
|
26
|
+
expect(encryptedValue.split(".")).toHaveLength(5);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
describe("decrypt", () => {
|
|
30
|
+
it("should decrypt the encrypted value", async () => {
|
|
31
|
+
const value = "Hello, World!";
|
|
32
|
+
const encryptedValue = await cryptService.encrypt(value);
|
|
33
|
+
const decryptedValue = await cryptService.decrypt(encryptedValue);
|
|
34
|
+
expect(decryptedValue).toBeDefined();
|
|
35
|
+
expect(decryptedValue).toEqual(value);
|
|
36
|
+
});
|
|
37
|
+
it("should throw error for invalid JWE", async () => {
|
|
38
|
+
await expect(cryptService.decrypt("invalid-jwe")).rejects.toThrow();
|
|
39
|
+
});
|
|
27
40
|
});
|
|
28
41
|
});
|
|
29
|
-
describe("
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
describe("static methods", () => {
|
|
43
|
+
beforeEach(() => {
|
|
44
|
+
// Reset static instance before each test
|
|
45
|
+
_1.CryptService._instance =
|
|
46
|
+
undefined;
|
|
47
|
+
});
|
|
48
|
+
describe("instance getter", () => {
|
|
49
|
+
it("should throw error when not initialized", () => {
|
|
50
|
+
expect(() => _1.CryptService.instance).toThrow("CryptService not initialized");
|
|
51
|
+
});
|
|
52
|
+
it("should return instance after initialization", () => {
|
|
53
|
+
_1.CryptService.init(TEST_SECRET);
|
|
54
|
+
expect(_1.CryptService.instance).toBeInstanceOf(_1.CryptService);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
describe("init", () => {
|
|
58
|
+
it("should initialize with secret", () => {
|
|
59
|
+
_1.CryptService.init(TEST_SECRET);
|
|
60
|
+
expect(_1.CryptService.instance).toBeDefined();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
describe("encrypt (static)", () => {
|
|
64
|
+
it("should encrypt using static method", async () => {
|
|
65
|
+
_1.CryptService.init(TEST_SECRET);
|
|
66
|
+
const value = "Hello, World!";
|
|
67
|
+
const encrypted = await _1.CryptService.encrypt(value);
|
|
68
|
+
expect(encrypted).toBeDefined();
|
|
69
|
+
expect(encrypted).not.toEqual(value);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe("decrypt (static)", () => {
|
|
73
|
+
it("should decrypt using static method", async () => {
|
|
74
|
+
_1.CryptService.init(TEST_SECRET);
|
|
75
|
+
const value = "Hello, World!";
|
|
76
|
+
const encrypted = await _1.CryptService.encrypt(value);
|
|
77
|
+
const decrypted = await _1.CryptService.decrypt(encrypted);
|
|
78
|
+
expect(decrypted).toEqual(value);
|
|
79
|
+
});
|
|
44
80
|
});
|
|
45
81
|
});
|
|
46
|
-
|
|
47
|
-
|
|
82
|
+
describe("constructor", () => {
|
|
83
|
+
it("should create instance with secret", () => {
|
|
84
|
+
const service = new _1.CryptService(TEST_SECRET);
|
|
85
|
+
expect(service).toBeDefined();
|
|
86
|
+
});
|
|
48
87
|
});
|
|
49
88
|
});
|
|
50
89
|
//# sourceMappingURL=crypt.service.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypt.service.spec.js","sourceRoot":"","sources":["../src/crypt.service.spec.ts"],"names":[],"mappings":";;AAAA,6CAAuC;AAEvC,wBAA8C;AAE9C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,
|
|
1
|
+
{"version":3,"file":"crypt.service.spec.js","sourceRoot":"","sources":["../src/crypt.service.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./crypt.module"), exports);
|
|
18
18
|
__exportStar(require("./crypt.service"), exports);
|
|
19
19
|
__exportStar(require("./crypt-module-options.interface"), exports);
|
|
20
|
+
__exportStar(require("./utils/is-jwe"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,kDAAgC;AAChC,mEAAiD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,kDAAgC;AAChC,mEAAiD;AACjD,iDAA+B"}
|