标签: gnupg

python gnupg 签名并验证

我想看看是否可以让 python-gnupg 模块使用 python 脚本来签名和验证文件。我有以下代码,调用时不会解释任何错误。

然而,当我认为我已经签署了文件()时,代码最后打印出“未验证” example.txt

我一定在文档中遗漏了一些东西,但是在我阅读之后,这就是我想出的用于签名和验证的内容。有什么帮助吗?

import gnupg

gpg = gnupg.GPG(gnupghome="/home/myname") 

stream = open("example.txt", "rb")

signed_data = gpg.sign_file(stream)

verified = gpg.verify_file(stream)

print "Verified" if verified else "Unverified"
Run Code Online (Sandbox Code Playgroud)

python gnupg

2
推荐指数
1
解决办法
6763
查看次数

尝试部署 Clojure jar 时,签名失败并显示:密钥不可用

我正在尝试将我的库部署到-jdbc-url,但签名失败:

\n\n
$ lein release\nOn branch master\nYour branch is ahead of \'origin/master\' by 2 commits.\n  (use "git push" to publish your local commits)\nnothing to commit, working directory clean\n[master 23b2409] Version 0.3.0\n 1 file changed, 1 insertion(+), 1 deletion(-)\ngpg: skipped "J. Pablo Fern\xc3\xa1ndez <pupeno@carouselapps.com>": secret key not available\ngpg: signing failed: secret key not available\nerror: gpg failed to sign the data\nerror: unable to sign the tag\nNo credentials found for releases (did you mean `lein deploy clojars`?)\nPassword prompts are not supported when ran …
Run Code Online (Sandbox Code Playgroud)

clojure gnupg leiningen clojars

2
推荐指数
1
解决办法
919
查看次数

GPG仍然看到撤销子密钥的好兆头仍然有效

我创建了一个密钥,并创建了一个子密钥。使用子密钥,我签署了一个文件。验证工作。撤销密钥,验证不成立。这是预期的行为。

但是,如果我尝试使用相同的子密钥签名并验证它仍然有效。我究竟做错了什么?这是我正在做的全部事情:

$ gpg --gen-key
$ gpg -k
/Users/mustafa/.gnupg/pubring.kbx
---------------------------------
pub   rsa2048 2019-02-03 [SC] [expires: 2021-02-02]
      5DD923FBCF6392A5CB366167D4C0627A07510C6C
uid           [ultimate] Mustafa <mustafa91@gmail.com>
sub   rsa2048 2019-02-03 [E] [expires: 2021-02-02]
Run Code Online (Sandbox Code Playgroud)

使用编辑键,添加一个子键。

$ gpg --edit-key 5DD923FBCF6392A5CB366167D4C0627A07510C6C

sec  rsa2048/D4C0627A07510C6C
     created: 2019-02-03  expires: 2021-02-02  usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/E058B91696C43666
     created: 2019-02-03  expires: 2021-02-02  usage: E

gpg> addkey

sec  rsa2048/D4C0627A07510C6C
     created: 2019-02-03  expires: 2021-02-02  usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/E058B91696C43666
     created: 2019-02-03  expires: 2021-02-02  usage: E
ssb  rsa2048/38616BDAE66E418C
     created: 2019-02-03  expires: 2019-02-13 …
Run Code Online (Sandbox Code Playgroud)

verification sign gnupg digital-signature

2
推荐指数
1
解决办法
345
查看次数

GnuPG 已安装,但 python 在运行时找不到它

pip install GnuPG说要求已经满足,但是当我使用 GnuPG 运行 python 脚本时,它说GnuPG is not installed.

gnupg pgp python-3.x

2
推荐指数
1
解决办法
4533
查看次数

在 Laravel 服务器中保存加密公钥和私钥的最佳位置是什么

