出于某种原因,我似乎无法找到这个基本问题的答案。我收到了一封加密的 S/MIME 电子邮件,我想使用openssl smime. 但是,我认为我无法提供正确格式的密钥。这就是我所做的:
smime-ok.txtmyself.p12myself.cer然后我尝试了
openssl smime -decrypt -in smime-ok.txt -recip myself.p12
Run Code Online (Sandbox Code Playgroud)
但我得到
unable to load certificate
37740:error:0906D06C:PEM routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.7/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE
Run Code Online (Sandbox Code Playgroud)
我还尝试了-inkey myself.p12 -recip myself.cer更多的变体,但这并没有什么区别。我猜想我的密钥文件没有被读取,或者没有正确读取,因为也没有提示我输入密码。
我怀疑我可能基本上误解了如何使用openssl smime.
我用它来检查日志文件的日志行,直到发生特定事件(取自此答案“监视文件直到找到字符串”):
(tail -f -n 0 test.log &) | grep -q 'SPEFICIC LOG MESSAGE'
Run Code Online (Sandbox Code Playgroud)
这可行,但我还希望在等待事件时将日志行打印到标准输出。我正在寻找类似的东西tee,但我想同时打印和管道。
我尝试了这个答案来管道并观察管道输出?, 导致:
(tail -f -n 0 test.log &) | tee /dev/fd/2 | grep -q 'SPEFICIC LOG MESSAGE'
Run Code Online (Sandbox Code Playgroud)
但随后该命令永远不会退出,大概是因为在找到匹配项时grep无法中断,因此继续将数据传送到?tailtailtee
我希望能够检查使用哪种(内部)对称算法使用公钥通过 GPG 加密文件。
我在某处读过这可以用 完成--list-packets,所以我尝试了
$ gpg --list-packets encrypted_file.asc
gpg: encrypted with 256-Bit ECDH key, ID 0865135E90D1AF38, created 2020-03-20
"First Last <first.last@somewhere.net>"
# off=0 ctb=84 tag=1 hlen=2 plen=94
:pubkey enc packet: version 3, algo 18, keyid 0865135E90D1AF38
data: [263 bits]
data: [392 bits]
# off=96 ctb=d2 tag=18 hlen=3 plen=1965 new-ctb
:encrypted data packet:
length: 1965
mdc_method: 2
# off=118 ctb=a3 tag=8 hlen=1 plen=0 indeterminate
:compressed packet: algo=1
# off=120 ctb=cb tag=11 hlen=2 plen=0 partial new-ctb
:literal data packet: …Run Code Online (Sandbox Code Playgroud)