gpg --with-colon返回????-??-??作为到期日期。 Linux Y2K问题?

时间:2018-09-11 14:37:17

标签: gnupg

gpg --with-冒号报告了错误的到期日期(尽管密钥可用于加密),请参阅“ [到期:????-??-??]”

gpg --with-colon key.ascii
pub:-:1024:17:77A54749D56561D6:2016-06-10:????-??-??::-:AAA AAA <AAA@somewhere.com>:
sub:-:2048:16:44479A86F9DB1538:2016-06-10:????-??-??::: [expires: ????-??-??]

当我运行--list-packets时,我可以看到过期期限设置为27年:

gpg --list-packets key.ascii
...
        hashed subpkt 2 len 4 (sig created 2016-06-10)
        hashed subpkt 9 len 4 (key expires after 27y145d0h0m)

这是否意味着gpg在处理2016-06-10 + 27y145d时存在错误?

可以安全地假设日期实际上永不过期,并假设它没有过期,因为--with-colons参数中的第二列是'-'而不是'e'(请参见https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob_plain;f=doc/DETAILS获取--with-colons输出的详细信息)

1 个答案:

答案 0 :(得分:2)

实际上是Linux y2k问题。即使在Windows版本的gpg。看到这个:

gpg --gen-key
...
Key is valid for? (0) 50y
Key expires at ????-??-??
Your system can't display dates beyond 2038.
However, it will be correctly handled up to 2106.
Is this correct? (y/N)

是的。请注意,当您将有效期设置为超过时,它将影响gpg显示的有效期,并且任何依赖于正确有效期的软件都会被gpg列出。

编辑:使用gpg --with-colon --fixed-list-mode将纪元时间打印为整数,您可以将其处理到2106。