{"maintainers":[{"name":"arekinath","email":"alex@cooperi.net"},{"name":"dap","email":"dap@cs.brown.edu"},{"name":"jclulow","email":"josh@sysmgr.org"},{"name":"trentm","email":"trentm@gmail.com"}],"license":"BSD-3-Clause","versions":{"1.0.0":{"name":"bcrypt-pbkdf","version":"1.0.0","description":"Port of the OpenBSD bcrypt_pbkdf function to pure JS","main":"index.js","dependencies":{"tweetnacl":"^0.14.3"},"devDependencies":{},"license":"BSD-4-Clause","gitHead":"e88be37d3cd25395b4aa496ac468b33671368be6","_id":"bcrypt-pbkdf@1.0.0","scripts":{},"_shasum":"3ca76b85241c7170bf7d9703e7b9aa74630040d4","_from":".","_npmVersion":"3.10.3","_nodeVersion":"0.12.15","_npmUser":{"name":"arekinath","email":"alex@cooperi.net"},"dist":{"shasum":"3ca76b85241c7170bf7d9703e7b9aa74630040d4","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz"},"maintainers":[{"name":"arekinath","email":"alex@cooperi.net"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/bcrypt-pbkdf-1.0.0.tgz_1471381825814_0.06877309852279723"},"directories":{}},"1.0.1":{"name":"bcrypt-pbkdf","version":"1.0.1","description":"Port of the OpenBSD bcrypt_pbkdf function to pure JS","main":"index.js","dependencies":{"tweetnacl":"^0.14.3"},"devDependencies":{},"license":"BSD-3-Clause","gitHead":"fa2ab3ae9efa15367264151398635a915c7b411d","_id":"bcrypt-pbkdf@1.0.1","scripts":{},"_shasum":"63bc5dcb61331b92bc05fd528953c33462a06f8d","_from":".","_npmVersion":"2.14.9","_nodeVersion":"0.12.9","_npmUser":{"name":"arekinath","email":"alex@cooperi.net"},"dist":{"shasum":"63bc5dcb61331b92bc05fd528953c33462a06f8d","tarball":"http://nexus.dui88.com:8081/nexus/content/repositories/npm-registry/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz"},"maintainers":[{"name":"arekinath","email":"alex@cooperi.net"},{"name":"dap","email":"dap@cs.brown.edu"},{"name":"jclulow","email":"josh@sysmgr.org"},{"name":"trentm","email":"trentm@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/bcrypt-pbkdf-1.0.1.tgz_1486007687899_0.974529881728813"},"directories":{}}},"dist-tags":{"latest":"1.0.1"},"name":"bcrypt-pbkdf","description":"Port of the OpenBSD bcrypt_pbkdf function to pure JS","time":{"modified":"2017-02-02T03:54:49.593Z","created":"2016-08-16T21:10:29.470Z","1.0.0":"2016-08-16T21:10:29.470Z","1.0.1":"2017-02-02T03:54:49.593Z"},"readmeFilename":"README.md","readme":"Port of the OpenBSD `bcrypt_pbkdf` function to pure Javascript. `npm`-ified\nversion of [Devi Mandiri's port]\n(https://github.com/devi/tmp/blob/master/js/bcrypt_pbkdf.js),\nwith some minor performance improvements. The code is copied verbatim (and\nun-styled) from Devi's work.\n\nThis product includes software developed by Niels Provos.\n\n## API\n\n### `bcrypt_pbkdf.pbkdf(pass, passlen, salt, saltlen, key, keylen, rounds)`\n\nDerive a cryptographic key of arbitrary length from a given password and salt,\nusing the OpenBSD `bcrypt_pbkdf` function. This is a combination of Blowfish and\nSHA-512.\n\nSee [this article](http://www.tedunangst.com/flak/post/bcrypt-pbkdf) for\nfurther information.\n\nParameters:\n\n * `pass`, a Uint8Array of length `passlen`\n * `passlen`, an integer Number\n * `salt`, a Uint8Array of length `saltlen`\n * `saltlen`, an integer Number\n * `key`, a Uint8Array of length `keylen`, will be filled with output\n * `keylen`, an integer Number\n * `rounds`, an integer Number, number of rounds of the PBKDF to run\n\n### `bcrypt_pbkdf.hash(sha2pass, sha2salt, out)`\n\nCalculate a Blowfish hash, given SHA2-512 output of a password and salt. Used as\npart of the inner round function in the PBKDF.\n\nParameters:\n\n * `sha2pass`, a Uint8Array of length 64\n * `sha2salt`, a Uint8Array of length 64\n * `out`, a Uint8Array of length 32, will be filled with output\n"}