暂停libgcrypt-> libgpg-error中的“弱加密密钥”警告

时间:2011-09-19 10:36:49

标签: cryptography des

我在使用libgcrypt进行加密时使用弱密钥,我从libgpg-error获得正确的警告,将其作为“弱加密密钥”发送到stderr。问题是我正在读std:错误进入GUI,我不想看到它们(只是因为它们太多了)。我可以在GUI中过滤stderr输入,但我更喜欢的方法是以更智能的方式抑制警告。不幸的是,我没有任何线索如何实现这一目标。在阅读libgcrypt文档时,我发现它只允许挂起安全内存警告。通过libgpg错误源代码阅读我没有找到任何有用的东西。

非常感谢您的建议。

提前致谢。 扬

1 个答案:

答案 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并在将其提供到日志中之前对其进行过滤来解决这个问题。