11import { hashing } from '@stacksjs/config'
2- import md5 from 'crypto-js/md5'
3- import { Base64 } from 'js-base64'
2+ import { base64Decode , base64Encode , hashPassword , md5 , verifyPassword } from 'ts-security-crypto'
43
54interface MakeOptions {
65 algorithm ?: 'bcrypt' | 'base64' | 'argon2'
@@ -9,7 +8,7 @@ interface MakeOptions {
98
109async function make ( password : string , options ?: MakeOptions ) : Promise < string > {
1110 if ( options ?. algorithm === 'argon2' )
12- return await argon2Encode ( password , { type : 'argon2id' } )
11+ return await argon2Encode ( password , { type : options . type || 'argon2id' } )
1312 if ( options ?. algorithm === 'bcrypt' )
1413 return await bcryptEncode ( password )
1514 if ( options ?. algorithm === 'base64' )
@@ -35,12 +34,10 @@ export async function bcryptEncode(password: string): Promise<string> {
3534 if ( ! hashing . bcrypt )
3635 throw new Error ( 'Bcrypt hashing is not configured' )
3736
38- const bcryptHash = await Bun . password . hash ( password , {
37+ return await hashPassword ( password , {
3938 algorithm : 'bcrypt' ,
4039 cost : hashing . bcrypt . cost ,
4140 } )
42-
43- return bcryptHash
4441}
4542
4643export async function argon2Encode (
@@ -50,33 +47,27 @@ export async function argon2Encode(
5047 if ( ! hashing . argon2 )
5148 throw new Error ( 'Argon2 hashing is not configured' )
5249
53- const argon2Hash = await Bun . password . hash ( password , {
50+ return await hashPassword ( password , {
5451 algorithm : options ?. type || 'argon2id' ,
5552 memoryCost : hashing . argon2 . memory ,
5653 timeCost : hashing . argon2 . time ,
5754 } )
58-
59- return argon2Hash
6055}
6156
6257export async function argon2Verify ( password : string , hash : string ) : Promise < boolean > {
63- return await Bun . password . verify ( password , hash )
58+ return await verifyPassword ( password , hash )
6459}
6560
6661export async function bcryptVerify ( password : string , hash : string ) : Promise < boolean > {
67- return await Bun . password . verify ( password , hash )
68- }
69-
70- export function base64Encode ( password : string ) : string {
71- return Base64 . encode ( password )
62+ return await verifyPassword ( password , hash )
7263}
7364
7465export function base64Verify ( password : string , hash : string ) : boolean {
75- return Base64 . decode ( hash ) === password
66+ return base64Decode ( hash ) === password
7667}
7768
78- export function md5Encode ( password : string ) : CryptoJS . lib . WordArray {
69+ export function md5Encode ( password : string ) : string {
7970 return md5 ( password )
8071}
8172
82- export { make as makeHash , verify as verifyHash }
73+ export { make as makeHash , verify as verifyHash , base64Encode }
0 commit comments