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

Node Cipheriv Warning in Azure DevOps Extension - Release Task

我正在从事一个开发 Azure DevOps 发布任务扩展的项目。最近,当发布任务运行时,我在日志中多次打印此警告消息 - "Warning: Use Cipheriv for counter mode of aes-256-ctr".

我没有早点得到它。而当我开始出现这个错误的时候,我只更改了一些console.log(..),甚至没有任何可能触发这个错误的代码。 (可能是一些 npm 依赖更新!)

关于我为什么会收到此错误以及如何修复它的任何想法!如果没有,如何禁用它?

P.S。 - 我知道这个问题已经被问到并且可能被归类为重复问题。但我在 Azure DevOps 发布任务的上下文中询问,其他是独立的 node.js 项目。而且,这些修复对我不起作用。

这与 Azure-Pipelines-Task-Lib 和 Azure-Pipelines-agent 相关,不在您的控制范围内。问题应该在这些项目或其依赖项中得到解决。

由于这些都与代理安装程序和任务本身一起提供,因此这不在您的直接控制之下。

这可能是由于代理对节点 6 的依赖性造成的。在代理上支持节点 10 LTS 的工作正在进行中(节点 10 现在在代理安装程序中并行发布)。

Azure-Pipelines-Agent calls the wrong method here.

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

据我所知,当节点 8 或更高版本上的 运行 时,它应该调用 crypto.createCipheriv() 而不是 crypto.createCipher()Azure-Pipelines-Task-Lib seems to rely on the same piece of code.

looks like 2.8.0 of the Azure-Pipelines-Task-Lib fixes this。它现在在 npm 上,所以升级以使这些警告消失。