Azure DevOps 扩展 - 发布任务中的 Node Cipheriv 警告

4
我正在开发一个Azure DevOps发布任务扩展的项目。最近,在发布任务运行时,我的日志中多次打印出这个警告信息-“警告:在aes-256-ctr的计数器模式下使用Cipheriv”。之前我没有遇到过这个错误。而当我开始遇到这个错误时,我只改变了一些console.log(..),甚至没有任何可能触发此错误的代码。(可能是一些npm依赖更新!)你有什么想法关于我为什么会遇到这个错误,以及如何修复它!如果不行的话,如何禁用它?附言:我知道这个问题已经被问过了,可能会被归类为重复的问题。但我是在Azure DevOps发布任务的上下文中提问的,其他的是独立的node.js项目。并且,那些修复方法对我不起作用。
1个回答

5

这与Azure-Pipelines-Task-Lib和Azure-Pipelines-agent相关,超出了你的控制范围。问题应该在这些项目或它们的依赖项中得到解决。

由于Agent安装程序和任务本身都包含这些内容,因此您无法直接控制。

这可能是由于代理对Node 6的依赖性引起的。正在进行工作以支持代理上的Node 10 LTS(现在在代理安装程序中同时提供Node 10)。

Azure-Pipelines-Agent在此处调用了错误的方法

    let encryptKey = crypto.randomBytes(256);
    let cipher = crypto.createCipher("aes-256-ctr", encryptKey);
    let encryptedContent = cipher.update(secret, "utf8", "hex");
    encryptedContent += cipher.final("hex");

据我了解,当在 Node 8 或更高版本上运行时,应该调用 crypto.createCipheriv() 而不是 crypto.createCipher()。似乎 Azure-Pipelines-Task-Lib 依赖于相同的代码
看起来 Azure-Pipelines-Task-Lib 的 2.8.0 版本修复了这个问题。现在已经在 npm 上发布了,升级以消除这些警告。

1
2.8.0 刚刚发布。 - jessehouwing
1
将npm包'azure-pipelines-task-lib'升级到2.8.0版本解决了问题。谢谢! - tanmayghosh2507

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接