Я новичок в nodejs и javascript, и в настоящее время я работаю над проектом с открытым исходным кодом, поскольку вчера вечером я пытался преобразовать эту функцию из асинхронной в синхронную, но не смог, я использовал async / await, ноЯ думаю, что я не очень хорошо понял эту концепцию, эта функция шифрует и сжимает файлы с использованием алгоритма aes256, я работаю хорошо асинхронно, но я хочу добавить эту новую функцию, которая позволяет рекурсивно шифровать содержимое каталога.
function encrypt({ file, password }, error_callback, succ_callback) {
const initVect = crypto.randomBytes(16);
// Generate a cipher key from the password.
const CIPHER_KEY = crypto.createHash('sha256').update(password).digest();;
const readStream = fs.createReadStream(file);
const gzip = zlib.createGzip();
const cipher = crypto.createCipheriv('aes-256-cbc', CIPHER_KEY, initVect);
const appendInitVect = new AppendInitVect(initVect);
// Create a write stream with a different file extension.
const writeStream = fs.createWriteStream(path.join(file + ".dnc"));
readStream
.pipe(gzip)
.pipe(cipher)
.pipe(appendInitVect)
.pipe(writeStream);
readStream.on('error', error_callback);
readStream.on('end', succ_callback);
}