Change OtDaemonState ephemeralKeyExpiryMillis to ephemeralKeyLifetimeMillis
Bug: 372598146
Test: atest CtsThreadNetworkTestCases
Change-Id: I634ca0c22b5d80411df2b53493659c27ea07d2f2
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 f716f98..f82d211 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 3d854d7..dbcea78 100644
--- a/thread/service/java/com/android/server/thread/ThreadNetworkControllerService.java
+++ b/thread/service/java/com/android/server/thread/ThreadNetworkControllerService.java
@@ -1787,7 +1787,7 @@
.onEphemeralKeyStateChanged(
newState.ephemeralKeyState,
passcode,
- newState.ephemeralKeyExpiryMillis);
+ newState.ephemeralKeyLifetimeMillis);
} catch (RemoteException ignored) {
// do nothing if the client is dead
}
@@ -1800,7 +1800,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 1792bfb..1074609 100644
--- a/thread/tests/cts/src/android/net/thread/cts/ThreadNetworkControllerTest.java
+++ b/thread/tests/cts/src/android/net/thread/cts/ThreadNetworkControllerTest.java
@@ -1042,7 +1042,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();
}