Skip to content

Commit 94bcf01

Browse files
authored
Merge pull request #116 from home-assistant-libs/pass-dac-verifier-on-controller-initialization
Pass DAC verifier on SetupCommissioner
2 parents 20f0e79 + b48aa8c commit 94bcf01

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
From cb2ac26affec6d02302449e92433bdb9dba07628 Mon Sep 17 00:00:00 2001
2+
From: Stefan Agner <stefan@agner.ch>
3+
Date: Wed, 4 Dec 2024 13:49:03 +0100
4+
Subject: [PATCH] [Python] Pass DAC verifier on SetupCommissioner
5+
6+
Besides setting the global DAC verifier, also explicitly pass the
7+
verifier on controller initialization. This avoids the common Controller
8+
initialization code to complain with:
9+
10+
```
11+
*** Missing DeviceAttestationVerifier configuration at DeviceCommissioner init: using global default, consider passing one in CommissionerInitParams.
12+
```
13+
---
14+
src/controller/python/OpCredsBinding.cpp | 4 +++-
15+
src/controller/python/chip/internal/CommissionerImpl.cpp | 5 ++++-
16+
2 files changed, 7 insertions(+), 2 deletions(-)
17+
18+
diff --git a/src/controller/python/OpCredsBinding.cpp b/src/controller/python/OpCredsBinding.cpp
19+
index f5815922cc..ec50d65c33 100644
20+
--- a/src/controller/python/OpCredsBinding.cpp
21+
+++ b/src/controller/python/OpCredsBinding.cpp
22+
@@ -490,7 +490,8 @@ PyChipError pychip_OpCreds_AllocateController(OpCredsContext * context, chip::Co
23+
24+
// Initialize device attestation verifier
25+
const chip::Credentials::AttestationTrustStore * testingRootStore = GetTestFileAttestationTrustStore(paaTrustStorePath);
26+
- SetDeviceAttestationVerifier(GetDefaultDACVerifier(testingRootStore));
27+
+ chip::Credentials::DeviceAttestationVerifier * dacVerifier = chip::Credentials::GetDefaultDACVerifier(testingRootStore);
28+
+ SetDeviceAttestationVerifier(dacVerifier);
29+
30+
chip::Crypto::P256Keypair ephemeralKey;
31+
chip::Crypto::P256Keypair * controllerKeyPair;
32+
@@ -544,6 +545,7 @@ PyChipError pychip_OpCreds_AllocateController(OpCredsContext * context, chip::Co
33+
initParams.controllerVendorId = adminVendorId;
34+
initParams.permitMultiControllerFabrics = true;
35+
initParams.hasExternallyOwnedOperationalKeypair = operationalKey != nullptr;
36+
+ initParams.deviceAttestationVerifier = dacVerifier;
37+
38+
if (useTestCommissioner)
39+
{
40+
diff --git a/src/controller/python/chip/internal/CommissionerImpl.cpp b/src/controller/python/chip/internal/CommissionerImpl.cpp
41+
index 7092024267..0640208e34 100644
42+
--- a/src/controller/python/chip/internal/CommissionerImpl.cpp
43+
+++ b/src/controller/python/chip/internal/CommissionerImpl.cpp
44+
@@ -131,7 +131,9 @@ extern "C" chip::Controller::DeviceCommissioner * pychip_internal_Commissioner_N
45+
// TODO: add option to pass in custom PAA Trust Store path to the python controller app
46+
const chip::Credentials::AttestationTrustStore * testingRootStore =
47+
GetTestFileAttestationTrustStore("./credentials/development/paa-root-certs");
48+
- chip::Credentials::SetDeviceAttestationVerifier(chip::Credentials::GetDefaultDACVerifier(testingRootStore));
49+
+ chip::Credentials::DeviceAttestationVerifier * dacVerifier =
50+
+ chip::Credentials::GetDefaultDACVerifier(testingRootStore);
51+
+ chip::Credentials::SetDeviceAttestationVerifier(dacVerifier);
52+
53+
factoryParams.fabricIndependentStorage = &gServerStorage;
54+
factoryParams.sessionKeystore = &gSessionKeystore;
55+
@@ -182,6 +184,7 @@ extern "C" chip::Controller::DeviceCommissioner * pychip_internal_Commissioner_N
56+
commissionerParams.controllerRCAC = rcacSpan;
57+
commissionerParams.controllerICAC = icacSpan;
58+
commissionerParams.controllerNOC = nocSpan;
59+
+ commissionerParams.deviceAttestationVerifier = dacVerifier;
60+
61+
SuccessOrExit(err = DeviceControllerFactory::GetInstance().Init(factoryParams));
62+
SuccessOrExit(err = DeviceControllerFactory::GetInstance().SetupCommissioner(commissionerParams, *result));
63+
--
64+
2.47.1
65+

0 commit comments

Comments
 (0)