我正在尝试通过 gpg2 将我的旧 pgp 密钥与 Gnupg 一起使用。
我已成功从我的旧钥匙圈中导入公钥和私钥。
我刚刚尝试解密一个文件但出现以下错误。
me@ubuntu:~/Documents$ gpg2 -d test01 gpg: 保护算法 1 (IDEA) 不受支持
出现其他与按键相关的数据。
Gnupg 提供了有关专利的解释(IDEA 专利与 gnupg 不兼容)和补救措施:http://www.gnupg.org/faq/why-not-idea.html
我按照链接末尾的说明进行操作,将 idea.c.gz 文件导入 ~/.gnupg 并解压它们(只有其中一个解压)并尝试 ./configure。
这不起作用。我创建了一个名为 cipher 的目录,将两个文件移到其中,然后再次尝试 ./configure 命令。系统找不到 configure。
有人能帮帮我吗?
答案1
IDEA 专利已在全球范围内过期。最简单的解决方案是升级到默认包含该算法的 GnuPG 1.4.13(或更新版本)。Saucy 是第一个包含此版本的 Ubuntu 版本。
如果你不能:
GnuPG 网站要求您阅读文件头,其中解释了如何构建它:
/*
* [snip]
* To build a GnuPG with IDEA support, copy this file into the cipher/
* directory of the gnupg distribution, and ./configure and make as
* usual. IDEA will be built directly in to the GnuPG binary. This
* is the recommended way to use this file.
*/
这意味着你必须完全自己构建 GnuPG而不是使用存储库包。下载并解压源代码,您将找到一个密码目录。将文件放入其中,然后继续按照手册中的说明构建 GnuPG。
或者:
/*
* If you are not building IDEA directly into GnuPG, and need to build
* the dynamically loadable IDEA module, compile with:
gcc -Wall -O2 -shared -fPIC -o idea idea.c
* [snip]
*/
这意味着,您不会将 IDEA 算法链接到 GnuPG,而是将其构建为动态模块(在 Windows 中,您会将其与某个 .dll 文件进行比较)。文件头没有显示的是该库将如何加载。将编译后的二进制文件放入某个位置(例如~/.gnupg/idea
),然后将此行添加到您的~/.gnupg/gpg.conf
文件中:
load-extension ~/.gnupg/idea
这只会提供 IDEA gpg
(而不是gpg2
)!