问题标签 [gpgme]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
282 浏览

macos - 包含 libgpgme 时无法构建 Firebreath

如问题所述,当尝试使用 Xcode 在 MacOSX 10.6 上构建需要 libgpgme 的 firebreath 项目时,出现上述错误。我的包含/搜索路径是有效的,因为我可以从控制台运行以下命令并且它工作正常。

gpgme-config 的输出是 -L/opt/local/lib -lgpgme -lassuan -lgpg-error。不知道还需要什么其他信息,发表评论,我会根据需要更新。

0 投票
1 回答
1225 浏览

c++ - Windows上的Firebreath插件无法在chrome中加载

我正忙于通过现有的 firebreath 插件进行转换以使用gpgme而不是通过操作系统和 gpg 二进制文件进行调用。

我已经设法在 x32 系统上使用 VS 2010 在 Windows 中编译代码,但是在将插件加载到 chrome 后,我根本无法访问 npapi 代码。即使是简单的版本调用也会失败。

加载插件时,我没有看到明显的错误,但是当使用 chrome 的 sawbuck 日志查看器时,我收到下面的错误消息。

我尝试将我的代码与 firebreath 1.4 和 1.6 一起使用,但两个版本都不起作用。经过一些简单的调试后,似乎使用 gpgme 提供的任何代码(无论是否调用)都会导致插件中断。

我通过以下操作得出了这个结论。

  1. 使用 firebreath 创建了一个新项目(版本 1.4 和 1.6)
  2. 将 gpgme.h 标头添加到 gmailGPGAPI.cpp 中,除了将所需的引用路径添加到项目中之外,没有进行任何其他更改。
  3. 构建项目以创建 dll(这会很好地生成 dll)。
  4. 将我项目中现有的ddl替换为第2步中的dll,并用下面这段代码进行测试

plugin = document.createElement('object'); plugin.id = '插件';
plugin.type = '应用程序/x-gmailtest';
document.body.appendChild(插件);
console.log("我的插件返回:"+ plugin.valid);
console.log("我的插件返回:" + plugin.version);

  1. 这会返回 valid = true 并且版本会返回我设置的内容。
  2. 然后我修改了 gmailGPGAPI.cpp,现在通过在 version 方法中调用 gpgme_check_version(NULL) 返回 gpg 版本。我使用该方法是因为它可能是我可以测试的最简单的返回函数。
  3. 构建插件并将 dll 复制到 chrome 扩展,如步骤 3-4 所示。该插件按预期再次构建良好。
  4. 加载插件并尝试执行步骤 4 中的代码,此时它现在只为我尝试在插件上访问的任何属性或方法返回未定义。除了记录到 sawbuck 的错误外,不会在控制台或 chrome 中的任何其他地方打印任何错误。

我不知道去哪里看或尝试什么,因为我似乎无法解决可操作的错误。我还通过测试代码减少了它只是一个带有一行更改的新项目,以便更容易找到问题。

我应该注意 repo 中的代码在 linux/OSX 中构建良好并正确加载到 chrome 中,所以我知道在某种程度上我的代码确实有效。

0 投票
1 回答
576 浏览

ubuntu - 构建 gpgme 后进行检查失败

我正在尝试在 Ubuntu 12.04 上构建 gpgme-1.3.2。我已经构建了 libgpg-error-1.10 和 libassuan-2.0.3。命令很简单:

两个库都构建成功并且make check没有给我失败。

然而make check,在我的 gpgme 上,构建了 22 次失败的检查中的 22 次,尽管没有构建错误。我使用了与构建其他两个库相同的命令。

0 投票
1 回答
411 浏览

c - 使用 GPGME 在密钥服务器上搜索公钥

今天我在 gnupg 邮件列表上开始了一个新线程,使用 GPGME 在密钥服务器上搜索密钥。基本上我使用 GPGME 作为在我的应用程序中使用 GnuPG 的接口,但我不知道如何使用 GPGME 函数来搜索密钥服务器上的密钥。

任何的想法?

0 投票
1 回答
666 浏览

encryption - gpgme 在 64 位 debian 上加密失败

