2016-11-18 114 views

回答

1

過期密鑰將具有非零值getValidDays,因爲它們是相對於創建日期而不是當前值指定的。

getValidDays 

public int getValidDays() 
Returns: 
number of valid days from creation time - zero means no expiry. 

I.e.你應該能夠區分永不過期的和有效/過期的密鑰,代碼如下:

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) 
} 
+0

Thanks @zeppelin。我是單位測試一個邊緣案例,我今天創建了一個密鑰(使用GPG工具),並嘗試將到期日期設置爲從現在開始的100年,但它沒有讓我這樣做,它默認今天爲過期日期,因此已過期鑰匙。所以在這種情況下,key.getValidSeconds()是0,密鑰已過期。我知道這不是現實世界的用例。感謝您的回答。 –