环境:我有一个 Laravel 6.x 应用程序在 Amazon EC2 上运行,使用 Ubuntu 18.4 Bionic 和 Apache 服务器。我有多个预定的工匠命令。他们要么生成文件并将其通过 FTP 传输到不同的服务器,要么从不同的服务器导入文件。这些文件在导出到客户端服务器之前必须使用 PHP GNUPG 进行加密,并且在从客户端服务器下载它们以供进一步处理后需要解密,因此,必须将公钥和私钥存储在服务器上,并以以下方式存储:作为“Ubuntu用户”运行的预定进程可以访问和使用它们(我假设“Ubuntu用户”只需要对关键文件具有读取权限,并且不需要向其他用户授予任何权限,因为他们不这样做也不应该'无法访问这些文件,如果我错了,请纠正我)。我的问题:我想知道最佳实践,在我的服务器内的哪个文件夹中,以及如何(具有什么权限)存储这些密钥文件,以便我可以确保它们是安全的,并确保所有自动化进程将能够根据需要访问和使用它们。

php encryption gnupg laravel server

2
推荐指数
1
解决办法
3548
查看次数

无法提交和推送 Git,因为“无法生成 gpg2:没有这样的文件或目录”

每当我尝试通过命令行提交更改时,我都会收到此错误消息:

error: cannot spawn gpg2: No such file or directory
Run Code Online (Sandbox Code Playgroud)

更新:我正在运行 Windows 10

git gnupg git-commit

2
推荐指数
2
解决办法
2527
查看次数

BouncyCastle:Android:不支持的类文件主要版本 59。无法转换 bcprov-jdk15on-1.67.jar (org.bouncycastle:bcprov-jdk15on:1.67)

我想在 android 中使用 BouncyCastle 进行 GnuPG 加密(想要获取 .gpg 文件)。但我收到此错误。(不支持的类文件主要版本 59。
无法转换 bcprov-jdk15on-1.67.jar (org.bouncycastle:bcprov-jdk15on:1.67))

我的gradle版本是:gradle-6.7.1-bin.zip
JAVA_VERSION="1.8.0_242"

请帮忙。
或者,如果有人可以建议我使用其他方式在 android 中进行 GnuPG 加密,那也将非常有帮助。

encryption android bouncycastle gnupg kotlin

2
推荐指数
2
解决办法
2063
查看次数

如何从未经验证的 Git 提交中删除未经验证的标签?

很简单,这已经发生了,我想轻松地从所有这些标签中删除标签。有办法这样做吗?

GitHub 上提交页面的图片

只是询问,因为当我发布我的项目时,这看起来很糟糕且不美观。谢谢 :)

git github gnupg

2
推荐指数
1
解决办法
1952
查看次数

如何在Python中的AWS Lambda函数中正确解密PGP加密文件?

我正在尝试用 python 创建一个 AWS Lambda:

  1. 从 S3 存储桶下载压缩和加密的文件
  2. 使用解密文件python-gnupg
  3. 将解密的压缩内容存储在另一个S3存储桶中

python-gnupg这是在 Lambda 层中使用 python 3.8 和包。

我已验证 PGP 密钥是否正确,它是否已正确加载到密钥环中,并且加密文件是否已正确下载。但是,当我尝试运行时,gnupg.decrypt_file我得到的输出看起来好像已经成功,但解密状态显示not ok并且解密的文件不存在。

如何在 Lambda 中进行 PGP 解密?

以下是从 lambda 函数中提取的相关代码:

import gnupg
from pathlib import Path

# ...

gpg = gnupg.GPG(gnupghome='/tmp')

# ...

encrypted_path = '/tmp/encrypted.zip'
decrypted_path = '/tmp/decrypted.zip'

# ...

# this works as expected
status = gpg.import_keys(MY_KEY_DATA)

# ...

print('Performing Decryption of', encrypted_path)
print(encrypted_path, "exists :", Path(encrypted_path).exists())

with open(encrypted_path, 'rb') as f:
    status = …
Run Code Online (Sandbox Code Playgroud)

gnupg pgp python-3.x aws-lambda python-gnupgp

2
推荐指数
1
解决办法
3105
查看次数

列出密钥时 Gpg 挂起(docker 安装)

我尝试设置一个 docker 映像来压缩和加密文件。

我的问题是,当我尝试使用 Dockerfile 执行此操作时,gpg --list-keysshell 挂起并且没有任何反应。

没有错误消息。我在日志中看不到任何内容。

我的 Dockerfile :

FROM alpine:3
COPY public.asc /
RUN apk add --no-cache gnupg openssh && ssh-keygen -A && mkdir /root/.ssh
ENTRYPOINT ["/entrypoint.sh"]
EXPOSE 22/tcp
COPY entrypoint.sh /
RUN gpg --import /public.asc
Run Code Online (Sandbox Code Playgroud)

如果我删除RUN gpg --import /public.asc并将其直接运行到附加到容器的 shell 中,然后运行gpg --list-keys​​,它工作正常并返回密钥。

也许我遗漏了 Docker 如何构建镜像的一些内容?

gnupg dockerfile alpine-linux

2
推荐指数
1
解决办法
789
查看次数