UNPKG

bot18

Version:

A high-frequency cryptocurrency trading bot by Zenbot creator @carlos8f

155 lines (129 loc) 6.85 kB
node-js-scrypt ============== [JS Implementation of SCrypt](https://github.com/tonyg/js-scrypt) wrapped in a module for node.js consumption. There are no compiled dependencies for this module. It returned the computed bytes as a Buffer, not the Scrypt Hash Format (`c2NyeXB0`) string with included metadata. ## Installation npm install js-scrypt ## Usage var scrypt = require('js-scrypt'); //asynchronous scrypt.hash(password, salt [,options], callback); //synchronous var resultBuffer = scrypt.hashSync(password, salt [,options]) ## Parameters * `password` (String or Buffer) - the value to be encoded/ * String will be encoded to bytes as UTF-8. * Buffer will be encoded as-is. * `salt` (String or Buffer) - random data to be included in the hash. * String will be encoded to bytes as UTF-8. * Buffer will be encoded as-is. * `options` (Object, optional) * `maxmem` (Integer, optional) - the total memory available for scrypt in megabytes * default: 32 * allowed values are (4,8,16,32,64,128,256,512,1024,2048) * `cost` (Integer, optional) - (N) must be a power of two, will set the overall difficulty of the computation. * default: 16384 - Math.pow(2,14) * min: Math.pow(2,8) - 256 * max: Math.pow(2,64) - 18446744073709552000 * Math.pow(2,14) - the scrypt paper's suggestion for interactive logins * Math.pow(2,20) - the scrypt paper's suggestion for filesystem encryption * `blockSize` (Integer, optional) - (r) blocksize to use * default: 8 * min: 1 * max: 256 * `parallel` (Integer, optional) - (p) parallelization factor * default: 1 (given the runtime environment, it is probably best to leave this as-is) * min: 1 * max: 256 * `size` (Integer, optional) - (L) length of result (number of bytes to generate) * default: 64 (this is a 512bit result, which is plenty for general password usage) * min: 1 * max: 2048 * `callback` (Function) - function(err, resultBuffer) ## TODO * Create method(s) to simulate time/memory computation of Nrp vectors which will return a `c2NyeXB0` Scrypt Hash Format string. ## License node-js-scrypt is written by Michael J. Ryan <tracker1@gmail.com> and is licensed under the [2-clause BSD license](http://opensource.org/licenses/BSD-2-Clause): > Copyright &copy; 2013, Michael J. Ryan > All rights reserved. > > Redistribution and use in source and binary forms, with or without > modification, are permitted provided that the following conditions > are met: > > 1. Redistributions of source code must retain the above copyright > notice, this list of conditions and the following disclaimer. > > 2. Redistributions in binary form must reproduce the above copyright > notice, this list of conditions and the following disclaimer in > the documentation and/or other materials provided with the > distribution. > > THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS > "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS > FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE > COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, > INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, > BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; > LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER > CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT > LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN > ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > POSSIBILITY OF SUCH DAMAGE. node-js-scrypt relies on `js-scrypt` which is written by Tony Garnock-Jones <tonygarnockjones@gmail.com> and is licensed under the [2-clause BSD license](http://opensource.org/licenses/BSD-2-Clause): > Copyright &copy; 2013, Tony Garnock-Jones > All rights reserved. > > Redistribution and use in source and binary forms, with or without > modification, are permitted provided that the following conditions > are met: > > 1. Redistributions of source code must retain the above copyright > notice, this list of conditions and the following disclaimer. > > 2. Redistributions in binary form must reproduce the above copyright > notice, this list of conditions and the following disclaimer in > the documentation and/or other materials provided with the > distribution. > > THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS > "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT > LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS > FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE > COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, > INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, > BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; > LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER > CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT > LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN > ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > POSSIBILITY OF SUCH DAMAGE. js-scrypt relies on `scrypt` itself, which is written by Colin Percival and licensed as follows: > Copyright 2009 Colin Percival > All rights reserved. > > Redistribution and use in source and binary forms, with or without > modification, are permitted provided that the following conditions > are met: > > 1. Redistributions of source code must retain the above copyright > notice, this list of conditions and the following disclaimer. > 2. Redistributions in binary form must reproduce the above copyright > notice, this list of conditions and the following disclaimer in the > documentation and/or other materials provided with the distribution. > > THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND > ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE > FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL > DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT > LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY > OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > SUCH DAMAGE.