@sd-jwt/crypto-browser 0.3.2-next.66 → 0.3.2-next.68

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/index.js CHANGED
@@ -51,8 +51,8 @@ var generateSalt = (length) => {
51
51
  if (length <= 0) {
52
52
  return "";
53
53
  }
54
- const array = new Uint8Array(length);
55
- globalThis.crypto.getRandomValues(array);
54
+ const array = new Uint8Array(length / 2);
55
+ window.crypto.getRandomValues(array);
56
56
  const salt = Array.from(
57
57
  array,
58
58
  (byte) => byte.toString(16).padStart(2, "0")
@@ -61,9 +61,8 @@ var generateSalt = (length) => {
61
61
  };
62
62
  function digest(data, algorithm = "SHA-256") {
63
63
  return __async(this, null, function* () {
64
- const { subtle } = globalThis.crypto;
65
64
  const ec = new TextEncoder();
66
- const digest2 = yield subtle.digest(algorithm, ec.encode(data));
65
+ const digest2 = yield window.crypto.subtle.digest(algorithm, ec.encode(data));
67
66
  return new Uint8Array(digest2);
68
67
  });
69
68
  }
package/dist/index.mjs CHANGED
@@ -24,8 +24,8 @@ var generateSalt = (length) => {
24
24
  if (length <= 0) {
25
25
  return "";
26
26
  }
27
- const array = new Uint8Array(length);
28
- globalThis.crypto.getRandomValues(array);
27
+ const array = new Uint8Array(length / 2);
28
+ window.crypto.getRandomValues(array);
29
29
  const salt = Array.from(
30
30
  array,
31
31
  (byte) => byte.toString(16).padStart(2, "0")
@@ -34,9 +34,8 @@ var generateSalt = (length) => {
34
34
  };
35
35
  function digest(data, algorithm = "SHA-256") {
36
36
  return __async(this, null, function* () {
37
- const { subtle } = globalThis.crypto;
38
37
  const ec = new TextEncoder();
39
- const digest2 = yield subtle.digest(algorithm, ec.encode(data));
38
+ const digest2 = yield window.crypto.subtle.digest(algorithm, ec.encode(data));
40
39
  return new Uint8Array(digest2);
41
40
  });
42
41
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sd-jwt/crypto-browser",
3
- "version": "0.3.2-next.66+10ed97b",
3
+ "version": "0.3.2-next.68+e105ef2",
4
4
  "description": "sd-jwt draft 7 implementation in typescript",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -49,5 +49,5 @@
49
49
  "esm"
50
50
  ]
51
51
  },
52
- "gitHead": "10ed97b22d444f0072d469e0ec656fae337df733"
52
+ "gitHead": "e105ef2be4138695a6827927b03dacdfbef6d16a"
53
53
  }
package/src/crypto.ts CHANGED
@@ -2,9 +2,9 @@ export const generateSalt = (length: number): string => {
2
2
  if (length <= 0) {
3
3
  return '';
4
4
  }
5
-
6
- const array = new Uint8Array(length);
7
- globalThis.crypto.getRandomValues(array);
5
+ // a hex is represented by 2 characters, so we split the length by 2
6
+ const array = new Uint8Array(length / 2);
7
+ window.crypto.getRandomValues(array);
8
8
 
9
9
  const salt = Array.from(array, (byte) =>
10
10
  byte.toString(16).padStart(2, '0'),
@@ -17,9 +17,8 @@ export async function digest(
17
17
  data: string,
18
18
  algorithm = 'SHA-256',
19
19
  ): Promise<Uint8Array> {
20
- const { subtle } = globalThis.crypto;
21
20
  const ec = new TextEncoder();
22
- const digest = await subtle.digest(algorithm, ec.encode(data));
21
+ const digest = await window.crypto.subtle.digest(algorithm, ec.encode(data));
23
22
  return new Uint8Array(digest);
24
23
  }
25
24
 
@@ -1,7 +1,44 @@
1
- import { describe, expect, test } from 'vitest';
1
+ import { describe, expect, test, it } from 'vitest';
2
+ import { generateSalt, digest, getHasher } from '../index';
3
+
4
+ // Extract the major version as a number
5
+ const nodeVersionMajor = parseInt(
6
+ process.version.split('.')[0].substring(1),
7
+ 10,
8
+ );
2
9
 
3
10
  describe('This file is for utility functions', () => {
4
- test('crypto', () => {
5
- expect('1').toStrictEqual('1');
11
+ (nodeVersionMajor < 20 ? test.skip : test)('generateSalt', async () => {
12
+ const salt = generateSalt(8);
13
+ expect(salt).toBeDefined();
14
+ expect(salt.length).toBe(8);
15
+ });
16
+
17
+ (nodeVersionMajor < 20 ? test.skip : test)(
18
+ 'generateSalt 0 length',
19
+ async () => {
20
+ const salt = generateSalt(0);
21
+ expect(salt).toBeDefined();
22
+ expect(salt.length).toBe(0);
23
+ },
24
+ );
25
+
26
+ (nodeVersionMajor < 20 ? test.skip : test)('digest', async () => {
27
+ const payload = 'test1';
28
+ const s1 = await digest(payload);
29
+ expect(s1).toBeDefined();
30
+ expect(s1.length).toBe(32);
31
+ });
32
+
33
+ (nodeVersionMajor < 20 ? test.skip : test)('digest', async () => {
34
+ const payload = 'test1';
35
+ const s1 = await digest(payload, 'SHA-512');
36
+ expect(s1).toBeDefined();
37
+ expect(s1.length).toBe(64);
38
+ });
39
+
40
+ (nodeVersionMajor < 20 ? test.skip : test)('get hasher', async () => {
41
+ const hash = await getHasher('SHA-512')('test1');
42
+ expect(hash).toBeDefined();
6
43
  });
7
44
  });