我遇到了一个问题,这给我用 gpgme 追踪带来了一些麻烦。我用一个简单的测试程序(从我找到的另一个简单示例开始)复制了它,我将其粘贴在下面。这适用于 32 位基于 debian 的系统,但在 64 位系统上失败。特别是在 64 位情况下,我可以成功读取和解密(示例中未显示),但在加密中出现了一个相当神秘的错误:

libgpgme 的版本也如上所示。

这是 的输出uname,只是为了向您展示我在 64 位系统上运行:

是的,我做的第一件事就是广泛尝试确保我正在定义_FILE_OFFSET_BITS=64;我还检查了off_t它的有效大小为 8。这就是我编译它的方式:

最后是测试程序:

非常感谢您能给我的任何帮助!我还没有发现任何有用的东西来帮助我调试这个..

0 投票
0 回答
816 浏览

gnupg - 使用 gpgme 从服务器导入密钥

我正在尝试使用 GPGME 从密钥服务器导入密钥。我确定密钥存在,因为当我使用浏览器访问服务器时可以看到它。我按照手册制作了这个:

开始配置keyring目录:

该目录包含一个 gpg.conf 文件,其中包含指定服务器 URL 的“keyserver”条目。全局 gpg.conf 也具有相同的指令和相同的 URL。

问题是导入失败并出现错误“文件结束”,这意味着“未找到”。我传递的 id 有 8 个以 0x 开头的字符,因为我听说不同格式可能存在问题。浏览此站点时,我发现此相关问题search for a public key on a keyserver with GPGME但是我不确定应该如何使用这些功能,并且它们没有出现在手册中。

谢谢您的帮助。

0 投票
1 回答
599 浏览

python - 使用 GPGME 生成密钥时如何让 gpg-agent 询问密码?

我正在使用 pygpgme 生成密钥,效果很好,但我必须像这样向 gpgme 提供密码:

出于安全原因,我宁愿永远不知道密码,而是让 gpg-agent 为用户提供一个对话框。

当我使用 pygpgme 解密或使用 gpg 命令行工具生成密钥时,密码短语对话框按预期弹出。

一种解决方案是将 gpg 命令与子进程一起使用,但我想知道是否有更好的解决方案。

0 投票
0 回答
250 浏览

ruby-on-rails - GPGME:rails 服务器中自动解密的最佳实践

我希望能够实现以下行为:

  • 在生产中的 Rails 服务器启动期间,应向管理员询问 GPG 生产密钥的密码

  • 密码短语不应存储在 RAM 以外的任何地方

  • rake 任务或 rails 控制台中不应提供解密功能

gpg-agent 似乎是不可能的,因为由运行 rails 服务器的同一用户启动的任何进程都能够解密内容。

要求密码短语的 GPGME 类的密码短语回调似乎是最好的解决方案(尽管由于 /etc/init.d/unicorn 中的 start-stop-daemon 包装器获取标准输入而难以实现)。

我错过了什么吗?这种设置是否存在任何安全漏洞?什么是更好的解决方案?非常感谢。

0 投票
1 回答
2135 浏览

ruby-on-rails - Ruby GPGME::Error> 设备的 ioctl 不合适

我无法导入密钥文件。我正在使用 ruby​​ 1.9.3 和 ruby​​-gpgme https://github.com/ueno/ruby-gpgme

输出

设备的 ioctl 不合适

更多信息:/usr/local/opt/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/gpgme-2.0.2/lib/gpgme/ctx.rb:43:in new': Inappropriate ioctl for device (GPGME::Error) from /usr/local/opt/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/gpgme-2.0.2/lib/gpgme/key.rb:120:inimport '来自 gpgme.rb:17:in `'

这是 ctx.rb 文件,但我不明白是什么导致了这个问题...... https://github.com/ueno/ruby-gpgme/blob/master/lib/gpgme/ctx.rb

0 投票
1 回答
195 浏览

c - 如何使用 gpgme 解密子消息?

是否有可能解密一条消息,在其中解密第一个子消息,然后解密第二个....

例如,如果您的消息非常大,并且您不想将整个消息保留在内存中!?

在手册或谷歌中找不到任何东西!