Our app tried to operate a Matter bulb in a local Wi-Fi.
At first,the iOS app generate the rootCertificate :
let rootKeypairs = FCSMTRKeys()
rootCertificate = try MTRCertificates.createRootCertificate(rootKeypairs, issuerID: __tmpIssuerID, fabricID: NSNumber(value: __tmpFabricId))
Then commissioning the bulb and generate the Operational Certificate like this:
let opKeypairs = FCSMTRKeys()
guard let rootCer = rootCertificate else {
return false
}
let operationalPublicKey = FCSMTRKeys.getSecPublicKey(opKeypairs.publicKeyData)
let nocCertificate = try MTRCertificates.createOperationalCertificate(
rootKeypairs, signingCertificate: rootCer, operationalPublicKey:operationalPublicKey.takeUnretainedValue(), fabricID: NSNumber(value: __tmpFabricId),
nodeID: NSNumber(value: deviceId), caseAuthenticatedTags: nil)
factoryParams = MTRDeviceControllerStartupParams(
ipk: rootKeypairs.ipk, operationalKeypair: opKeypairs, operationalCertificate: nocCertificate, intermediateCertificate: nil, rootCertificate: rootCer)
At last commissioning complete,we can use iOS App operate the Matter bulb.
We have a problem:the Root Certificate、Operational Certificate and the keypairs we shared to the Android side. The Android App can’t operate the Matter bulb.
We don't know why.