@enbox/crypto 0.0.2 → 0.0.3
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/README.md +34 -102
- package/dist/browser.js +6 -10
- package/dist/browser.js.map +4 -4
- package/dist/browser.mjs +6 -10
- package/dist/browser.mjs.map +4 -4
- package/dist/esm/algorithms/aes-gcm.js +1 -1
- package/dist/esm/algorithms/aes-gcm.js.map +1 -1
- package/dist/esm/algorithms/ecdsa.js +9 -5
- package/dist/esm/algorithms/ecdsa.js.map +1 -1
- package/dist/esm/algorithms/eddsa.js +9 -5
- package/dist/esm/algorithms/eddsa.js.map +1 -1
- package/dist/esm/algorithms/sha-2.js +1 -1
- package/dist/esm/algorithms/sha-2.js.map +1 -1
- package/dist/esm/crypto-error.js +41 -0
- package/dist/esm/crypto-error.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/jose/jwk.js +52 -26
- package/dist/esm/jose/jwk.js.map +1 -1
- package/dist/esm/local-key-manager.js +3 -2
- package/dist/esm/local-key-manager.js.map +1 -1
- package/dist/esm/primitives/aes-ctr.js.map +1 -1
- package/dist/esm/primitives/aes-gcm.js.map +1 -1
- package/dist/esm/primitives/aes-kw.js +246 -0
- package/dist/esm/primitives/aes-kw.js.map +1 -0
- package/dist/esm/primitives/concat-kdf.js +1 -1
- package/dist/esm/primitives/concat-kdf.js.map +1 -1
- package/dist/esm/primitives/ed25519.js +3 -3
- package/dist/esm/primitives/ed25519.js.map +1 -1
- package/dist/esm/primitives/hkdf.js +79 -0
- package/dist/esm/primitives/hkdf.js.map +1 -0
- package/dist/esm/primitives/pbkdf2.js +49 -0
- package/dist/esm/primitives/pbkdf2.js.map +1 -1
- package/dist/esm/primitives/secp256k1.js +4 -4
- package/dist/esm/primitives/secp256k1.js.map +1 -1
- package/dist/esm/primitives/secp256r1.js +4 -4
- package/dist/esm/primitives/secp256r1.js.map +1 -1
- package/dist/esm/primitives/x25519.js +1 -1
- package/dist/esm/primitives/x25519.js.map +1 -1
- package/dist/esm/primitives/xchacha20-poly1305.js +48 -3
- package/dist/esm/primitives/xchacha20-poly1305.js.map +1 -1
- package/dist/esm/primitives/xchacha20.js +1 -1
- package/dist/esm/primitives/xchacha20.js.map +1 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist/types/algorithms/aes-ctr.d.ts +1 -1
- package/dist/types/algorithms/aes-ctr.d.ts.map +1 -1
- package/dist/types/algorithms/aes-gcm.d.ts +2 -2
- package/dist/types/algorithms/aes-gcm.d.ts.map +1 -1
- package/dist/types/algorithms/ecdsa.d.ts +1 -1
- package/dist/types/algorithms/ecdsa.d.ts.map +1 -1
- package/dist/types/algorithms/eddsa.d.ts +2 -2
- package/dist/types/algorithms/eddsa.d.ts.map +1 -1
- package/dist/types/algorithms/sha-2.d.ts +1 -1
- package/dist/types/algorithms/sha-2.d.ts.map +1 -1
- package/dist/types/crypto-error.d.ts +29 -0
- package/dist/types/crypto-error.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/jose/jwk.d.ts.map +1 -1
- package/dist/types/local-key-manager.d.ts +3 -3
- package/dist/types/local-key-manager.d.ts.map +1 -1
- package/dist/types/primitives/aes-kw.d.ts +103 -0
- package/dist/types/primitives/aes-kw.d.ts.map +1 -0
- package/dist/types/primitives/concat-kdf.d.ts +1 -1
- package/dist/types/primitives/concat-kdf.d.ts.map +1 -1
- package/dist/types/primitives/hkdf.d.ts +90 -0
- package/dist/types/primitives/hkdf.d.ts.map +1 -0
- package/dist/types/primitives/pbkdf2.d.ts +58 -0
- package/dist/types/primitives/pbkdf2.d.ts.map +1 -1
- package/dist/types/primitives/xchacha20-poly1305.d.ts +47 -0
- package/dist/types/primitives/xchacha20-poly1305.d.ts.map +1 -1
- package/dist/types/types/cipher.d.ts +1 -1
- package/dist/types/types/crypto-api.d.ts +3 -3
- package/dist/types/types/crypto-api.d.ts.map +1 -1
- package/dist/types/types/params-direct.d.ts +79 -1
- package/dist/types/types/params-direct.d.ts.map +1 -1
- package/dist/utils.js.map +2 -2
- package/package.json +26 -39
- package/src/algorithms/aes-ctr.ts +1 -1
- package/src/algorithms/aes-gcm.ts +3 -2
- package/src/algorithms/ecdsa.ts +13 -7
- package/src/algorithms/eddsa.ts +9 -9
- package/src/algorithms/sha-2.ts +2 -2
- package/src/crypto-error.ts +45 -0
- package/src/index.ts +3 -0
- package/src/jose/jwk.ts +32 -32
- package/src/local-key-manager.ts +14 -13
- package/src/primitives/aes-ctr.ts +1 -1
- package/src/primitives/aes-gcm.ts +5 -5
- package/src/primitives/aes-kw.ts +269 -0
- package/src/primitives/concat-kdf.ts +4 -2
- package/src/primitives/ed25519.ts +6 -6
- package/src/primitives/hkdf.ts +121 -0
- package/src/primitives/pbkdf2.ts +91 -0
- package/src/primitives/secp256k1.ts +6 -6
- package/src/primitives/secp256r1.ts +6 -6
- package/src/primitives/x25519.ts +3 -3
- package/src/primitives/xchacha20-poly1305.ts +57 -4
- package/src/primitives/xchacha20.ts +1 -1
- package/src/types/cipher.ts +1 -1
- package/src/types/crypto-api.ts +5 -5
- package/src/types/params-direct.ts +97 -1
- package/src/utils.ts +2 -2
- package/dist/cjs/algorithms/aes-ctr.js +0 -188
- package/dist/cjs/algorithms/aes-ctr.js.map +0 -1
- package/dist/cjs/algorithms/aes-gcm.js +0 -196
- package/dist/cjs/algorithms/aes-gcm.js.map +0 -1
- package/dist/cjs/algorithms/crypto-algorithm.js +0 -13
- package/dist/cjs/algorithms/crypto-algorithm.js.map +0 -1
- package/dist/cjs/algorithms/ecdsa.js +0 -352
- package/dist/cjs/algorithms/ecdsa.js.map +0 -1
- package/dist/cjs/algorithms/eddsa.js +0 -325
- package/dist/cjs/algorithms/eddsa.js.map +0 -1
- package/dist/cjs/algorithms/sha-2.js +0 -119
- package/dist/cjs/algorithms/sha-2.js.map +0 -1
- package/dist/cjs/index.js +0 -41
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/jose/jwe.js +0 -3
- package/dist/cjs/jose/jwe.js.map +0 -1
- package/dist/cjs/jose/jwk.js +0 -278
- package/dist/cjs/jose/jwk.js.map +0 -1
- package/dist/cjs/jose/jws.js +0 -3
- package/dist/cjs/jose/jws.js.map +0 -1
- package/dist/cjs/jose/jwt.js +0 -3
- package/dist/cjs/jose/jwt.js.map +0 -1
- package/dist/cjs/jose/utils.js +0 -60
- package/dist/cjs/jose/utils.js.map +0 -1
- package/dist/cjs/local-key-manager.js +0 -521
- package/dist/cjs/local-key-manager.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/primitives/aes-ctr.js +0 -398
- package/dist/cjs/primitives/aes-ctr.js.map +0 -1
- package/dist/cjs/primitives/aes-gcm.js +0 -425
- package/dist/cjs/primitives/aes-gcm.js.map +0 -1
- package/dist/cjs/primitives/concat-kdf.js +0 -215
- package/dist/cjs/primitives/concat-kdf.js.map +0 -1
- package/dist/cjs/primitives/ed25519.js +0 -651
- package/dist/cjs/primitives/ed25519.js.map +0 -1
- package/dist/cjs/primitives/pbkdf2.js +0 -120
- package/dist/cjs/primitives/pbkdf2.js.map +0 -1
- package/dist/cjs/primitives/secp256k1.js +0 -958
- package/dist/cjs/primitives/secp256k1.js.map +0 -1
- package/dist/cjs/primitives/secp256r1.js +0 -959
- package/dist/cjs/primitives/secp256r1.js.map +0 -1
- package/dist/cjs/primitives/sha256.js +0 -93
- package/dist/cjs/primitives/sha256.js.map +0 -1
- package/dist/cjs/primitives/x25519.js +0 -498
- package/dist/cjs/primitives/x25519.js.map +0 -1
- package/dist/cjs/primitives/xchacha20-poly1305.js +0 -340
- package/dist/cjs/primitives/xchacha20-poly1305.js.map +0 -1
- package/dist/cjs/primitives/xchacha20.js +0 -316
- package/dist/cjs/primitives/xchacha20.js.map +0 -1
- package/dist/cjs/types/cipher.js +0 -3
- package/dist/cjs/types/cipher.js.map +0 -1
- package/dist/cjs/types/crypto-api.js +0 -3
- package/dist/cjs/types/crypto-api.js.map +0 -1
- package/dist/cjs/types/hasher.js +0 -3
- package/dist/cjs/types/hasher.js.map +0 -1
- package/dist/cjs/types/identifier.js +0 -3
- package/dist/cjs/types/identifier.js.map +0 -1
- package/dist/cjs/types/key-compressor.js +0 -3
- package/dist/cjs/types/key-compressor.js.map +0 -1
- package/dist/cjs/types/key-converter.js +0 -3
- package/dist/cjs/types/key-converter.js.map +0 -1
- package/dist/cjs/types/key-deriver.js +0 -3
- package/dist/cjs/types/key-deriver.js.map +0 -1
- package/dist/cjs/types/key-generator.js +0 -3
- package/dist/cjs/types/key-generator.js.map +0 -1
- package/dist/cjs/types/key-io.js +0 -3
- package/dist/cjs/types/key-io.js.map +0 -1
- package/dist/cjs/types/key-wrapper.js +0 -3
- package/dist/cjs/types/key-wrapper.js.map +0 -1
- package/dist/cjs/types/params-direct.js +0 -3
- package/dist/cjs/types/params-direct.js.map +0 -1
- package/dist/cjs/types/params-enclosed.js +0 -3
- package/dist/cjs/types/params-enclosed.js.map +0 -1
- package/dist/cjs/types/params-kms.js +0 -3
- package/dist/cjs/types/params-kms.js.map +0 -1
- package/dist/cjs/types/signer.js +0 -3
- package/dist/cjs/types/signer.js.map +0 -1
- package/dist/cjs/utils.js +0 -173
- package/dist/cjs/utils.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-api.js","sourceRoot":"","sources":["../../../src/types/crypto-api.ts"],"names":[],"mappings":""}
|
package/dist/cjs/types/hasher.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hasher.js","sourceRoot":"","sources":["../../../src/types/hasher.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identifier.js","sourceRoot":"","sources":["../../../src/types/identifier.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"key-compressor.js","sourceRoot":"","sources":["../../../src/types/key-compressor.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"key-converter.js","sourceRoot":"","sources":["../../../src/types/key-converter.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"key-deriver.js","sourceRoot":"","sources":["../../../src/types/key-deriver.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"key-generator.js","sourceRoot":"","sources":["../../../src/types/key-generator.ts"],"names":[],"mappings":""}
|
package/dist/cjs/types/key-io.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"key-io.js","sourceRoot":"","sources":["../../../src/types/key-io.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"key-wrapper.js","sourceRoot":"","sources":["../../../src/types/key-wrapper.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"params-direct.js","sourceRoot":"","sources":["../../../src/types/params-direct.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"params-enclosed.js","sourceRoot":"","sources":["../../../src/types/params-enclosed.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"params-kms.js","sourceRoot":"","sources":["../../../src/types/params-kms.ts"],"names":[],"mappings":""}
|
package/dist/cjs/types/signer.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/types/signer.ts"],"names":[],"mappings":""}
|
package/dist/cjs/utils.js
DELETED
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CryptoUtils = void 0;
|
|
4
|
-
var crypto_1 = require("@noble/hashes/crypto");
|
|
5
|
-
var utils_1 = require("@noble/hashes/utils");
|
|
6
|
-
/**
|
|
7
|
-
* A collection of cryptographic utility methods.
|
|
8
|
-
*/
|
|
9
|
-
var CryptoUtils = /** @class */ (function () {
|
|
10
|
-
function CryptoUtils() {
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Determines the JOSE algorithm identifier of the digital signature algorithm based on the `alg` or
|
|
14
|
-
* `crv` property of a {@link Jwk | JWK}.
|
|
15
|
-
*
|
|
16
|
-
* If the `alg` property is present, its value takes precedence and is returned. Otherwise, the
|
|
17
|
-
* `crv` property is used to determine the algorithm.
|
|
18
|
-
*
|
|
19
|
-
* @memberof CryptoUtils
|
|
20
|
-
* @see {@link https://www.iana.org/assignments/jose/jose.xhtml#web-signature-encryption-algorithms | JOSE Algorithms}
|
|
21
|
-
* @see {@link https://datatracker.ietf.org/doc/draft-ietf-jose-fully-specified-algorithms/ | Fully-Specified Algorithms for JOSE and COSE}
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* ```ts
|
|
25
|
-
* const publicKey: Jwk = {
|
|
26
|
-
* "kty": "OKP",
|
|
27
|
-
* "crv": "Ed25519",
|
|
28
|
-
* "x": "FEJG7OakZi500EydXxuE8uMc8uaAzEJkmQeG8khXANw"
|
|
29
|
-
* }
|
|
30
|
-
* const algorithm = getJoseSignatureAlgorithmFromPublicKey(publicKey);
|
|
31
|
-
* console.log(algorithm); // Output: "EdDSA"
|
|
32
|
-
* ```
|
|
33
|
-
* @param publicKey - A JWK containing the `alg` and/or `crv` properties.
|
|
34
|
-
* @returns The name of the algorithm associated with the key.
|
|
35
|
-
* @throws Error if the algorithm cannot be determined from the provided input.
|
|
36
|
-
*/
|
|
37
|
-
CryptoUtils.getJoseSignatureAlgorithmFromPublicKey = function (publicKey) {
|
|
38
|
-
var curveToJoseAlgorithm = {
|
|
39
|
-
'Ed25519': 'EdDSA',
|
|
40
|
-
'P-256': 'ES256',
|
|
41
|
-
'P-384': 'ES384',
|
|
42
|
-
'P-521': 'ES512',
|
|
43
|
-
'secp256k1': 'ES256K',
|
|
44
|
-
};
|
|
45
|
-
// If the key contains an `alg` property that matches a JOSE registered algorithm identifier,
|
|
46
|
-
// return its value.
|
|
47
|
-
if (publicKey.alg && Object.values(curveToJoseAlgorithm).includes(publicKey.alg)) {
|
|
48
|
-
return publicKey.alg;
|
|
49
|
-
}
|
|
50
|
-
// If the key contains a `crv` property, return the corresponding algorithm.
|
|
51
|
-
if (publicKey.crv && Object.keys(curveToJoseAlgorithm).includes(publicKey.crv)) {
|
|
52
|
-
return curveToJoseAlgorithm[publicKey.crv];
|
|
53
|
-
}
|
|
54
|
-
throw new Error("Unable to determine algorithm based on provided input: alg=".concat(publicKey.alg, ", crv=").concat(publicKey.crv, ". ") +
|
|
55
|
-
"Supported 'alg' values: ".concat(Object.values(curveToJoseAlgorithm).join(', '), ". ") +
|
|
56
|
-
"Supported 'crv' values: ".concat(Object.keys(curveToJoseAlgorithm).join(', '), "."));
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Generates secure pseudorandom values of the specified length using
|
|
60
|
-
* `crypto.getRandomValues`, which defers to the operating system.
|
|
61
|
-
*
|
|
62
|
-
* @memberof CryptoUtils
|
|
63
|
-
* @remarks
|
|
64
|
-
* This function is a wrapper around `randomBytes` from the '@noble/hashes'
|
|
65
|
-
* package. It's designed to be cryptographically strong, suitable for
|
|
66
|
-
* generating initialization vectors, nonces, and other random values.
|
|
67
|
-
*
|
|
68
|
-
* @see {@link https://www.npmjs.com/package/@noble/hashes | @noble/hashes on NPM} for more
|
|
69
|
-
* information about the underlying implementation.
|
|
70
|
-
*
|
|
71
|
-
* @example
|
|
72
|
-
* ```ts
|
|
73
|
-
* const bytes = randomBytes(32); // Generates 32 random bytes
|
|
74
|
-
* ```
|
|
75
|
-
*
|
|
76
|
-
* @param bytesLength - The number of bytes to generate.
|
|
77
|
-
* @returns A Uint8Array containing the generated random bytes.
|
|
78
|
-
*/
|
|
79
|
-
CryptoUtils.randomBytes = function (bytesLength) {
|
|
80
|
-
return (0, utils_1.randomBytes)(bytesLength);
|
|
81
|
-
};
|
|
82
|
-
/**
|
|
83
|
-
* Generates a UUID (Universally Unique Identifier) using a
|
|
84
|
-
* cryptographically strong random number generator following
|
|
85
|
-
* the version 4 format, as specified in RFC 4122.
|
|
86
|
-
*
|
|
87
|
-
* A version 4 UUID is a randomly generated UUID. The 13th character
|
|
88
|
-
* is set to '4' to denote version 4, and the 17th character is one
|
|
89
|
-
* of '8', '9', 'A', or 'B' to comply with the variant 1 format of
|
|
90
|
-
* UUIDs (the high bits are set to '10').
|
|
91
|
-
*
|
|
92
|
-
* The UUID is a 36 character string, including hyphens, and looks like this:
|
|
93
|
-
* xxxxxxxx-xxxx-4xxx-axxx-xxxxxxxxxxxx
|
|
94
|
-
*
|
|
95
|
-
* Note that while UUIDs are not guaranteed to be unique, they are
|
|
96
|
-
* practically unique" given the large number of possible UUIDs and
|
|
97
|
-
* the randomness of generation.
|
|
98
|
-
* @memberof CryptoUtils
|
|
99
|
-
* @example
|
|
100
|
-
* ```ts
|
|
101
|
-
* const uuid = randomUuid();
|
|
102
|
-
* console.log(uuid); // Outputs a version 4 UUID, e.g., '123e4567-e89b-12d3-a456-426655440000'
|
|
103
|
-
* ```
|
|
104
|
-
*
|
|
105
|
-
* @returns A string containing a randomly generated, 36 character long v4 UUID.
|
|
106
|
-
*/
|
|
107
|
-
CryptoUtils.randomUuid = function () {
|
|
108
|
-
var uuid = crypto_1.crypto.randomUUID();
|
|
109
|
-
return uuid;
|
|
110
|
-
};
|
|
111
|
-
/**
|
|
112
|
-
* Generates a secure random PIN (Personal Identification Number) of a
|
|
113
|
-
* specified length.
|
|
114
|
-
*
|
|
115
|
-
* This function ensures that the generated PIN is cryptographically secure and
|
|
116
|
-
* uniformly distributed by using rejection sampling. It repeatedly generates
|
|
117
|
-
* random numbers until it gets one in the desired range [0, max]. This avoids
|
|
118
|
-
* bias introduced by simply taking the modulus or truncating the number.
|
|
119
|
-
*
|
|
120
|
-
* Note: The function can generate PINs of 3 to 10 digits in length.
|
|
121
|
-
* Any request for a PIN outside this range will result in an error.
|
|
122
|
-
*
|
|
123
|
-
* Example usage:
|
|
124
|
-
*
|
|
125
|
-
* ```ts
|
|
126
|
-
* const pin = randomPin({ length: 4 });
|
|
127
|
-
* console.log(pin); // Outputs a 4-digit PIN, e.g., "0231"
|
|
128
|
-
* ```
|
|
129
|
-
* @memberof CryptoUtils
|
|
130
|
-
* @param options - The options object containing the desired length of the generated PIN.
|
|
131
|
-
* @param options.length - The desired length of the generated PIN. The value should be
|
|
132
|
-
* an integer between 3 and 8 inclusive.
|
|
133
|
-
*
|
|
134
|
-
* @returns A string representing the generated PIN. The PIN will be zero-padded
|
|
135
|
-
* to match the specified length, if necessary.
|
|
136
|
-
*
|
|
137
|
-
* @throws Will throw an error if the requested PIN length is less than 3 or greater than 8.
|
|
138
|
-
*/
|
|
139
|
-
CryptoUtils.randomPin = function (_a) {
|
|
140
|
-
var length = _a.length;
|
|
141
|
-
if (3 > length || length > 10) {
|
|
142
|
-
throw new Error('randomPin() can securely generate a PIN between 3 to 10 digits.');
|
|
143
|
-
}
|
|
144
|
-
var max = Math.pow(10, length) - 1;
|
|
145
|
-
var pin;
|
|
146
|
-
if (length <= 6) {
|
|
147
|
-
var rejectionRange = Math.pow(10, length);
|
|
148
|
-
do {
|
|
149
|
-
// Adjust the byte generation based on length.
|
|
150
|
-
var randomBuffer = CryptoUtils.randomBytes(Math.ceil(length / 2)); // 2 digits per byte.
|
|
151
|
-
var view = new DataView(randomBuffer.buffer);
|
|
152
|
-
// Convert the buffer to integer and take modulus based on length.
|
|
153
|
-
pin = view.getUint16(0, false) % rejectionRange;
|
|
154
|
-
} while (pin > max);
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
var rejectionRange = Math.pow(10, 10); // For max 10 digit number.
|
|
158
|
-
do {
|
|
159
|
-
// Generates 4 random bytes.
|
|
160
|
-
var randomBuffer = CryptoUtils.randomBytes(4);
|
|
161
|
-
// Create a DataView to read from the randomBuffer.
|
|
162
|
-
var view = new DataView(randomBuffer.buffer);
|
|
163
|
-
// Transform bytes to number (big endian).
|
|
164
|
-
pin = view.getUint32(0, false) % rejectionRange;
|
|
165
|
-
} while (pin > max); // Reject if the number is outside the desired range.
|
|
166
|
-
}
|
|
167
|
-
// Pad the PIN with leading zeros to the desired length.
|
|
168
|
-
return pin.toString().padStart(length, '0');
|
|
169
|
-
};
|
|
170
|
-
return CryptoUtils;
|
|
171
|
-
}());
|
|
172
|
-
exports.CryptoUtils = CryptoUtils;
|
|
173
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/cjs/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|