diff --git a/src/controller/java/AndroidDeviceControllerWrapper.cpp b/src/controller/java/AndroidDeviceControllerWrapper.cpp
index ba03426..7f821fe 100644
--- a/src/controller/java/AndroidDeviceControllerWrapper.cpp
+++ b/src/controller/java/AndroidDeviceControllerWrapper.cpp
@@ -42,9 +42,7 @@
 #include <lib/support/TestGroupData.h>
 #include <lib/support/ThreadOperationalDataset.h>
 #include <platform/KeyValueStoreManager.h>
-#ifndef JAVA_MATTER_CONTROLLER_TEST
-#include <platform/android/CHIPP256KeypairBridge.h>
-#endif // JAVA_MATTER_CONTROLLER_TEST
+
 using namespace chip;
 using namespace chip::Controller;
 using namespace chip::Credentials;
@@ -54,13 +52,11 @@
 {
     mController->Shutdown();
 
-#ifndef JAVA_MATTER_CONTROLLER_TEST
     if (mKeypairBridge != nullptr)
     {
         chip::Platform::Delete(mKeypairBridge);
         mKeypairBridge = nullptr;
     }
-#endif // JAVA_MATTER_CONTROLLER_TEST
 
     if (mDeviceAttestationDelegateBridge != nullptr)
     {
@@ -298,7 +294,6 @@
 
     // The lifetime of the ephemeralKey variable must be kept until SetupParams is saved.
     Crypto::P256Keypair ephemeralKey;
-#ifndef JAVA_MATTER_CONTROLLER_TEST
     if (rootCertificate != nullptr && nodeOperationalCertificate != nullptr && keypairDelegate != nullptr)
     {
         CHIPP256KeypairBridge * nativeKeypairBridge = wrapper->GetP256KeypairBridge();
@@ -335,7 +330,6 @@
         setupParams.controllerNOC  = chip::ByteSpan(wrapper->mNocCertificate.data(), wrapper->mNocCertificate.size());
     }
     else
-#endif // JAVA_MATTER_CONTROLLER_TEST
     {
         ChipLogProgress(Controller,
                         "No existing credentials provided: generating ephemeral local NOC chain with OperationalCredentialsIssuer");
diff --git a/src/controller/java/AndroidDeviceControllerWrapper.h b/src/controller/java/AndroidDeviceControllerWrapper.h
index 02d5049..93374a1 100644
--- a/src/controller/java/AndroidDeviceControllerWrapper.h
+++ b/src/controller/java/AndroidDeviceControllerWrapper.h
@@ -28,19 +28,18 @@
 #include <app/icd/client/CheckInHandler.h>
 #include <app/icd/client/DefaultICDClientStorage.h>
 #include <controller/CHIPDeviceController.h>
+#include <controller/java/CHIPP256KeypairBridge.h>
 #include <credentials/GroupDataProviderImpl.h>
 #include <credentials/PersistentStorageOpCertStore.h>
 #include <credentials/attestation_verifier/DacOnlyPartialAttestationVerifier.h>
 #include <crypto/RawKeySessionKeystore.h>
 #include <lib/support/TimeUtils.h>
 #include <platform/internal/DeviceNetworkInfo.h>
-
 #ifdef JAVA_MATTER_CONTROLLER_TEST
 #include <controller/ExampleOperationalCredentialsIssuer.h>
 #include <controller/ExamplePersistentStorage.h>
 #else
 #include <platform/android/AndroidChipPlatform-JNI.h>
-#include <platform/android/CHIPP256KeypairBridge.h>
 #endif // JAVA_MATTER_CONTROLLER_TEST
 
 #include "AndroidCheckInDelegate.h"
@@ -71,7 +70,6 @@
     jobject JavaObjectRef() { return mJavaObjectRef.ObjectRef(); }
     jlong ToJNIHandle();
 
-#ifndef JAVA_MATTER_CONTROLLER_TEST
     /**
      * Returns a CHIPP256KeypairBridge which can be used to delegate signing operations
      * to a KeypairDelegate in the Java layer. Note that this will always return a pointer
@@ -85,7 +83,6 @@
         }
         return mKeypairBridge;
     }
-#endif // JAVA_MATTER_CONTROLLER_TEST
 
     void CallJavaIntMethod(const char * methodName, jint argument);
     void CallJavaLongMethod(const char * methodName, jlong argument);
@@ -235,12 +232,12 @@
 
     JavaVM * mJavaVM = nullptr;
     chip::JniGlobalReference mJavaObjectRef;
+    CHIPP256KeypairBridge * mKeypairBridge = nullptr;
 #ifdef JAVA_MATTER_CONTROLLER_TEST
     ExampleOperationalCredentialsIssuerPtr mOpCredsIssuer;
     PersistentStorage mExampleStorage;
 #else
     AndroidOperationalCredentialsIssuerPtr mOpCredsIssuer;
-    CHIPP256KeypairBridge * mKeypairBridge = nullptr;
 #endif // JAVA_MATTER_CONTROLLER_TEST
 
     // These fields allow us to release the string/byte array memory later.
diff --git a/src/controller/java/BUILD.gn b/src/controller/java/BUILD.gn
index 480e30f..2ae828a 100644
--- a/src/controller/java/BUILD.gn
+++ b/src/controller/java/BUILD.gn
@@ -136,6 +136,8 @@
     "AttestationTrustStoreBridge.cpp",
     "AttestationTrustStoreBridge.h",
     "CHIPDeviceController-JNI.cpp",
+    "CHIPP256KeypairBridge.cpp",
+    "CHIPP256KeypairBridge.h",
     "DeviceAttestation-JNI.cpp",
     "DeviceAttestationDelegateBridge.cpp",
     "DeviceAttestationDelegateBridge.h",
diff --git a/src/platform/android/CHIPP256KeypairBridge.cpp b/src/controller/java/CHIPP256KeypairBridge.cpp
similarity index 98%
rename from src/platform/android/CHIPP256KeypairBridge.cpp
rename to src/controller/java/CHIPP256KeypairBridge.cpp
index a6be879..a73eb41 100644
--- a/src/platform/android/CHIPP256KeypairBridge.cpp
+++ b/src/controller/java/CHIPP256KeypairBridge.cpp
@@ -15,7 +15,7 @@
  *    limitations under the License.
  */
 
-#include "platform/android/CHIPP256KeypairBridge.h"
+#include "CHIPP256KeypairBridge.h"
 #include "lib/core/CHIPError.h"
 #include "lib/support/CHIPJNIError.h"
 #include "lib/support/JniReferences.h"
@@ -26,7 +26,6 @@
 #include <cstdint>
 #include <cstdlib>
 #include <jni.h>
-#include <platform/PlatformManager.h>
 #include <string.h>
 #include <type_traits>
 
diff --git a/src/platform/android/CHIPP256KeypairBridge.h b/src/controller/java/CHIPP256KeypairBridge.h
similarity index 100%
rename from src/platform/android/CHIPP256KeypairBridge.h
rename to src/controller/java/CHIPP256KeypairBridge.h
diff --git a/src/platform/android/BUILD.gn b/src/platform/android/BUILD.gn
index 640b524..9893907 100644
--- a/src/platform/android/BUILD.gn
+++ b/src/platform/android/BUILD.gn
@@ -64,8 +64,6 @@
     "BleConnectCallback-JNI.cpp",
     "BlePlatformConfig.h",
     "CHIPDevicePlatformEvent.h",
-    "CHIPP256KeypairBridge.cpp",
-    "CHIPP256KeypairBridge.h",
     "CommissionableDataProviderImpl.cpp",
     "CommissionableDataProviderImpl.h",
     "ConfigurationManagerImpl.cpp",
