Vi.*_*Vi. 18 cryptography expired-key gnupg
$ gpg -ear XXXXXXX
gpg: XXXXXXXX: skipped: unusable public key
$ gpg --debug-ignore-expiration -ear XXXXXXXX
gpg: Invalid option "--debug-ignore-expiration"
Run Code Online (Sandbox Code Playgroud)
如何加密?密钥服务器没有可用的密钥更新。如果用户仍然拥有过期的密钥或根本没有看到消息,则应该看到消息。
是否有一些--just-do-that-I-want选项可以在不更改 GPG 源代码的情况下执行此操作?
Vi.*_*Vi. 14
正如@rob 在评论中建议的那样,libfaketime处理得很好:
$ gpg -v -v -v --batch --trust-model always -ear D5B9D38C <<< "qweqe"
gpg: using character set 'utf-8'
gpg: Note: signature key 077EA269D5B9D38C expired Sun 09 Nov 2014 12:57:25 PM +03
gpg: D5B9D38C: skipped: Unusable public key
gpg: [stdin]: encryption failed: Unusable public key
$ faketime '2012-12-24 08:15:42' gpg -v -v -v --batch --trust-model always -ear D5B9D38C <<< "qweqe"
gpg: using character set 'utf-8'
gpg: using subkey 85231B396B9569ED instead of primary key 077EA269D5B9D38C
gpg: No trust check due to '--trust-model always' option
gpg: reading from '[stdin]'
gpg: writing to stdout
gpg: RSA/AES256 encrypted for: "..."
-----BEGIN PGP MESSAGE-----
...
Run Code Online (Sandbox Code Playgroud)
旧答案:
小智 8
使用--faked-system-time选项:
gpg2 --faked-system-time 20100101T000000 -e -r keyid
Run Code Online (Sandbox Code Playgroud)
我更喜欢一个选项,它可以强制加密过期的密钥,同时记录正确的时间(尤其是在签名时)。