标签: gnupg

如何强制GPG接受来自STDIN的输入而不是尝试打开文件?

我试图在PHP脚本中的字符串中加入GPG clear-signed of text.我可以使GPG加密字符串中的文本,如下所示:

$encrypted = shell_exec("echo '$text' | gpg -e -a -r foo@bar.com --trust-model always");
Run Code Online (Sandbox Code Playgroud)

这是完美的,加密文本被发送到$ encrypted变量.这证明GNUPGHOME和GNUPG设置正确.

但是,当我尝试以相同的方式生成一个明确签名的消息:

$text = "googar";

$signature = exec("echo $passphrase | gpg -v --clearsign --no-tty --passphrase-fd 0 '$text' 2>&1 1> /dev/null", $output);
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

... string(51) "gpg: can't open `googar': No such file or directory"
[3]=>
string(46) "gpg: googar: clearsign failed: file open error"
}
Run Code Online (Sandbox Code Playgroud)

返回此错误,包含或不包含$ text变量周围的单引号.

如何强制GPG或shell_exec将$ text视为管道而不是查找文件?

我需要以这种方式回应密码(我知道,它'非常不安全',因为GPG无法在密码中传递密码作为命令行上的变量.

php bash lamp passphrase gnupg

3
推荐指数
1
解决办法
7366
查看次数

MD5与GPG签名

根据apache使用GPG签署文件(生成校验和)等网站比普通的旧MD5更安全.我不明白为什么大多数人使用MD5代替.有人可以解释普通技术英语的真正差异吗?

md5 gnupg

3
推荐指数
1
解决办法
3238
查看次数

Go中的OpenPGP错误:"加密:请求的哈希函数不可用"

我正在使用open的openpgp包来制作一个简单的程序来加密短消息和ASCII装甲.我目前的代码是:

package main

import (
    "code.google.com/p/go.crypto/openpgp"
    "code.google.com/p/go.crypto/openpgp/armor"
    "fmt"
    "log"
    "os"
)

func main() {
    to, err := openpgp.NewEntity("John Smith", "comment", "john@example.com", nil)
    if err != nil {
        log.Fatal(err)
    }

    from, err := openpgp.NewEntity("John Smith", "comment", "john@example.com", nil)
    if err != nil {
        log.Fatal(err)
    }

    recipients := []*openpgp.Entity{to}

    armorer, err := armor.Encode(os.Stdout, "PGP MESSAGE", nil)
    if err != nil {
        log.Fatal(err)
    }

    defer armorer.Close()

    encrypter, err := openpgp.Encrypt(armorer, recipients, from, nil, nil)
    if err != nil {
        log.Fatal(err)
    } …
Run Code Online (Sandbox Code Playgroud)

hash cryptography gnupg go openpgp

3
推荐指数
1
解决办法
1169
查看次数

在 MAC/MAMP 10.8.4 上使用 PECL 安装 PHP gnupg

我正在尝试使用 PECL 在 mac 上安装 gnupg。

须藤 pecl 安装 gnupg

下载 gnupg-1.3.3.tgz ...
开始下载 gnupg-1.3.3.tgz(19,141 字节)
......完成:19,141 字节
5个源文件,构建
警告:php_bin /Applications/MAMP/bin/php/php5.5.3/bin/php 似乎有后缀 /php5.5.3/bin/php,但配置变量 php_suffix 不匹配
运行: phpize
配置:
PHP API 版本:20121113
Zend 模块 API 编号:20121212
Zend扩展API编号:220121212
构建在 /private/tmp/pear/install/pear-build-rootj1cVj1/gnupg-1.3.3
运行:/private/tmp/pear/install/gnupg/configure
检查处理长行的 grep 和 -e... /usr/bin/grep
检查 egrep... /usr/bin/grep -E
检查不截断输出的 sed... /opt/local/bin/gsed
检查抄送...抄送
检查 C 编译器是否工作...是的
检查 C 编译器默认输出文件名... a.out
检查可执行文件的后缀...
检查我们是否正在交叉编译...没有
检查目标文件的后缀... o
检查我们是否正在使用 GNU C 编译器...是
检查 cc 是否接受 -g... 是
检查 cc 选项以接受 ISO C89... 不需要
检查如何运行 C …

php macos mamp gnupg

3
推荐指数
1
解决办法
3155
查看次数

通过 Bouncy Castle 提取 GPG 密钥使用标志

看来,虽然PGPPublicKey该类提供了一种isEncryptionKey()方法来确定公钥的算法是否可以用于加密目的(RSA_GENERAL, RSA_ENCRYPT, ELGAMAL_GENERAL, ELGAMAL_ENCRYPT),但仅凭这一点还不足以选择有效的加密子密钥。

有关于存储在数据包中的公钥的预期用途的信息,如 GnuPG packet.h 中所示:

 41 /* Usage flags */
 42 #define PUBKEY_USAGE_SIG     GCRY_PK_USAGE_SIGN  /* Good for signatures. */
 43 #define PUBKEY_USAGE_ENC     GCRY_PK_USAGE_ENCR  /* Good for encryption. */
 44 #define PUBKEY_USAGE_CERT    GCRY_PK_USAGE_CERT  /* Also good to certify keys.*/
 45 #define PUBKEY_USAGE_AUTH    GCRY_PK_USAGE_AUTH  /* Good for authentication. */
 46 #define PUBKEY_USAGE_UNKNOWN GCRY_PK_USAGE_UNKN  /* Unknown usage flag. */
 47 #define PUBKEY_USAGE_NONE    256                 /* No usage given. */
Run Code Online (Sandbox Code Playgroud)

我的问题是,鉴于 Bouncy Castle …

java bouncycastle gnupg pgp

3
推荐指数
1
解决办法
787
查看次数

GPG 依赖于熵生成

在尝试生成 GPG 密钥时(使用 gpg --gen-key),它可能会在发出消息后挂起:

没有足够的随机字节可用。请做一些其他的工作,让操作系统有机会收集更多的熵!(还需要 278 个字节)

gpg (GnuPG) 1.4.16

Ubuntu 14.04.2 LTS

ubuntu gnupg

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

一个文件的几个pgp签名

file.txt登录GnuPG的基本选项是file.txt.asc签名.

在我们的工作流程中,我需要几个签名file.txt- 主要的例子是作者签名和验证者签名.

GnuPG的最佳用例是什么?我可以将这两个签名存储在一个asc文件中吗?或者我需要处理两个文件file.txt.authorname.ascfile.txt.checkername.asc?或者是其他东西?

gnupg pgp

3
推荐指数
1
解决办法
1677
查看次数

抑制 gnupg 中的警告消息

我使用 gpg 只是为了加密和解密。

我使用的命令是:

for enc:
gpg --sign test
for dec:
gpg --decrypt test.gpg > test
Run Code Online (Sandbox Code Playgroud)

但我收到以下警告消息:

gpg: Signature made Fri Jun 24 17:29:00 2016 UTC using RSA key ID XXXX
gpg: Good signature from "XXXX@xxxx.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Run Code Online (Sandbox Code Playgroud)

当然,我已经尝试过 --status-fd, --no-comment, --no-mdc-warning,--no-tty ,--no-verbose --quiet --batch, --no-greeting etc基于互联网搜索。

有没有办法摆脱这些警告信息?

作为最后一个选项,我使用 如何在 bash 中隐藏命令输出

但我认为应该有一个简单的方法来抑制 gpg 中的警告。

bash gnupg

3
推荐指数
1
解决办法
6750
查看次数

如何从gpg密钥获取到期日期

以下是由gpg --armor --export heinrichh@duesseldorf.de(从gpg man; 取得的电子邮件)生成的导出的公共gpg密钥

我如何从该密钥获取到期日期?是否有可用的开放项目,或者我可以使用的功能?

我知道我可以执行gpg --list-keys搜索,heinrichh@duesseldorf.de但是我的问题是我得到了以下格式的密钥,因此需要将这些信息提取到该数据中。

我已经使用基于gpg rfc规范的反向工程从中读取了用户名,但是这次我宁愿寻找比“自制”方法更好的方法。

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.7 (SunOS)

mQGiBFqNy1sRBADnegXzBpsnDgSudhj5S4+Lv0rwHHcJDg0nxHPf2KaefXnytzhm
tf/43xQaaPUpIg2UMV2qhdA9qczMlqe6llz7sQbi4v0QTuOPSx2EcKb364TcsG5K
RO180ghq0RmeK+EDfCn8i5aPfGucaPXpUJ9ZaRaJmEWlv57eymPEW+FAVwCgmATR
w4bcPZWyUMaO/MsB4+IA1zkEALB60PN8sA1mFyf0z9mlXYoP/T68pAHFMWd+NNcB
K7+BmHZEhTUEUwB1pfO/s6AurSCAFHUmhM2S9VBkci+EuyFVCkorZbbjCdZ3Nim5
KojcIL319mbYNyfzVkxLLbrHaSvax7xmyLY7HfXEYyJskR6fk4zB7er4VKDIh1gZ
G9T/A/9j1FslL0sBZ2YfcDVWpfofoX2hxW9Y0ihxHGpVtwcOd90RFXEt1jjDP2O2
iPkseTpxT2bG9qGK89YymKZjNnXKxZoYG0Y1peiHL4dX4EeEkGS72MWLwCUupuxh
w4MzH7mgtAV4UxXm2WjomWX8aZqJ5YQ4Cnxs0f6zcDnTSj8DvLQwSGVpbnJpY2gg
SGVpbmUgKHRlc3QpIDxoZWlucmljaGhAZHVlc3NlbGRvcmYuZGU+iGUEExECACUF
AlqNy1sCGwMFCQABUYAGCwkIBwMCBBUCCAMDFgIBAh4BAheAAAoJECAy3dUnZnUw
6BUAn1ikxbVvcJ6vaARftyK/Uw6Zw9WKAJwPgbcy02HMvtjQCaCtusLl12ZdLLkC
DQRajctbEAgA1YU+9LWaSdInlCMaF639qaE8bv3JK2DbNj/0v+QwmQT81Jp6U37j
XbU+zA85nw96zwjBDz9ACg3jtQlrbg7e+ooJQMzCVYkkIJH8mkQi8JYswLFFaKRp
dJy43Gyx+ehbOT5FGfeX8VoAbuDhBJKtssmH/EEz9hYLLLZ8me88onnNOWCAAWF+
bOJSemRMppY5f9nQwUMk7uG5yv9Wk/E98w+evow10bhWs3cyCxvT6IHQSGS0m+iC
vCDhaSRy+cRf+GRqy/LyUb4z7Q4TZRrcE/X3xY7FW8/iNSlkv5oMjpFoaYBpSzkE
vdXsdOJQVZHnefkUDXTMl7OPWX9RyX1CbwADBQgAh+Bsn7lin/z8WIDIwlo7B7ag
p8YzFeJqsyPxP2I9a36mVrHOopXHotMMCPBF9lm227vXwB+z8fKoujzd9himVspo
fMA5GGvPHEya4ldha+3ChJTNgErZfkczzbcoP6YLmxI+kfW/OwjTq0Ivi0afhChR
vhb/N+hXoVcGm9ciA9xnoGE0+hZpzf5iF/SiL/T4wkCQy68PoCHxzrxWAnaqqldV
nYBEG5mUzrvqYb2iKWf24qt34og5GV4mrlNPSuvj7faE1BQe5JgEIhr8TS9Secnc
qQGJPh/+afK4Y8kl4CvQq3/BQddoFKgZdmUgaIBZN/fDqWwGfWLVx0mWXQgEbIhP
BBgRAgAPBQJajctbAhsMBQkAAVGAAAoJECAy3dUnZnUwNIwAn3+A5rGyGNZBD5qT
FgSoVvy7JcRLAKCX9sgU2by9pKxTmyZXvaUrEwGwXw==
=Ojdl
-----END PGP PUBLIC KEY BLOCK-----
Run Code Online (Sandbox Code Playgroud)

gnupg

3
推荐指数
1
解决办法
7213
查看次数

gpg:密钥服务器接收失败:主机栈无路由溢出

我正在尝试为我的ios应用安装fastlane,但是当我尝试安装RVM时,我遇到了问题。

我的命令是gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113 ************* 7D2BAF1CF37B13E2069D69561 *************

host gnupg rvm fastlane keyserver

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

标签 统计

gnupg ×10

bash ×2

pgp ×2

php ×2

bouncycastle ×1

cryptography ×1

fastlane ×1

go ×1

hash ×1

host ×1

java ×1

keyserver ×1

lamp ×1

macos ×1

mamp ×1

md5 ×1

openpgp ×1

passphrase ×1

rvm ×1

ubuntu ×1