Latest 2.7.0 toolchain.
nrf5340DK board, light_bulb example.
I am using our own smartphone to perform up to AddNOC and ThreadNetworkSetup.
Then the control is transferred to another controller to setup CASE session and finish commissioning.
The problem is that the CASE cannot be established sue to incorrect IPK on nRF side.
I make some traces.
1. modules\lib\matter\src\app\clusters\operational-credentials-server\operational-credentials-server.cpp,
in function emberAfOperationalCredentialsClusterAddNOCCallback, the IPK value is correct.
Line 671: err = groupDataProvider->SetKeySet(newFabricIndex, compressed_fabric_id, keyset);
The IPKKeySet was set.
2. modules\lib\matter\src\protocols\secure_channel\CASESession.cpp
line 779: CHIP_ERROR err = mGroupDataProvider->GetIpkKeySet(fabricInfo.GetFabricIndex(), ipkKeySet);
The returned ipkKeySet is different than what was just set.
Note, during this stage, the fabric is still temporary and may be up to revert. I guess that's why nrf is handling the IPK differently.
I am pretty certain this is a bug and it breaks the specification. I am reporting it and I will look further later.