97 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
/**
 | 
						|
 * Config source: https://git.io/JfefW
 | 
						|
 *
 | 
						|
 * Feel free to let us know via PR, if you find something broken in this config
 | 
						|
 * file.
 | 
						|
 */
 | 
						|
 | 
						|
import Env from '@ioc:Adonis/Core/Env'
 | 
						|
import { hashConfig } from '@adonisjs/core/build/config'
 | 
						|
 | 
						|
/*
 | 
						|
|--------------------------------------------------------------------------
 | 
						|
| Hash Config
 | 
						|
|--------------------------------------------------------------------------
 | 
						|
|
 | 
						|
| The `HashConfig` relies on the `HashList` interface which is
 | 
						|
| defined inside `contracts` directory.
 | 
						|
|
 | 
						|
*/
 | 
						|
export default hashConfig({
 | 
						|
  /*
 | 
						|
  |--------------------------------------------------------------------------
 | 
						|
  | Default hasher
 | 
						|
  |--------------------------------------------------------------------------
 | 
						|
  |
 | 
						|
  | By default we make use of the argon hasher to hash values. However, feel
 | 
						|
  | free to change the default value
 | 
						|
  |
 | 
						|
  */
 | 
						|
  default: Env.get('HASH_DRIVER', 'scrypt'),
 | 
						|
 | 
						|
  list: {
 | 
						|
    /*
 | 
						|
    |--------------------------------------------------------------------------
 | 
						|
    | scrypt
 | 
						|
    |--------------------------------------------------------------------------
 | 
						|
    |
 | 
						|
    | Scrypt mapping uses the Node.js inbuilt crypto module for creating
 | 
						|
    | hashes.
 | 
						|
    |
 | 
						|
    | We are using the default configuration recommended within the Node.js
 | 
						|
    | documentation.
 | 
						|
    | https://nodejs.org/api/crypto.html#cryptoscryptpassword-salt-keylen-options-callback
 | 
						|
    |
 | 
						|
    */
 | 
						|
    scrypt: {
 | 
						|
      driver: 'scrypt',
 | 
						|
      cost: 16384,
 | 
						|
      blockSize: 8,
 | 
						|
      parallelization: 1,
 | 
						|
      saltSize: 16,
 | 
						|
      keyLength: 64,
 | 
						|
      maxMemory: 32 * 1024 * 1024,
 | 
						|
    },
 | 
						|
 | 
						|
    /*
 | 
						|
    |--------------------------------------------------------------------------
 | 
						|
    | Argon
 | 
						|
    |--------------------------------------------------------------------------
 | 
						|
    |
 | 
						|
    | Argon mapping uses the `argon2` driver to hash values.
 | 
						|
    |
 | 
						|
    | Make sure you install the underlying dependency for this driver to work.
 | 
						|
    | https://www.npmjs.com/package/phc-argon2.
 | 
						|
    |
 | 
						|
    | npm install phc-argon2
 | 
						|
    |
 | 
						|
    */
 | 
						|
    argon: {
 | 
						|
      driver: 'argon2',
 | 
						|
      variant: 'id',
 | 
						|
      iterations: 3,
 | 
						|
      memory: 4096,
 | 
						|
      parallelism: 1,
 | 
						|
      saltSize: 16,
 | 
						|
    },
 | 
						|
 | 
						|
    /*
 | 
						|
    |--------------------------------------------------------------------------
 | 
						|
    | Bcrypt
 | 
						|
    |--------------------------------------------------------------------------
 | 
						|
    |
 | 
						|
    | Bcrypt mapping uses the `bcrypt` driver to hash values.
 | 
						|
    |
 | 
						|
    | Make sure you install the underlying dependency for this driver to work.
 | 
						|
    | https://www.npmjs.com/package/phc-bcrypt.
 | 
						|
    |
 | 
						|
    | npm install phc-bcrypt
 | 
						|
    |
 | 
						|
    */
 | 
						|
    bcrypt: {
 | 
						|
      driver: 'bcrypt',
 | 
						|
      rounds: 10,
 | 
						|
    },
 | 
						|
  },
 | 
						|
})
 |