我在使用libgcrypt进行加密时使用弱密钥,我从libgpg-error获得正确的警告,将其作为“弱加密密钥”发送到stderr。问题是我正在读std:错误进入GUI,我不想看到它们(只是因为它们太多了)。我可以在GUI中过滤stderr输入,但我更喜欢的方法是以更智能的方式抑制警告。不幸的是,我没有任何线索如何实现这一目标。在阅读libgcrypt文档时,我发现它只允许挂起安全内存警告。通过libgpg错误源代码阅读我没有找到任何有用的东西。
非常感谢您的建议。
提前致谢。 扬
答案 0 :(得分:0)
最后我要问libgcrypt开发人员。以下是Werner Koch的回答,我想以这种方式感谢他们。我希望这会帮助其他人。
=============================================== ===================
我尝试使用弱密钥进行常规加密和错误 检查DES模块内部会阻止您实际执行此操作, 没有记录的方法可以使用它。弱键就是这样的东西 永远不应该发生。
但是,您可以使用私人控制代码来禁用弱密钥 检测。我们在回归测试中使用它。但请注意,这是 未记录的私人功能,可能会或可能不会与未来一起使用 Libgcrypt的版本。这是一段代码摘录:
#define PRIV_CTL_DISABLE_WEAK_KEY 61
err = gcry_cipher_open (&hd, cipher_algo, cipher_mode, 0);
if (err)
die ("gcry_cipher_open failed for algo %d, mode %d: %s\n",
cipher_algo, cipher_mode, gpg_strerror (err));
gcry_cipher_ctl (hd, PRIV_CTL_DISABLE_WEAK_KEY, NULL, 0);
=============================================== ===================
禁用弱密钥警告现在在最新的libgcrypt版本中被禁止,因此以上内容毫无意义。我们通过在增强流中捕获stderr并在将其提供到日志中之前对其进行过滤来解决这个问题。