HkpKeyserver: Fix parsing expiration status

This commit is contained in:
Andrea Torlaschi
2016-08-01 23:19:58 +02:00
parent cdef20601f
commit f3f9404081

View File

@@ -19,12 +19,12 @@
package org.sufficientlysecure.keychain.keyimport; package org.sufficientlysecure.keychain.keyimport;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.Request; import okhttp3.Request;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import okhttp3.Response; import okhttp3.Response;
import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.pgp.PgpHelper; import org.sufficientlysecure.keychain.pgp.PgpHelper;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
@@ -310,7 +310,17 @@ public class HkpKeyserver extends Keyserver {
} }
try { try {
entry.setRevoked(matcher.group(6).contains("r")); boolean expired = false;
String expiration = matcher.group(5);
if (!expiration.isEmpty()) {
final GregorianCalendar currentGreg = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
final long expirationDate = Long.parseLong(expiration);
final GregorianCalendar tmpGreg = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
tmpGreg.setTimeInMillis(expirationDate * 1000);
expired = currentGreg.compareTo(tmpGreg) >= 0;
}
entry.setRevoked(expired || matcher.group(6).contains("r"));
entry.setExpired(matcher.group(6).contains("e")); entry.setExpired(matcher.group(6).contains("e"));
} catch (NullPointerException e) { } catch (NullPointerException e) {
Log.e(Constants.TAG, "Check for revocation or expiry failed.", e); Log.e(Constants.TAG, "Check for revocation or expiry failed.", e);