问题标签 [openpgp]

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 回答
2148 浏览

php - 使用 gpg4win 加密后使用 PHP gnupg 解密文件

我完全被 pgp 问题困住了,但我想这更像是一个合乎逻辑的问题而不是技术问题——无论如何,我不明白。

目标是使用 gpg4win (www.gpg4win.de/index.html) 加密文件并使用 PHP (gnupg) 对其进行解密。

我做的第一件事是,我用 gpg4win 创建了一个证书,设置了密码并加密了一个简单的文本文件 (ASCII)。然后我上传文件并尝试使用以下代码对其进行解密:

结果是:bool(false)

我做错了什么?我尝试了不同的代码和建议,但总是以 bool(false) 结束。

这些方法不兼容吗,我必须使用不同的应用程序吗?

我很感激我能得到的每一个小小的帮助。非常感谢!

PS PHP 使用 gnupg GPGme 版本 1.4.2 扩展版本 1.3.3-dev 编译

0 投票
1 回答
13606 浏览

c# - 使用 Bouncy Castle (C#) 生成 PGP 密钥环会导致密钥 ID FFFFFFFF

我尝试使用 C# 的 Bouncy Castle 生成 RSA 密钥对。我按照http://bouncycastle-pgp-cookbook.blogspot.de/2013_01_01_archive.html上的 Java 教程创建了一个主密钥和一个签名密钥。我的代码看起来像

到目前为止,代码工作正常,调试输出还打印有意义的键 ID。但是,如果我将私钥保存到文件并将其导入 GnuPG,则会显示sec 0s/FFFFFFFF 2013-07-30主密钥。加密密钥没问题。

编辑:gpg --list-packet显示

算法 3 是PublicKeyAlgorithmTag.RsaSign,我认为它对于主密钥是可以的(Java 示例也这样做),但 GnuPG 不喜欢这样......

我究竟做错了什么?

在此先感谢,克里斯托夫

0 投票
1 回答
1534 浏览

hash - Go 中的 OpenPGP 错误:“加密:请求的哈希函数不可用”

我正在玩 Go 的openpgp包,方法是制作一个简单的程序来加密短消息并用 ASCII 保护它。我目前拥有的代码是:

当我运行它时,我得到输出:

看起来它正在输出装甲密文(这似乎是无效的)然后崩溃,因为它找不到链接到二进制文件的注册哈希函数。据我所知,默认情况下它应该使用标准库中的一个 SHA 哈希值,它肯定应该被链接?

我究竟做错了什么?

0 投票
2 回答
262 浏览

c++ - Tag18 的 OpenPGP CFB 模式

RFC 4880 第 50 页的底部描述了如何加密明文数据以存储在对称加密完整性保护数据包(标签 18)中。它说使用了CFB模式。我已经为 CFB 编写了代码,以便它按照第 13.9 节中的描述工作(对于对称加密数据包(标签 9))。但是,在第 50 页,它还说:

与对称加密数据包不同,在加密此前缀数据后不进行特殊的 CFB 重新同步。

因此,对于标签 18,步骤应如下所示:

