You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					46 lines
				
				1.6 KiB
			
		
		
			
		
	
	
					46 lines
				
				1.6 KiB
			| 
											3 years ago
										 | Port of the OpenBSD `bcrypt_pbkdf` function to pure Javascript. `npm`-ified | ||
|  | version of [Devi Mandiri's port](https://github.com/devi/tmp/blob/master/js/bcrypt_pbkdf.js), | ||
|  | with some minor performance improvements. The code is copied verbatim (and | ||
|  | un-styled) from Devi's work. | ||
|  | 
 | ||
|  | This product includes software developed by Niels Provos. | ||
|  | 
 | ||
|  | ## API
 | ||
|  | 
 | ||
|  | ### `bcrypt_pbkdf.pbkdf(pass, passlen, salt, saltlen, key, keylen, rounds)`
 | ||
|  | 
 | ||
|  | Derive a cryptographic key of arbitrary length from a given password and salt, | ||
|  | using the OpenBSD `bcrypt_pbkdf` function. This is a combination of Blowfish and | ||
|  | SHA-512. | ||
|  | 
 | ||
|  | See [this article](http://www.tedunangst.com/flak/post/bcrypt-pbkdf) for | ||
|  | further information. | ||
|  | 
 | ||
|  | Parameters: | ||
|  | 
 | ||
|  |  * `pass`, a Uint8Array of length `passlen` | ||
|  |  * `passlen`, an integer Number | ||
|  |  * `salt`, a Uint8Array of length `saltlen` | ||
|  |  * `saltlen`, an integer Number | ||
|  |  * `key`, a Uint8Array of length `keylen`, will be filled with output | ||
|  |  * `keylen`, an integer Number | ||
|  |  * `rounds`, an integer Number, number of rounds of the PBKDF to run | ||
|  | 
 | ||
|  | ### `bcrypt_pbkdf.hash(sha2pass, sha2salt, out)`
 | ||
|  | 
 | ||
|  | Calculate a Blowfish hash, given SHA2-512 output of a password and salt. Used as | ||
|  | part of the inner round function in the PBKDF. | ||
|  | 
 | ||
|  | Parameters: | ||
|  | 
 | ||
|  |  * `sha2pass`, a Uint8Array of length 64 | ||
|  |  * `sha2salt`, a Uint8Array of length 64 | ||
|  |  * `out`, a Uint8Array of length 32, will be filled with output | ||
|  | 
 | ||
|  | ## License
 | ||
|  | 
 | ||
|  | This source form is a 1:1 port from the OpenBSD `blowfish.c` and `bcrypt_pbkdf.c`. | ||
|  | As a result, it retains the original copyright and license. The two files are | ||
|  | under slightly different (but compatible) licenses, and are here combined in | ||
|  | one file. For each of the full license texts see `LICENSE`. |