{
	"name": "scryptsy",
	"versions": {
		"0.0.1": {
			"name": "scryptsy",
			"version": "0.0.1",
			"description": "scryptsy ========",
			"main": "lib/scrypt.js",
			"scripts": {
				"test": "echo \"Error: no test specified\" && exit 1"
			},
			"author": "",
			"license": "MIT",
			"devDependencies": {
				"terst": "0.0.1"
			},
			"_id": "scryptsy@0.0.1",
			"dist": {
				"shasum": "12a5d3d6aef02472d21d71a041abc7c9669d4e47",
				"tarball": "https://registry.npmjs.org/scryptsy/-/scryptsy-0.0.1.tgz"
			},
			"_from": ".",
			"_npmVersion": "1.3.24",
			"_npmUser": {
				"name": "jp",
				"email": "jprichardson@gmail.com"
			},
			"maintainers": [
				{
					"name": "jp",
					"email": "jprichardson@gmail.com"
				}
			],
			"directories": {},
			"contributors": []
		},
		"0.1.0": {
			"name": "scryptsy",
			"version": "0.1.0",
			"description": "scryptsy ========",
			"main": "lib/scrypt.js",
			"scripts": {
				"test": "echo \"Error: no test specified\" && exit 1"
			},
			"author": "",
			"license": "MIT",
			"devDependencies": {
				"terst": "0.0.1",
				"browserify": "~3.30.1",
				"mocha": "~1.17.1"
			},
			"dependencies": {
				"pbkdf2-sha256": "~0.1.1"
			},
			"repository": {
				"url": "git@github.com:cryptocoinjs/scryptsy.git",
				"type": "git"
			},
			"keywords": [
				"crytpo",
				"cryptography",
				"scrypt",
				"kdf",
				"litecoin",
				"dogecoin",
				"bitcoin",
				"bip38"
			],
			"bugs": {
				"url": "https://github.com/cryptocoinjs/scryptsy/issues"
			},
			"homepage": "https://github.com/cryptocoinjs/scryptsy",
			"_id": "scryptsy@0.1.0",
			"dist": {
				"shasum": "9f23c05a5685c89b99d0cacffa44d8fac11bd532",
				"tarball": "https://registry.npmjs.org/scryptsy/-/scryptsy-0.1.0.tgz"
			},
			"_from": ".",
			"_npmVersion": "1.3.24",
			"_npmUser": {
				"name": "jp",
				"email": "jprichardson@gmail.com"
			},
			"maintainers": [
				{
					"name": "jp",
					"email": "jprichardson@gmail.com"
				}
			],
			"directories": {},
			"contributors": []
		},
		"0.2.0": {
			"name": "scryptsy",
			"version": "0.2.0",
			"description": "scryptsy ========",
			"main": "lib/scrypt.js",
			"scripts": {
				"test": "make node-test"
			},
			"author": "",
			"license": "MIT",
			"devDependencies": {
				"terst": "0.0.2",
				"mocha": "~1.17.1",
				"mochify": "~0.4.2"
			},
			"dependencies": {
				"pbkdf2-sha256": "~0.1.1"
			},
			"repository": {
				"url": "git@github.com:cryptocoinjs/scryptsy.git",
				"type": "git"
			},
			"keywords": [
				"crytpo",
				"cryptography",
				"scrypt",
				"kdf",
				"litecoin",
				"dogecoin",
				"bitcoin",
				"bip38"
			],
			"bugs": {
				"url": "https://github.com/cryptocoinjs/scryptsy/issues"
			},
			"homepage": "https://github.com/cryptocoinjs/scryptsy",
			"_id": "scryptsy@0.2.0",
			"dist": {
				"shasum": "7fa5c9e05ee379b8f43ab0d0d695e0054ac2935a",
				"tarball": "https://registry.npmjs.org/scryptsy/-/scryptsy-0.2.0.tgz"
			},
			"_from": ".",
			"_npmVersion": "1.3.24",
			"_npmUser": {
				"name": "jp",
				"email": "jprichardson@gmail.com"
			},
			"maintainers": [
				{
					"name": "jp",
					"email": "jprichardson@gmail.com"
				}
			],
			"directories": {},
			"contributors": []
		},
		"1.0.0": {
			"name": "scryptsy",
			"version": "1.0.0",
			"description": "Pure JavaScript implementation of the scrypt key deriviation function that is fully compatible with Node.js and the browser.",
			"main": "lib/scrypt.js",
			"author": "",
			"license": "MIT",
			"devDependencies": {
				"mocha": "^1.20.1",
				"mochify": "^0.4.2",
				"crypto-browserify": "^2.1.8",
				"istanbul": "^0.2.11",
				"coveralls": "^2.10.0"
			},
			"dependencies": {
				"pbkdf2-sha256": "^1.0.1"
			},
			"repository": {
				"url": "git@github.com:cryptocoinjs/scryptsy.git",
				"type": "git"
			},
			"keywords": [
				"crytpo",
				"cryptography",
				"scrypt",
				"kdf",
				"litecoin",
				"dogecoin",
				"bitcoin",
				"bip38"
			],
			"browser": {
				"crypto": "crypto-browserify"
			},
			"scripts": {
				"test": "mocha --ui bdd",
				"unit": "mocha",
				"coverage": "istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
				"coveralls": "npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info"
			},
			"testling": {
				"harness": "mocha",
				"files": "test/*.js",
				"browsers": [
					"firefox/latest",
					"chrome/latest",
					"ie/9..latest",
					"safari/6.0..latest",
					"iphone/6.0..latest",
					"android-browser/4.2..latest"
				]
			},
			"bugs": {
				"url": "https://github.com/cryptocoinjs/scryptsy/issues"
			},
			"homepage": "https://github.com/cryptocoinjs/scryptsy",
			"_id": "scryptsy@1.0.0",
			"dist": {
				"shasum": "6f424455b11d491e4451376cb8e2bdf70d1f2b08",
				"tarball": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.0.0.tgz"
			},
			"_from": ".",
			"_npmVersion": "1.4.3",
			"_npmUser": {
				"name": "jp",
				"email": "jprichardson@gmail.com"
			},
			"maintainers": [
				{
					"name": "jp",
					"email": "jprichardson@gmail.com"
				},
				{
					"name": "nadav",
					"email": "npm@shesek.info"
				}
			],
			"directories": {},
			"contributors": []
		},
		"1.1.0": {
			"name": "scryptsy",
			"version": "1.1.0",
			"description": "Pure JavaScript implementation of the scrypt key deriviation function that is fully compatible with Node.js and the browser.",
			"main": "lib/scrypt.js",
			"author": "",
			"license": "MIT",
			"devDependencies": {
				"mocha": "^1.20.1",
				"mochify": "^0.4.2",
				"crypto-browserify": "^2.1.8",
				"istanbul": "^0.2.11",
				"coveralls": "^2.10.0"
			},
			"dependencies": {
				"pbkdf2-sha256": "^1.0.1"
			},
			"repository": {
				"url": "git@github.com:cryptocoinjs/scryptsy.git",
				"type": "git"
			},
			"keywords": [
				"crytpo",
				"cryptography",
				"scrypt",
				"kdf",
				"litecoin",
				"dogecoin",
				"bitcoin",
				"bip38"
			],
			"browser": {
				"crypto": "crypto-browserify"
			},
			"scripts": {
				"test": "mocha --ui bdd",
				"unit": "mocha",
				"coverage": "istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
				"coveralls": "npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info"
			},
			"testling": {
				"harness": "mocha",
				"files": "test/*.js",
				"browsers": [
					"firefox/latest",
					"chrome/latest",
					"ie/9..latest",
					"safari/6.0..latest",
					"iphone/6.0..latest",
					"android-browser/4.2..latest"
				]
			},
			"bugs": {
				"url": "https://github.com/cryptocoinjs/scryptsy/issues"
			},
			"homepage": "https://github.com/cryptocoinjs/scryptsy",
			"_id": "scryptsy@1.1.0",
			"dist": {
				"shasum": "e15ede57ebfe351225a4f7d8460dae9799420bf2",
				"tarball": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.1.0.tgz"
			},
			"_from": ".",
			"_npmVersion": "1.4.3",
			"_npmUser": {
				"name": "jp",
				"email": "jprichardson@gmail.com"
			},
			"maintainers": [
				{
					"name": "jp",
					"email": "jprichardson@gmail.com"
				},
				{
					"name": "nadav",
					"email": "npm@shesek.info"
				}
			],
			"directories": {},
			"contributors": []
		},
		"1.2.0": {
			"name": "scryptsy",
			"version": "1.2.0",
			"description": "Pure JavaScript implementation of the scrypt key deriviation function that is fully compatible with Node.js and the browser.",
			"main": "lib/scrypt.js",
			"author": "",
			"license": "MIT",
			"devDependencies": {
				"mocha": "^1.20.1",
				"mochify": "^2.1.0",
				"istanbul": "^0.2.11",
				"coveralls": "^2.10.0"
			},
			"dependencies": {
				"pbkdf2-sha256": "^1.1.0"
			},
			"repository": {
				"url": "git@github.com:cryptocoinjs/scryptsy.git",
				"type": "git"
			},
			"keywords": [
				"crytpo",
				"cryptography",
				"scrypt",
				"kdf",
				"litecoin",
				"dogecoin",
				"bitcoin",
				"bip38"
			],
			"scripts": {
				"test": "mocha --ui bdd",
				"unit": "mocha",
				"coverage": "istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
				"coveralls": "npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info",
				"browser-test": "mochify --wd -R spec"
			},
			"gitHead": "14161320c79c79c5dca876850af1e57bb9e0db31",
			"bugs": {
				"url": "https://github.com/cryptocoinjs/scryptsy/issues"
			},
			"homepage": "https://github.com/cryptocoinjs/scryptsy",
			"_id": "scryptsy@1.2.0",
			"_shasum": "71b7fb3b84af70fe4ea21370fe91848261eb0b20",
			"_from": ".",
			"_npmVersion": "2.1.11",
			"_nodeVersion": "0.10.26",
			"_npmUser": {
				"name": "jp",
				"email": "jprichardson@gmail.com"
			},
			"maintainers": [
				{
					"name": "jp",
					"email": "jprichardson@gmail.com"
				},
				{
					"name": "nadav",
					"email": "npm@shesek.info"
				}
			],
			"dist": {
				"shasum": "71b7fb3b84af70fe4ea21370fe91848261eb0b20",
				"tarball": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.0.tgz"
			},
			"directories": {},
			"contributors": []
		},
		"1.2.1": {
			"name": "scryptsy",
			"version": "1.2.1",
			"description": "Pure JavaScript implementation of the scrypt key deriviation function that is fully compatible with Node.js and the browser.",
			"main": "lib/scrypt.js",
			"author": "",
			"license": "MIT",
			"devDependencies": {
				"coveralls": "^2.10.0",
				"istanbul": "^0.3.5",
				"mocha": "^2.2.0",
				"mochify": "^2.1.0",
				"standard": "^3.2.0"
			},
			"dependencies": {
				"pbkdf2": "^3.0.3"
			},
			"repository": {
				"url": "git@github.com:cryptocoinjs/scryptsy.git",
				"type": "git"
			},
			"keywords": [
				"crytpo",
				"cryptography",
				"scrypt",
				"kdf",
				"litecoin",
				"dogecoin",
				"bitcoin",
				"bip38"
			],
			"scripts": {
				"test": "mocha --ui bdd",
				"unit": "mocha",
				"coverage": "istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
				"coveralls": "npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info",
				"browser-test": "mochify --wd -R spec",
				"standard": "standard"
			},
			"gitHead": "8654535daac060c0b8b6288eb35ca194f1e67d58",
			"bugs": {
				"url": "https://github.com/cryptocoinjs/scryptsy/issues"
			},
			"homepage": "https://github.com/cryptocoinjs/scryptsy",
			"_id": "scryptsy@1.2.1",
			"_shasum": "a3225fa4b2524f802700761e2855bdf3b2d92163",
			"_from": ".",
			"_npmVersion": "2.3.0",
			"_nodeVersion": "0.10.32",
			"_npmUser": {
				"name": "jprichardson",
				"email": "jprichardson@gmail.com"
			},
			"maintainers": [
				{
					"name": "nadav",
					"email": "npm@shesek.info"
				},
				{
					"name": "jprichardson",
					"email": "jprichardson@gmail.com"
				}
			],
			"dist": {
				"shasum": "a3225fa4b2524f802700761e2855bdf3b2d92163",
				"tarball": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz"
			},
			"directories": {},
			"contributors": []
		},
		"2.0.0": {
			"name": "scryptsy",
			"version": "2.0.0",
			"description": "Pure JavaScript implementation of the scrypt key deriviation function that is fully compatible with Node.js and the browser.",
			"main": "lib/scrypt.js",
			"author": "",
			"license": "MIT",
			"devDependencies": {
				"coveralls": "^2.10.0",
				"istanbul": "^0.3.5",
				"mocha": "^2.2.0",
				"mochify": "^2.1.0",
				"standard": "^7.1.1"
			},
			"dependencies": {},
			"repository": {
				"url": "git+ssh://git@github.com/cryptocoinjs/scryptsy.git",
				"type": "git"
			},
			"keywords": [
				"crytpo",
				"cryptography",
				"scrypt",
				"kdf",
				"litecoin",
				"dogecoin",
				"bitcoin",
				"bip38"
			],
			"scripts": {
				"test": "mocha --ui bdd",
				"unit": "mocha",
				"coverage": "istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
				"coveralls": "npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info",
				"browser-test": "mochify --wd -R spec",
				"lint": "standard"
			},
			"gitHead": "8b0ff0d4edf72d5031e8f088b188c4ae1a604af9",
			"bugs": {
				"url": "https://github.com/cryptocoinjs/scryptsy/issues"
			},
			"homepage": "https://github.com/cryptocoinjs/scryptsy#readme",
			"_id": "scryptsy@2.0.0",
			"_shasum": "262c36f0231cfa7654e2363fa394cd2dec66f378",
			"_from": ".",
			"_npmVersion": "3.8.6",
			"_nodeVersion": "6.1.0",
			"_npmUser": {
				"name": "jprichardson",
				"email": "jprichardson@gmail.com"
			},
			"dist": {
				"shasum": "262c36f0231cfa7654e2363fa394cd2dec66f378",
				"tarball": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.0.0.tgz"
			},
			"maintainers": [
				{
					"name": "nadav",
					"email": "npm@shesek.info"
				},
				{
					"name": "jprichardson",
					"email": "jprichardson@gmail.com"
				}
			],
			"_npmOperationalInternal": {
				"host": "packages-16-east.internal.npmjs.com",
				"tmp": "tmp/scryptsy-2.0.0.tgz_1464319774232_0.4792607366107404"
			},
			"directories": {},
			"contributors": []
		},
		"2.1.0": {
			"name": "scryptsy",
			"version": "2.1.0",
			"description": "Pure JavaScript implementation of the scrypt key deriviation function that is fully compatible with Node.js and the browser.",
			"main": "lib/index.js",
			"author": "",
			"license": "MIT",
			"devDependencies": {
				"coveralls": "^3.0.3",
				"mocha": "^6.0.2",
				"mochify": "^6.1.0",
				"nyc": "^13.3.0",
				"standard": "^12.0.1"
			},
			"dependencies": {},
			"repository": {
				"url": "git+ssh://git@github.com/cryptocoinjs/scryptsy.git",
				"type": "git"
			},
			"keywords": [
				"crytpo",
				"cryptography",
				"scrypt",
				"kdf",
				"litecoin",
				"dogecoin",
				"bitcoin",
				"bip38"
			],
			"scripts": {
				"test": "mocha --ui bdd",
				"unit": "mocha",
				"coverage": "nyc --check-coverage --statements 80 --branches 60 --functions 90 --lines 90 mocha",
				"coveralls": "npm run-script coverage && coveralls < coverage/lcov.info",
				"browser-test": "mochify --wd -R spec",
				"lint": "standard"
			},
			"gitHead": "395c3b09b21e06ea4a6cc2933e046c0984a414c5",
			"bugs": {
				"url": "https://github.com/cryptocoinjs/scryptsy/issues"
			},
			"homepage": "https://github.com/cryptocoinjs/scryptsy#readme",
			"_id": "scryptsy@2.1.0",
			"_nodeVersion": "10.16.0",
			"_npmVersion": "6.9.0",
			"dist": {
				"integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==",
				"shasum": "8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790",
				"tarball": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz",
				"fileCount": 8,
				"unpackedSize": 15643,
				"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc95FXCRA9TVsSAnZWagAA65kQAKNQqYw3LH5z6BE2S6oc\n5LLqJpegqfB0J52S8LQpDTMy1+7ZSpymgtTF7UECUAKCwHTulF8hIscDbEvu\nr25a1m0ELfN6Dwvf4BsfR18p3iFcm6C2K9Mb2ZprPIYqEJemFfwKPn9St/uA\nDJzIluf6MimgpAB2hy1rJuwB2mZ7uyC0/a6AikDU5jb826deokrAoI+3u4RC\nPP/e5uTx3mDe5xybOgrTql6tnJSehXfA9beOycY2vnM3a2rqp4L9b6RbE6sC\nNc8ICh+qukYmKNE6pspxohvs5/WLK/8uqDuPgrei4Td2QuNwv2tk/jcAKYog\nTsOD46UZ/KLWsCmoFCy3SC7ZYowvnV8pnrOXQ+rTnw/zww+aVc6ZvVzTBI3t\n62FAz9Ci36G+fnwx024oKuRfRrNKln/RLoxw5GjhwaSnrs2GsmNTOOyRWS2I\nncYDjpmCdWMBoFKCSKguIx24fUYmme0VXT+AA0QD9HTH+iGOA3V1yVIR9mz8\nGPdbLmFl8vqzrJoKjdyeCelrjQG6for9OD0e4SZkkqpAmZ9voWY5RZbRLE36\nQ1sFi5aClen1YR2Jq+LexWHLt8tTVu6FCbq+3z5dVDJCbbGxgONKbp/RM6LT\nOW2rbtWBB428eIsJBeYxFnNUYp9zYbOI1YKxoY025KSw6r9jg5kJMMTxZNVS\new4W\r\n=v3tA\r\n-----END PGP SIGNATURE-----\r\n"
			},
			"maintainers": [
				{
					"email": "jprichardson@gmail.com",
					"name": "jprichardson"
				},
				{
					"email": "junderwood@bitcoinbank.co.jp",
					"name": "junderw"
				},
				{
					"email": "npm@shesek.info",
					"name": "nadav"
				}
			],
			"_npmUser": {
				"name": "junderw",
				"email": "junderwood@bitcoinbank.co.jp"
			},
			"directories": {},
			"_npmOperationalInternal": {
				"host": "s3://npm-registry-packages",
				"tmp": "tmp/scryptsy_2.1.0_1559728470428_0.9191130197757345"
			},
			"_hasShrinkwrap": false,
			"contributors": []
		}
	},
	"time": {
		"modified": "2019-06-05T09:54:33.491Z",
		"created": "2014-02-18T19:40:30.842Z",
		"0.0.1": "2014-02-18T19:40:30.842Z",
		"0.1.0": "2014-02-19T18:15:54.157Z",
		"0.2.0": "2014-03-06T01:26:33.392Z",
		"1.0.0": "2014-06-10T07:58:18.884Z",
		"1.1.0": "2014-07-28T11:46:15.342Z",
		"1.2.0": "2014-12-11T18:35:24.864Z",
		"1.2.1": "2015-03-20T16:29:28.762Z",
		"2.0.0": "2016-05-27T03:29:36.077Z",
		"2.1.0": "2019-06-05T09:54:30.597Z"
	},
	"users": {},
	"dist-tags": {
		"latest": "2.1.0"
	},
	"_uplinks": {
		"npmjs": {
			"etag": "W/\"4e965fc018e1e5bbcbea6e64e3fb35fd\"",
			"fetched": 1602009399466
		}
	},
	"_distfiles": {
		"scryptsy-0.0.1.tgz": {
			"url": "https://registry.npmjs.org/scryptsy/-/scryptsy-0.0.1.tgz",
			"sha": "12a5d3d6aef02472d21d71a041abc7c9669d4e47",
			"registry": "npmjs"
		},
		"scryptsy-0.1.0.tgz": {
			"url": "https://registry.npmjs.org/scryptsy/-/scryptsy-0.1.0.tgz",
			"sha": "9f23c05a5685c89b99d0cacffa44d8fac11bd532",
			"registry": "npmjs"
		},
		"scryptsy-0.2.0.tgz": {
			"url": "https://registry.npmjs.org/scryptsy/-/scryptsy-0.2.0.tgz",
			"sha": "7fa5c9e05ee379b8f43ab0d0d695e0054ac2935a",
			"registry": "npmjs"
		},
		"scryptsy-1.0.0.tgz": {
			"url": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.0.0.tgz",
			"sha": "6f424455b11d491e4451376cb8e2bdf70d1f2b08",
			"registry": "npmjs"
		},
		"scryptsy-1.1.0.tgz": {
			"url": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.1.0.tgz",
			"sha": "e15ede57ebfe351225a4f7d8460dae9799420bf2",
			"registry": "npmjs"
		},
		"scryptsy-1.2.0.tgz": {
			"url": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.0.tgz",
			"sha": "71b7fb3b84af70fe4ea21370fe91848261eb0b20",
			"registry": "npmjs"
		},
		"scryptsy-1.2.1.tgz": {
			"url": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz",
			"sha": "a3225fa4b2524f802700761e2855bdf3b2d92163",
			"registry": "npmjs"
		},
		"scryptsy-2.0.0.tgz": {
			"url": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.0.0.tgz",
			"sha": "262c36f0231cfa7654e2363fa394cd2dec66f378",
			"registry": "npmjs"
		},
		"scryptsy-2.1.0.tgz": {
			"url": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz",
			"sha": "8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790",
			"registry": "npmjs"
		}
	},
	"_attachments": {
		"scryptsy-1.2.1.tgz": {
			"shasum": "a3225fa4b2524f802700761e2855bdf3b2d92163"
		}
	},
	"_rev": "21-a546c6c50ab02457",
	"_id": "scryptsy",
	"readme": "scryptsy\n========\n\n[![build status](https://secure.travis-ci.org/cryptocoinjs/scryptsy.svg)](http://travis-ci.org/cryptocoinjs/scryptsy)\n[![Coverage Status](https://img.shields.io/coveralls/cryptocoinjs/scryptsy.svg)](https://coveralls.io/r/cryptocoinjs/scryptsy)\n[![Version](http://img.shields.io/npm/v/scryptsy.svg)](https://www.npmjs.org/package/scryptsy)\n\n`scryptsy` is a pure Javascript implementation of the [scrypt][wiki] key derivation function that is fully compatible with Node.js and the browser (via Browserify).\n\n\nWhy?\n----\n\n`Scrypt` is an integral part of many crypto currencies. It's a part of the [BIP38](https://github.com/bitcoin/bips/blob/master/bip-0038.mediawiki) standard for encrypting private Bitcoin keys. It also serves as the [proof-of-work system](http://en.wikipedia.org/wiki/Proof-of-work_system) for many crypto currencies, most notably: Litecoin and Dogecoin.\n\n\n\nInstallation\n------------\n\n    npm install --save scryptsy\n\n\n\nBrowserify Note\n------------\n\nWhen using a browserified bundle, be sure to add `setImmediate` as a shim.\n\n\n\nExample\n-------\n\n```js\nconst scrypt = require('scryptsy')\n\nasync function main () {\n  var key = \"pleaseletmein\"\n  var salt = \"SodiumChloride\"\n  var data1 = scrypt(key, salt, 16384, 8, 1, 64)\n  console.log(data1.toString('hex'))\n  // => 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887\n\n  // async is actually slower, but it will free up the event loop occasionally\n  // which will allow for front end GUI elements to update and cause it to not\n  // freeze up.\n  // See benchmarks below\n  // Passing 300 below means every 300 iterations internally will call setImmediate once\n  var data2 = await scrypt.async(key, salt, 16384, 8, 1, 64, undefined, 300)\n  console.log(data2.toString('hex'))\n  // => 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887\n}\nmain().catch(console.error)\n```\n\n\nBenchmarks\n-------\n\nInternal iterations are N * p, so changing r doesn't affect the number of calls to setImmediate.\nDecreasing pI decreases performance in exchange for more frequently freeing the event loop.\n(pI Default is 5000 loops per setImmediate call)\n\nNote: these benchmarks were done on node v10 on a CPU with good single thread performance.\nbrowsers show a much larger difference. Please tinker with the pI setting to balance between\nperformance and GUI responsiveness.\n\nIf `pI >= N`, setImmediate will only be called `p * 2` times total (on the i = 0 of each for loop).\n\n```\n---------------------------\ntime    : type : (N,r,p,pI) (pI = promiseInterval)\n---------------------------\n2266 ms :  sync (2^16,16,1)\n2548 ms : async (2^16,16,1,5000)\n12.44% increase\n---------------------------\n2616 ms :  sync (2^16,1,16)\n2995 ms : async (2^16,1,16,5000)\n14.49% increase\n---------------------------\n2685 ms :  sync (2^20,1,1)\n3090 ms : async (2^20,1,1,5000)\n15.08% increase\n---------------------------\n2235 ms :  sync (2^16,16,1)\n2627 ms : async (2^16,16,1,10)\n17.54% increase\n---------------------------\n2592 ms :  sync (2^16,1,16)\n3305 ms : async (2^16,1,16,10)\n27.51% increase\n---------------------------\n2705 ms :  sync (2^20,1,1)\n3363 ms : async (2^20,1,1,10)\n24.33% increase\n---------------------------\n2278 ms :  sync (2^16,16,1)\n2773 ms : async (2^16,16,1,1)\n21.73% increase\n---------------------------\n2617 ms :  sync (2^16,1,16)\n5632 ms : async (2^16,1,16,1)\n115.21% increase\n---------------------------\n2727 ms :  sync (2^20,1,1)\n5723 ms : async (2^20,1,1,1)\n109.86% increase\n---------------------------\n```\n\nAPI\n---\n\n### scrypt(key, salt, N, r, p, keyLenBytes, [progressCallback])\n\n- **key**: The key. Either `Buffer` or `string`.\n- **salt**: The salt. Either `Buffer` or `string`.\n- **N**: The number of iterations. `number` (integer)\n- **r**: Memory factor. `number` (integer)\n- **p**: Parallelization factor. `number` (integer)\n- **keyLenBytes**: The number of bytes to return. `number` (integer)\n- **progressCallback**: Call callback on every `1000` ops. Passes in `{current, total, percent}` as first parameter to `progressCallback()`.\n\nReturns `Buffer`.\n\n### scrypt.async(key, salt, N, r, p, keyLenBytes, [progressCallback, promiseInterval])\n\n- **key**: The key. Either `Buffer` or `string`.\n- **salt**: The salt. Either `Buffer` or `string`.\n- **N**: The number of iterations. `number` (integer)\n- **r**: Memory factor. `number` (integer)\n- **p**: Parallelization factor. `number` (integer)\n- **keyLenBytes**: The number of bytes to return. `number` (integer)\n- **progressCallback**: Call callback on every `1000` ops. Passes in `{current, total, percent}` as first parameter to `progressCallback()`.\n- **promiseInterval**: The number of internal iterations before calling setImmediate once to free the event loop.\n\nReturns `Promise<Buffer>`.\n\n\n\nResources\n---------\n- [Tarsnap Blurb on Scrypt][tarsnap]\n- [Scrypt Whitepaper](http://www.tarsnap.com/scrypt/scrypt.pdf)\n- [IETF Scrypt](https://tools.ietf.org/html/draft-josefsson-scrypt-kdf-00) (Test vector params are [incorrect](https://twitter.com/dchest/status/247734446881640448).)\n\n\nLicense\n-------\n\nMIT\n\n\n[wiki]: http://en.wikipedia.org/wiki/Scrypt\n[tarsnap]: http://www.tarsnap.com/scrypt.html"
}