一步一步来,流程如下:

  1. 反馈寄存器 (FR) 设置为 IV,即全为零。

  2. FR被加密产生FRE(FR Encrypted)。这是全零值的加密。

  3. FRE 与以明文为前缀的随机数据的第一个 BS 八位字节进行异或运算,以产生 C 1到 C[BS],即密文的第一个 BS 八位字节。

  4. FR通过C[BS]加载C[ 1 ]。

  5. FR 被加密以产生 FRE,即密文的第一个 BS 八位字节的加密。

  6. FRE 的左两个八位字节与作为明文前缀的接下来的两个八位字节数据进行异或运算。这将产生 C[BS+1] 和 C[BS+2],即接下来的两个八位字节的密文。

  7. (̶T̶h̶e̶̶r̶e̶s̶y̶n̶c̶h̶r̶o̶n̶i̶z̶a̶t̶i̶o̶n̶̶s̶t̶e̶p̶)̶̶F̶R̶̶i̶s̶̶l̶o̶a̶d̶e̶d̶̶w̶i̶t̶h̶̶C̶[̶3̶]̶t̶h̶r̶o̶u̶g̶h̶C̶[̶B̶S+

  8. FR被加密产生—FRE

  9. FRE 与给定明文的第一个 BS 八位字节进行异或运算,现在我们已经完成了对前缀数据的 BS+2 个八位字节的加密。这会产生 C[BS+3] 到 C[BS+(BS+2)],即密文的下一个 BS 八位字节。

  10. FR 加载了 C[BS+3] 到 C[BS + (BS+2)](对于 8 字节块来说是 C11-C18)。

    1. FR被加密以产生FRE。

    2. FRE 与明文的下一个 BS 八位字节进行异或运算,以产生密文的下一个 BS 八位字节。这些被加载到 FR 中,并重复该过程,直到明文用完。

由于重新同步步骤没有做,步骤8使用步骤5的FRE,所以可以忽略吧?

从上述步骤中,我在以下代码中误解了什么?我知道它适用于标签 9,带有重新同步步骤,但标签 18 并没有加起来。

我错过了什么?

0 投票
1 回答
8972 浏览

c# - 使用 BouncyCastle 进行 OpenPGP 加密

我一直在尝试通过 Bouncy Castle 使用 OpenPGP 构建内存中的公钥加密基础设施。我们的一个供应商使用 OpenPGP 公钥加密来加密他们的所有提要,并要求我们做同样的事情,所以我坚持使用技术和实现。所以现在我正在编写一个 OpenPGP 加密/解密工具包来自动化这些提要。

bouncycastle.org 上的示例莫名其妙地默认将加密数据写入文件系统并从文件系统中收集密钥;这不是我想做的,所以我一直在尝试让所有内容都基于流。

我已经到了可以真正让我的代码编译和运行的地步,但是我的加密有效负载是空的。我认为我遗漏了一些愚蠢的东西,但是经过几天的尝试,我已经失去了客观检查这一点的能力。

我的实用程序类包含这些方法:

我的测试方法如下所示:

我得到的结果如下所示:

有人可以告诉我我做错了什么吗?

0 投票
2 回答
47828 浏览

openpgp - PGP TarBall File Signature Keys Verification fails with no valid OpenPGP data found

This is the first time I figured I had better check the keys of the bind software I want to install. So I downloaded what I think is a OpenPGP key ...

... then I tried to "import" this key like this ...

... but I get this error message:

What am I doing wrong?

Thanks!

0 投票
2 回答
65901 浏览

gnupg - 如何验证 gpg 签名与公钥文件匹配?

我知道如何像这样使用 gpg 验证:

但我真正想做的是根据特定的公钥文件验证文件。

动机是作为从网站下载大文件的程序的一部分,并且需要在使用它们之前验证它们没有被篡改。该网站将包含文件和签名。该程序将附带 GPG 公钥。当我将文件上传到网站时,我将使用相应的私钥对它们进行签名(显然没有分发)。该程序似乎应该能够执行以下操作:

但是gpg没有这样的选择。看起来唯一的方法是解析gpg看起来非常不安全的命令的打印输出(它包含由攻击者控制的文本)。

编辑:我不知道这里回答自己问题的礼仪是什么,但我找到的答案是使用 --status-fd 标志。此标志生成很好的可解析输出,我可以检查所需的指纹:

在 fd N 上产生:

例如,perl 的 GnuPG 库就是这样工作的。

0 投票
3 回答
10419 浏览

c# - 使用 BouncyCastle 的 RSA 密码输入太大

我正在尝试以给定的时间间隔将 SFTP 服务写入服务器,下载目录中的所有文件,然后解密它们以进行处理。

解密方法在某一时刻有效,从那以后我没有修改过它。我仍然使用与成功工作时相同的密钥。

我正在使用这里的 BouncyCastle 的 PGPEncrypt、PGPDecrypt 和 PGPEncryptionKeys 类:https ://github.com/sledwith/PGP-Decryption-With-C-Sharp

此外,我修改了代码,如下所示:使用 BouncyCastle PGP 解密文件时出现异常

如果你注意到了,我评论了它是如何修复我的代码和解密工作的。

现在,它不是。

有谁知道为什么会发生这种情况,或者我该如何解决它?

0 投票
4 回答
23286 浏览

android - 未找到 Android 源代码库 GPG 公钥

我正在运行 Linux Mint 14 并尝试下载 android 源代码。我按照设置环境的说明进行操作,当我尝试使用 repo 获取源时,出现以下错误。

我已经尝试从指令中导入公钥,尝试生成我自己的 GPG 密钥,以及符号链接目录 ~/.gnupg 和 ~/.repoconfig/gnupg 两种方式,我仍然得到同样的错误。我还尝试删除 ~/.repoconfig 和 ~/.gnupg ,但仍然没有运气。

任何帮助,将不胜感激。

0 投票
1 回答
2433 浏览

java - BouncyCastle OpenPGP 问题

我正在尝试使用 BouncyCastle 库创建签名和加密的消息,然后在命令行上针对 gpg 进行测试以确认它是否有效。然而,虽然它显示了一条看起来不错的 PGP 消息,但 gpg 在解密它时遇到了麻烦。

Java代码:

和 gpg 命令行输出:

任何帮助,将不胜感激。

干杯

拉莫