问题标签 [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 回答
213 浏览

grails - grails OpenPGP解密不起作用

我正在使用 Grails 插件:crypto:2.0,并且在 PGP 中加密解密消息时遇到问题。

这是我的控制器代码:

执行时,它会将加密消息显示为装甲 PGP。但是,当我使用装甲加密消息并解密时,它总是返回 null。

有没有人遇到过这个问题?

0 投票
1 回答
4864 浏览

java - Bouncycastle openpgpg:如何创建具有两个用户 ID 的 PGP 密钥对?

使用命令行 gnupg 我可以为“John Doe <john@doe.com>”创建一个带有 RSA 密钥的密钥环。我还可以使用--edit-keyand添加另一个具有 uid "Jane Doe <jane@doe.com>" 的用户adduid。生成的 secring.gpg 如下所示:

我想在 Java 中创建相同的内容,使用 Bouncycastle,从 java.security.KeyPair 开始,即具有这样的签名:

其中 pass 是密码短语和ids = new String[] {"John Doe <john@doe.com>", "Jane Doe <jane@doe.com>"}. 我按照本教程的内容进行操作,其中代码的关键部分是:

其中 rsakp_sign 和 rsakp_enc 分别是签名和加密密钥的 RSA 密钥对,而 signhashgen 和 enchashgen 是包含算法偏好等的子包的生成器。

只要我只为约翰创建一个密钥,一切都很好。但是当我想添加 Jane 时,我遇到了一个问题:显然我无法使用 addSubKey 为 Jane 添加一个 signhashgen-ified 密钥对。第一次天真的尝试是这样的:

这只是没有做任何事情,没有额外的条目出现在gpg --vv meeththedoes.asc.

或者,我可以使用 John 的密钥环,提取密钥,然后添加 Jane:

这有点工作,但在生成的密钥环中,John 和 Jane 有不同的子包集:

我可能不想要,对吧?无论如何,该方法似乎也是错误的。我不应该先完全检测生成器,然后让 Bouncycastle 一下子生成密钥环文件吗?我在这里做错了什么?

0 投票
1 回答
746 浏览

python - Pycrypto OpenPGP 加密:为什么密钥有 16 字节的限制,我提供密钥的哪一部分来达到 16 字节?

我正在尝试通过 pycrypto 应用程序在 python 中使用 OpenPGP 加密文件。我一直在关注他们代码中提供的示例:https ://github.com/dlitz/pycrypto/blob/master/lib/Crypto/Cipher/CAST.py

所以我正在使用 mode.openPGP,但我似乎无法使用公钥加密任何内容。我的公钥远远超过了他们指定的 16 字节限制(我见过的任何一代也超过了这个限制)。我应该在这里使用不同的值吗,比如指纹 ID?

我正在尝试读取文件的内容,用密钥对其进行加密,然后将其打印到要发送的新文件中(稍后都将被删除)。我的代码如下:

0 投票
2 回答
1478 浏览

python - 如何使 GnuPG 密钥与 Pycrypto 兼容

我正在尝试使用通过具有 RSA 加密的 GPG 生成的密钥(这部分是可更改的,GnuPG 和 Pycrypto 不是)来加密文件,但我在实际导入密钥时遇到了麻烦。我目前正在使用这样的代码:

但是,这会引发错误,因为我的 public_key 不是 DER 结构。有没有办法可以生成一个可以与 Pycrypto 一起使用的 public_key?我对密码学真的很陌生,所以我根本不完全确定如何解决这个问题。

0 投票
4 回答
7490 浏览

maven - 没有公钥:无法找到 ID 为 (XXXXX) 的密钥 (oss.sonatype.org)

我正在尝试将我的暂存存储库推oss.sonatype.org送到中央存储库,但是此操作失败了,并且出现了以下异常

我曾经gbp为我生成公钥和私钥,我什至使用以下命令将公钥发送到服务器

我仍然遇到同样的异常。我交叉检查并且只有一个Sub Key,不确定我还需要做什么来推送公钥,以便可以通过 nexus 找到

0 投票
3 回答
1021 浏览

batch-file - 通过批处理文件传递值以提示由exe打开

我正在尝试使用 OpenGPG,并且在尝试解密某些内容时它会打开密码提示。现在我正在尝试自动运行它,因此没有人输入密码。所以我的问题是你如何将密码传递给这个由我从批处理文件运行的exe打开的新提示。我查看了 gpg2.exe -help 并且如果有人熟悉 OpenGPG 或者如果我可以运行命令将密码传递到新提示符,则无法将密码作为参数传递,那就太好了。

0 投票
1 回答
1279 浏览

python - OpenPGP/X.509 网桥:如何验证公钥?

我想通过 TLS 使用 OpenPGP 身份验证,但由于缺乏实现,我使用了一个临时解决方案:OpenPGP/X.509 桥接证书。

该方法与 Foaf 中使用的方法非常相似:
https ://svn.java.net/svn/sommer~svn/trunk/misc/FoafServer/pgpx509/src/net/java/dev/sommer/foafserver/utils/ PgpX509Bridge.java

基本上,您从转换后的 PGP 私钥开始创建证书请求,包括您转换后的 PGP 公钥到证书请求中。然后使用转换后的 PGP 私钥签署请求。

我使用“ converted ”这个词是因为 OpenPGP 和 OpenSSL 密钥格式不兼容:我必须从 OpenPGP 密钥中提取密钥参数并使用它们来形成一个新的 X.509 兼容 (OpenSSL) 密钥。然而,它按预期工作。

结果是一个 X.509 证书,其中包含 X.509 证书的公钥中使用的 PGP 公钥参数,但没有用户 ID 和公钥签名,因此无法用于身份验证。

这里缺少的部分是服务器身份验证。服务器之前已经签署了用户的 PGP 公钥,但是我如何通过 X.509 桥接证书来验证呢?

即使我使用我的 PGP 用户 ID 作为我的 CN(通用名称),我如何证明它与原始 OpenPGP 密钥中使用的用户 ID 相同?
X.509 网桥证书上没有公钥签名,只有相同的密钥参数。我可以安全地检查这些吗?

尽管我必须在 Python 中执行此操作,但任何关于如何进行的建议都会非常有帮助。

0 投票
2 回答
2178 浏览

mysql - 在数据库中存储 OpenPGP 密钥和加密数据

我在业余时间一直在玩 OpenPGPjs(OpenPGP 的 Javascript 端口)来学习新东西。为了测试它,我正在开发一个简单的 Web 应用程序来存储和检索数据库中的密钥对和加密数据。

由于 OpenPGPjs 可以选择生成“装甲”密钥(以文本形式输出的二进制密钥),因此我想将其保存在数据库中。但是在生成密钥对时,我注意到它们不是固定长度的(正如我错误地假设的那样)。键的可变长度让我对为数据库中的字段大小选择什么限制感到困惑。

有人可以澄清以下对 OpenPGP 的疑问:

-> OpenPGP“装甲”密钥的最大尺寸是多少?
-> 可以根据加密数据的大小来计算加密数据的大小吗?
-> 什么是一般的,推荐的做法(如果有的话)将这些密钥存储在数据库中。

PS:我已阅读并了解使用 Javascript 进行加密的陷阱,因此您可以跳过该警告。:)

注意:根据评论,我已经编辑了这个问题,希望能消除我想知道的任何歧义。

0 投票
4 回答
3198 浏览

ios - Creating PGP keys in iOS app

I need to build an iOS application in which PGP keys will be created in order to encrypt and decrypt certain messages.

Since I'm new to PGP encryption in iOS is there some library that will allow me to create, keep and access the PGP keys as well as do the encryption and decryption using the keys.

I've implemented a backend and Android version using RSA algorithm with bouncy castle and OpenPGP in JAVA, however I will need to do the same with the iOS version. That means that the keys created in iOS should be in the same format and compatible with the ones created in the Android version.

0 投票
1 回答
60 浏览

c# - PGP 验证:文件不是合法路径

有人可以知道我的代码有什么问题吗?

我在下面的这一行中不断收到错误:

错误是路径不是合法路径

以下是完整代码:

这是一个公钥/私钥签名和验证程序。这部分是签名消息的验证部分。一切都使用didisoft OpenPGP。