@@ -947,8 +947,7 @@ DeviceCommissioner::ContinueCommissioningAfterDeviceAttestation(DeviceProxy * de
947
947
return CHIP_ERROR_INCORRECT_STATE;
948
948
}
949
949
950
- if (mCommissioningStage != CommissioningStage::kAttestationVerification &&
951
- mCommissioningStage != CommissioningStage::kAttestationRevocationCheck )
950
+ if (mCommissioningStage != CommissioningStage::kAttestationRevocationCheck )
952
951
{
953
952
ChipLogError (Controller, " Commissioning is not attestation verification phase" );
954
953
return CHIP_ERROR_INCORRECT_STATE;
@@ -957,8 +956,6 @@ DeviceCommissioner::ContinueCommissioningAfterDeviceAttestation(DeviceProxy * de
957
956
ChipLogProgress (Controller, " Continuing commissioning after attestation failure for device ID 0x" ChipLogFormatX64,
958
957
ChipLogValueX64 (commissioneeDevice->GetDeviceId ()));
959
958
960
- mCommissioningDelegate ->BypassDeviceAttestation ();
961
-
962
959
if (attestationResult != AttestationVerificationResult::kSuccess )
963
960
{
964
961
ChipLogError (Controller, " Client selected error: %u for failed 'Attestation Information' for device" ,
@@ -1198,8 +1195,14 @@ void DeviceCommissioner::OnDeviceAttestationInformationVerification(
1198
1195
auto & params = commissioner->mDefaultCommissioner ->GetCommissioningParameters ();
1199
1196
Credentials::DeviceAttestationDelegate * deviceAttestationDelegate = params.GetDeviceAttestationDelegate ();
1200
1197
1201
- result =
1202
- params.GetCompletionStatus ().attestationResult .HasValue () ? params.GetCompletionStatus ().attestationResult .Value () : result;
1198
+ if (params.GetCompletionStatus ().attestationResult .HasValue ())
1199
+ {
1200
+ auto previousResult = params.GetCompletionStatus ().attestationResult .Value ();
1201
+ if (previousResult != AttestationVerificationResult::kSuccess )
1202
+ {
1203
+ result = previousResult;
1204
+ }
1205
+ }
1203
1206
1204
1207
if (result != AttestationVerificationResult::kSuccess )
1205
1208
{
@@ -3066,7 +3069,12 @@ void DeviceCommissioner::PerformCommissioningStep(DeviceProxy * proxy, Commissio
3066
3069
}
3067
3070
case CommissioningStage::kAttestationVerification : {
3068
3071
ChipLogProgress (Controller, " Verifying attestation" );
3069
- VerifyOrReturn (IsAttestationInformationMissing (params) == false );
3072
+ if (IsAttestationInformationMissing (params))
3073
+ {
3074
+ ChipLogError (Controller, " Missing attestation information" );
3075
+ CommissioningStageComplete (CHIP_ERROR_INVALID_ARGUMENT);
3076
+ return ;
3077
+ }
3070
3078
3071
3079
DeviceAttestationVerifier::AttestationInfo info (
3072
3080
params.GetAttestationElements ().Value (),
@@ -3084,7 +3092,12 @@ void DeviceCommissioner::PerformCommissioningStep(DeviceProxy * proxy, Commissio
3084
3092
break ;
3085
3093
case CommissioningStage::kAttestationRevocationCheck : {
3086
3094
ChipLogProgress (Controller, " Verifying device's DAC chain revocation status" );
3087
- VerifyOrReturn (IsAttestationInformationMissing (params) == false );
3095
+ if (IsAttestationInformationMissing (params))
3096
+ {
3097
+ ChipLogError (Controller, " Missing attestation information" );
3098
+ CommissioningStageComplete (CHIP_ERROR_INVALID_ARGUMENT);
3099
+ return ;
3100
+ }
3088
3101
3089
3102
DeviceAttestationVerifier::AttestationInfo info (
3090
3103
params.GetAttestationElements ().Value (),
@@ -3464,14 +3477,12 @@ void DeviceCommissioner::ExtendFailsafeBeforeNetworkEnable(DeviceProxy * device,
3464
3477
}
3465
3478
}
3466
3479
3467
- bool DeviceCommissioner::IsAttestationInformationMissing (CommissioningParameters & params)
3480
+ bool DeviceCommissioner::IsAttestationInformationMissing (const CommissioningParameters & params)
3468
3481
{
3469
3482
if (!params.GetAttestationElements ().HasValue () || !params.GetAttestationSignature ().HasValue () ||
3470
3483
!params.GetAttestationNonce ().HasValue () || !params.GetDAC ().HasValue () || !params.GetPAI ().HasValue () ||
3471
3484
!params.GetRemoteVendorId ().HasValue () || !params.GetRemoteProductId ().HasValue ())
3472
3485
{
3473
- ChipLogError (Controller, " Missing attestation information" );
3474
- CommissioningStageComplete (CHIP_ERROR_INVALID_ARGUMENT);
3475
3486
return true ;
3476
3487
}
3477
3488
0 commit comments