aboutsummaryrefslogtreecommitdiff
path: root/node_modules/minimalistic-crypto-utils
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-03 15:35:00 +0200
commitde98e0b232509d5f40c135d540a70e415272ff85 (patch)
treea79222a5b58484ab3b80d18efcaaa7ccc4769b33 /node_modules/minimalistic-crypto-utils
parente0c9d480a73fa629c1e4a47d3e721f1d2d345406 (diff)
downloadwallet-core-de98e0b232509d5f40c135d540a70e415272ff85.tar.xz
node_modules
Diffstat (limited to 'node_modules/minimalistic-crypto-utils')
-rw-r--r--node_modules/minimalistic-crypto-utils/.npmignore2
-rw-r--r--node_modules/minimalistic-crypto-utils/.travis.yml11
-rw-r--r--node_modules/minimalistic-crypto-utils/README.md47
-rw-r--r--node_modules/minimalistic-crypto-utils/lib/utils.js58
-rw-r--r--node_modules/minimalistic-crypto-utils/package.json27
-rw-r--r--node_modules/minimalistic-crypto-utils/test/utils-test.js28
6 files changed, 173 insertions, 0 deletions
diff --git a/node_modules/minimalistic-crypto-utils/.npmignore b/node_modules/minimalistic-crypto-utils/.npmignore
new file mode 100644
index 000000000..1ca957177
--- /dev/null
+++ b/node_modules/minimalistic-crypto-utils/.npmignore
@@ -0,0 +1,2 @@
+node_modules/
+npm-debug.log
diff --git a/node_modules/minimalistic-crypto-utils/.travis.yml b/node_modules/minimalistic-crypto-utils/.travis.yml
new file mode 100644
index 000000000..ce24b7a77
--- /dev/null
+++ b/node_modules/minimalistic-crypto-utils/.travis.yml
@@ -0,0 +1,11 @@
+sudo: false
+
+language: node_js
+
+node_js:
+ - "4"
+ - "6"
+ - "stable"
+
+script:
+ - npm test
diff --git a/node_modules/minimalistic-crypto-utils/README.md b/node_modules/minimalistic-crypto-utils/README.md
new file mode 100644
index 000000000..9e58eba89
--- /dev/null
+++ b/node_modules/minimalistic-crypto-utils/README.md
@@ -0,0 +1,47 @@
+# minimalistic-crypto-utils
+[![Build Status](https://secure.travis-ci.org/indutny/minimalistic-crypto-utils.svg)](http://travis-ci.org/indutny/minimalistic-crypto-utils)
+[![NPM version](https://badge.fury.io/js/minimalistic-crypto-utils.svg)](http://badge.fury.io/js/minimalistic-crypto-utils)
+
+Very minimal utils that are required in order to write reasonable JS-only
+crypto module.
+
+## Usage
+
+```js
+const utils = require('minimalistic-crypto-utils');
+
+utils.toArray('abcd', 'hex');
+utils.encode([ 1, 2, 3, 4 ], 'hex');
+utils.toHex([ 1, 2, 3, 4 ]);
+```
+
+#### LICENSE
+
+This software is licensed under the MIT License.
+
+Copyright Fedor Indutny, 2017.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to permit
+persons to whom the Software is furnished to do so, subject to the
+following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+[0]: http://tools.ietf.org/html/rfc6979
+[1]: https://github.com/indutny/bn.js
+[2]: https://github.com/indutny/hash.js
+[3]: https://github.com/bitchan/eccrypto
+[4]: https://github.com/wanderer/secp256k1-node
diff --git a/node_modules/minimalistic-crypto-utils/lib/utils.js b/node_modules/minimalistic-crypto-utils/lib/utils.js
new file mode 100644
index 000000000..cd48daf12
--- /dev/null
+++ b/node_modules/minimalistic-crypto-utils/lib/utils.js
@@ -0,0 +1,58 @@
+'use strict';
+
+var utils = exports;
+
+function toArray(msg, enc) {
+ if (Array.isArray(msg))
+ return msg.slice();
+ if (!msg)
+ return [];
+ var res = [];
+ if (typeof msg !== 'string') {
+ for (var i = 0; i < msg.length; i++)
+ res[i] = msg[i] | 0;
+ return res;
+ }
+ if (enc === 'hex') {
+ msg = msg.replace(/[^a-z0-9]+/ig, '');
+ if (msg.length % 2 !== 0)
+ msg = '0' + msg;
+ for (var i = 0; i < msg.length; i += 2)
+ res.push(parseInt(msg[i] + msg[i + 1], 16));
+ } else {
+ for (var i = 0; i < msg.length; i++) {
+ var c = msg.charCodeAt(i);
+ var hi = c >> 8;
+ var lo = c & 0xff;
+ if (hi)
+ res.push(hi, lo);
+ else
+ res.push(lo);
+ }
+ }
+ return res;
+}
+utils.toArray = toArray;
+
+function zero2(word) {
+ if (word.length === 1)
+ return '0' + word;
+ else
+ return word;
+}
+utils.zero2 = zero2;
+
+function toHex(msg) {
+ var res = '';
+ for (var i = 0; i < msg.length; i++)
+ res += zero2(msg[i].toString(16));
+ return res;
+}
+utils.toHex = toHex;
+
+utils.encode = function encode(arr, enc) {
+ if (enc === 'hex')
+ return toHex(arr);
+ else
+ return arr;
+};
diff --git a/node_modules/minimalistic-crypto-utils/package.json b/node_modules/minimalistic-crypto-utils/package.json
new file mode 100644
index 000000000..bc4c79a47
--- /dev/null
+++ b/node_modules/minimalistic-crypto-utils/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "minimalistic-crypto-utils",
+ "version": "1.0.1",
+ "description": "Minimalistic tools for JS crypto modules",
+ "main": "lib/utils.js",
+ "scripts": {
+ "test": "mocha --reporter=spec test/*-test.js"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/indutny/minimalistic-crypto-utils.git"
+ },
+ "keywords": [
+ "minimalistic",
+ "utils",
+ "crypto"
+ ],
+ "author": "Fedor Indutny <fedor@indutny.com>",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/indutny/minimalistic-crypto-utils/issues"
+ },
+ "homepage": "https://github.com/indutny/minimalistic-crypto-utils#readme",
+ "devDependencies": {
+ "mocha": "^3.2.0"
+ }
+}
diff --git a/node_modules/minimalistic-crypto-utils/test/utils-test.js b/node_modules/minimalistic-crypto-utils/test/utils-test.js
new file mode 100644
index 000000000..3da812dbc
--- /dev/null
+++ b/node_modules/minimalistic-crypto-utils/test/utils-test.js
@@ -0,0 +1,28 @@
+'use strict';
+
+const assert = require('assert');
+const utils = require('../');
+
+describe('utils', () => {
+ it('should convert to array', () => {
+ assert.deepEqual(utils.toArray('1234', 'hex'), [ 0x12, 0x34 ]);
+ assert.deepEqual(utils.toArray('1234'), [ 49, 50, 51, 52 ]);
+ assert.deepEqual(utils.toArray('1234', 'utf8'), [ 49, 50, 51, 52 ]);
+ assert.deepEqual(utils.toArray('\u1234234'), [ 18, 52, 50, 51, 52 ]);
+ assert.deepEqual(utils.toArray([ 1, 2, 3, 4 ]), [ 1, 2, 3, 4 ]);
+ });
+
+ it('should zero pad byte to hex', () => {
+ assert.equal(utils.zero2('0'), '00');
+ assert.equal(utils.zero2('01'), '01');
+ });
+
+ it('should convert to hex', () => {
+ assert.equal(utils.toHex([ 0, 1, 2, 3 ]), '00010203');
+ });
+
+ it('should encode', () => {
+ assert.deepEqual(utils.encode([ 0, 1, 2, 3 ]), [ 0, 1, 2, 3 ]);
+ assert.deepEqual(utils.encode([ 0, 1, 2, 3 ], 'hex'), '00010203');
+ });
+});