diff --git a/src/utils/get-encryption-password.ts b/src/utils/get-encryption-password.ts new file mode 100644 index 0000000..a44e69f --- /dev/null +++ b/src/utils/get-encryption-password.ts @@ -0,0 +1,16 @@ +import * as CryptoJS from "crypto-js" + +const SALT_SUFFIX = "accessing_data_you_are_not_allowed_to_is_a_crime" + +export default async function getEncryptionPassword( + email: string, + password: string, + salt: string, +): Promise { + const cryptoSalt = `${salt}-${SALT_SUFFIX}` + const cryptoPassword = `${password}-${email}` + + return CryptoJS.PBKDF2(cryptoPassword, cryptoSalt, { + keySize: 512 / 32, + }) +}