summaryrefslogtreecommitdiff
path: root/node_modules/node-forge/lib/mgf1.js
diff options
context:
space:
mode:
authorakiyamn2023-09-24 23:22:21 +1000
committerakiyamn2023-09-24 23:22:21 +1000
commit4e87195739f2a5d9a05451b48773c8afdc680765 (patch)
tree9cba501844a4a11dcbdffc4050ed8189561c55ed /node_modules/node-forge/lib/mgf1.js
downloadprice-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.tar.gz
price-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.zip
Initial commit (by create-cloudflare CLI)
Diffstat (limited to 'node_modules/node-forge/lib/mgf1.js')
-rw-r--r--node_modules/node-forge/lib/mgf1.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/node_modules/node-forge/lib/mgf1.js b/node_modules/node-forge/lib/mgf1.js
new file mode 100644
index 0000000..25ed1f7
--- /dev/null
+++ b/node_modules/node-forge/lib/mgf1.js
@@ -0,0 +1,57 @@
+/**
+ * Javascript implementation of mask generation function MGF1.
+ *
+ * @author Stefan Siegl
+ * @author Dave Longley
+ *
+ * Copyright (c) 2012 Stefan Siegl <stesie@brokenpipe.de>
+ * Copyright (c) 2014 Digital Bazaar, Inc.
+ */
+var forge = require('./forge');
+require('./util');
+
+forge.mgf = forge.mgf || {};
+var mgf1 = module.exports = forge.mgf.mgf1 = forge.mgf1 = forge.mgf1 || {};
+
+/**
+ * Creates a MGF1 mask generation function object.
+ *
+ * @param md the message digest API to use (eg: forge.md.sha1.create()).
+ *
+ * @return a mask generation function object.
+ */
+mgf1.create = function(md) {
+ var mgf = {
+ /**
+ * Generate mask of specified length.
+ *
+ * @param {String} seed The seed for mask generation.
+ * @param maskLen Number of bytes to generate.
+ * @return {String} The generated mask.
+ */
+ generate: function(seed, maskLen) {
+ /* 2. Let T be the empty octet string. */
+ var t = new forge.util.ByteBuffer();
+
+ /* 3. For counter from 0 to ceil(maskLen / hLen), do the following: */
+ var len = Math.ceil(maskLen / md.digestLength);
+ for(var i = 0; i < len; i++) {
+ /* a. Convert counter to an octet string C of length 4 octets */
+ var c = new forge.util.ByteBuffer();
+ c.putInt32(i);
+
+ /* b. Concatenate the hash of the seed mgfSeed and C to the octet
+ * string T: */
+ md.start();
+ md.update(seed + c.getBytes());
+ t.putBuffer(md.digest());
+ }
+
+ /* Output the leading maskLen octets of T as the octet string mask. */
+ t.truncate(t.length() - maskLen);
+ return t.getBytes();
+ }
+ };
+
+ return mgf;
+};