directus
1import argon2 from 'argon2';
2import { getConfigFromEnv } from './get-config-from-env.js';
3
4export function generateHash(stringToHash: string): Promise<string> {
5const argon2HashConfigOptions = getConfigFromEnv('HASH_', 'HASH_RAW'); // Disallow the HASH_RAW option, see https://github.com/directus/directus/discussions/7670#discussioncomment-1255805
6
7// associatedData, if specified, must be passed as a Buffer to argon2.hash, see https://github.com/ranisalt/node-argon2/wiki/Options#associateddata
8'associatedData' in argon2HashConfigOptions &&
9(argon2HashConfigOptions['associatedData'] = Buffer.from(argon2HashConfigOptions['associatedData']));
10
11return argon2.hash(stringToHash, argon2HashConfigOptions);
12}
13