11import type { Callback } from './types.js' ;
22import type Stat from './Stat.js' ;
33import pathNode from 'path' ;
4- import { md , random , pkcs5 , cipher , util as forgeUtil } from 'node-forge' ;
4+ import nodeForge from 'node-forge' ;
55import callbackify from 'util-callbackify' ;
66import * as constants from './constants.js' ;
77
@@ -31,7 +31,7 @@ function fromArrayBuffer(
3131
3232async function getRandomBytes ( size : number ) : Promise < Buffer > {
3333 const p = new Promise < string > ( ( resolve , reject ) => {
34- random . getBytes ( size , ( e , bytes ) => {
34+ nodeForge . random . getBytes ( size , ( e , bytes ) => {
3535 if ( e != null ) {
3636 reject ( e ) ;
3737 } else {
@@ -43,7 +43,7 @@ async function getRandomBytes(size: number): Promise<Buffer> {
4343}
4444
4545function getRandomBytesSync ( size : number ) : Buffer {
46- return Buffer . from ( random . getBytesSync ( size ) , 'binary' ) ;
46+ return Buffer . from ( nodeForge . random . getBytesSync ( size ) , 'binary' ) ;
4747}
4848
4949async function generateKey ( bits : 128 | 192 | 256 = 256 ) : Promise < Buffer > {
@@ -76,12 +76,12 @@ async function generateKeyFromPass(
7676 salt = ( await getRandomBytes ( 16 ) ) . toString ( 'binary' ) ;
7777 }
7878 const keyLen = Math . floor ( bits / 8 ) ;
79- const key = await promisify < string > ( pkcs5 . pbkdf2 ) (
79+ const key = await promisify < string > ( nodeForge . pkcs5 . pbkdf2 ) (
8080 password ,
8181 salt ,
8282 2048 ,
8383 keyLen ,
84- md . sha512 . create ( ) ,
84+ nodeForge . md . sha512 . create ( ) ,
8585 ) ;
8686 return [ Buffer . from ( key , 'binary' ) , Buffer . from ( salt , 'binary' ) ] ;
8787}
@@ -98,7 +98,13 @@ function generateKeyFromPassSync(
9898 salt = getRandomBytesSync ( 16 ) . toString ( 'binary' ) ;
9999 }
100100 const keyLen = Math . floor ( bits / 8 ) ;
101- const key = pkcs5 . pbkdf2 ( password , salt , 2048 , keyLen , md . sha512 . create ( ) ) ;
101+ const key = nodeForge . pkcs5 . pbkdf2 (
102+ password ,
103+ salt ,
104+ 2048 ,
105+ keyLen ,
106+ nodeForge . md . sha512 . create ( ) ,
107+ ) ;
102108 return [ Buffer . from ( key , 'binary' ) , Buffer . from ( salt , 'binary' ) ] ;
103109}
104110
@@ -107,9 +113,12 @@ async function encrypt(
107113 plainText : ArrayBuffer ,
108114) : Promise < ArrayBuffer > {
109115 const iv = getRandomBytesSync ( ivSize ) ;
110- const c = cipher . createCipher ( 'AES-GCM' , Buffer . from ( key ) . toString ( 'binary' ) ) ;
116+ const c = nodeForge . cipher . createCipher (
117+ 'AES-GCM' ,
118+ Buffer . from ( key ) . toString ( 'binary' ) ,
119+ ) ;
111120 c . start ( { iv : iv . toString ( 'binary' ) , tagLength : authTagSize * 8 } ) ;
112- c . update ( forgeUtil . createBuffer ( plainText ) ) ;
121+ c . update ( nodeForge . util . createBuffer ( plainText ) ) ;
113122 c . finish ( ) ;
114123 const cipherText = Buffer . from ( c . output . getBytes ( ) , 'binary' ) ;
115124 const authTag = Buffer . from ( c . mode . tag . getBytes ( ) , 'binary' ) ;
@@ -128,16 +137,16 @@ async function decrypt(
128137 const iv = cipherTextBuf . subarray ( 0 , ivSize ) ;
129138 const authTag = cipherTextBuf . subarray ( ivSize , ivSize + authTagSize ) ;
130139 const cipherText_ = cipherTextBuf . subarray ( ivSize + authTagSize ) ;
131- const d = cipher . createDecipher (
140+ const d = nodeForge . cipher . createDecipher (
132141 'AES-GCM' ,
133142 Buffer . from ( key ) . toString ( 'binary' ) ,
134143 ) ;
135144 d . start ( {
136145 iv : iv . toString ( 'binary' ) ,
137146 tagLength : authTagSize * 8 ,
138- tag : forgeUtil . createBuffer ( authTag ) ,
147+ tag : nodeForge . util . createBuffer ( authTag ) ,
139148 } ) ;
140- d . update ( forgeUtil . createBuffer ( cipherText_ ) ) ;
149+ d . update ( nodeForge . util . createBuffer ( cipherText_ ) ) ;
141150 if ( ! d . finish ( ) ) {
142151 return ;
143152 }
0 commit comments