Merge "Change OtDaemonState ephemeralKeyExpiryMillis to ephemeralKeyLifetimeMillis" into main
diff --git a/thread/framework/java/android/net/thread/IStateCallback.aidl b/thread/framework/java/android/net/thread/IStateCallback.aidl
index 57c365b..d074b01 100644
--- a/thread/framework/java/android/net/thread/IStateCallback.aidl
+++ b/thread/framework/java/android/net/thread/IStateCallback.aidl
@@ -24,5 +24,5 @@
void onPartitionIdChanged(long partitionId);
void onThreadEnableStateChanged(int enabledState);
void onEphemeralKeyStateChanged(
- int ephemeralKeyState, @nullable String ephemeralKey, long expiryMillis);
+ int ephemeralKeyState, @nullable String ephemeralKey, long lifetimeMillis);
}
diff --git a/thread/framework/java/android/net/thread/ThreadNetworkController.java b/thread/framework/java/android/net/thread/ThreadNetworkController.java
index 6d20e13..bcef76c 100644
--- a/thread/framework/java/android/net/thread/ThreadNetworkController.java
+++ b/thread/framework/java/android/net/thread/ThreadNetworkController.java
@@ -420,7 +420,9 @@
@Override
public void onEphemeralKeyStateChanged(
- @EphemeralKeyState int ephemeralKeyState, String ephemeralKey, long expiryMillis) {
+ @EphemeralKeyState int ephemeralKeyState,
+ String ephemeralKey,
+ long lifetimeMillis) {
if (!Flags.epskcEnabled()) {
throw new IllegalStateException(
"This should not be called when Ephemeral key API is disabled");
@@ -430,7 +432,7 @@
final Instant expiry =
ephemeralKeyState == EPHEMERAL_KEY_DISABLED
? null
- : Instant.ofEpochMilli(expiryMillis);
+ : Instant.now().plusMillis(lifetimeMillis);
try {
mExecutor.execute(
diff --git a/thread/service/java/com/android/server/thread/ThreadNetworkControllerService.java b/thread/service/java/com/android/server/thread/ThreadNetworkControllerService.java
index 99fa7c9..4e812fb 100644
--- a/thread/service/java/com/android/server/thread/ThreadNetworkControllerService.java
+++ b/thread/service/java/com/android/server/thread/ThreadNetworkControllerService.java
@@ -1785,7 +1785,7 @@
.onEphemeralKeyStateChanged(
newState.ephemeralKeyState,
passcode,
- newState.ephemeralKeyExpiryMillis);
+ newState.ephemeralKeyLifetimeMillis);
} catch (RemoteException ignored) {
// do nothing if the client is dead
}
@@ -1798,7 +1798,7 @@
if (oldState.ephemeralKeyState != newState.ephemeralKeyState) return true;
if (oldState.ephemeralKeyState == EPHEMERAL_KEY_DISABLED) return false;
return (!Objects.equals(oldState.ephemeralKeyPasscode, newState.ephemeralKeyPasscode)
- || oldState.ephemeralKeyExpiryMillis != newState.ephemeralKeyExpiryMillis);
+ || oldState.ephemeralKeyLifetimeMillis != newState.ephemeralKeyLifetimeMillis);
}
private void onActiveOperationalDatasetChanged(
diff --git a/thread/tests/cts/src/android/net/thread/cts/ThreadNetworkControllerTest.java b/thread/tests/cts/src/android/net/thread/cts/ThreadNetworkControllerTest.java
index 07438e9..d9ce9e1 100644
--- a/thread/tests/cts/src/android/net/thread/cts/ThreadNetworkControllerTest.java
+++ b/thread/tests/cts/src/android/net/thread/cts/ThreadNetworkControllerTest.java
@@ -1043,7 +1043,9 @@
listener2.expectThreadEphemeralKeyMode(EPHEMERAL_KEY_ENABLED);
assertThat(epskc2.getSecond()).isEqualTo(epskc1.getSecond());
- assertThat(epskc2.getThird()).isEqualTo(epskc1.getThird());
+ // allow time precision loss of a second since the value is passed via IPC
+ assertThat(epskc2.getThird()).isGreaterThan(epskc1.getThird().minusSeconds(1));
+ assertThat(epskc2.getThird()).isLessThan(epskc1.getThird().plusSeconds(1));
} finally {
listener2.unregisterStateCallback();
}