区分已过期的PGP子项与永不过期的PGP子项 - Java bouncycastle

时间:2016-11-18 22:15:03

标签: java bouncycastle openpgp

我正在使用bouncycastle.openpgp库来获取PGP密钥的有效日期。如果key.getValidDays()== 0,可以假设PGP密钥永不过期。如何区分曾经有效和现已过期的密钥与永不过期的密钥?

1 个答案:

答案 0 :(得分:1)

过期密钥将具有非零 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)
}