【发布时间】:2016-11-18 22:15:02
【问题描述】:
我正在使用 bouncycastle.openpgp 库来获取 PGP 密钥的有效日期。如果 key.getValidDays() == 0,则可以假定 PGP 密钥永不过期。如何区分曾经有效和现在过期的密钥与永不过期的密钥?
【问题讨论】:
标签: java bouncycastle openpgp
我正在使用 bouncycastle.openpgp 库来获取 PGP 密钥的有效日期。如果 key.getValidDays() == 0,则可以假定 PGP 密钥永不过期。如何区分曾经有效和现在过期的密钥与永不过期的密钥?
【问题讨论】:
标签: java bouncycastle openpgp
过期的密钥将有一个非零的getValidDays,因为它们是相对于创建日期指定的,而不是当前日期。
getValidDays
public int getValidDays()
Returns:
number of valid days from creation time - zero means no expiry.
即您应该能够区分永不过期和有效/过期的密钥,代码如下:
if(key.getValidSeconds() == 0) {
//Never Expiring Key
} else if(Instant.now().isAfter(key.getCreationTime().toInstant().plusSeconds(key.getValidSeconds()))) {
//Expired Key
} else {
//Valid Key (has not expired yet)
}
【讨论】: