Skip to content

Commit bd0252a

Browse files
committed
Integrating more comments
1 parent 204eb5c commit bd0252a

File tree

3 files changed

+192
-154
lines changed

3 files changed

+192
-154
lines changed

src/protocols/secure_channel/CASESession.cpp

+74-68
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@
5050
#include <transport/SessionManager.h>
5151

5252
namespace {
53-
53+
// TBEDataTags works for both sigma-2-tbedata and sigma-3-tbedata as they have the same tag numbers for the elements common between
54+
// them.
5455
enum class TBEDataTags : uint8_t
5556
{
5657
kSenderNOC = 1,
@@ -59,6 +60,8 @@ enum class TBEDataTags : uint8_t
5960
kResumptionID = 4,
6061
};
6162

63+
// TBSDataTags works for both sigma-2-tbsdata and sigma-3-tbsdata as they have the same tag numbers for the elements common between
64+
// them.
6265
enum class TBSDataTags : uint8_t
6366
{
6467
kSenderNOC = 1,
@@ -69,30 +72,30 @@ enum class TBSDataTags : uint8_t
6972

7073
enum class Sigma1Tags : uint8_t
7174
{
72-
kInitiatorRandom = 1,
73-
kInitiatorSessionId = 2,
74-
kDestinationId = 3,
75-
kInitiatorPubKey = 4,
76-
kInitiatorMRPParams = 5,
77-
kResumptionID = 6,
78-
kResume1MIC = 7,
75+
kInitiatorRandom = 1,
76+
kInitiatorSessionId = 2,
77+
kDestinationId = 3,
78+
kInitiatorEphPubKey = 4,
79+
kInitiatorSessionParams = 5,
80+
kResumptionID = 6,
81+
kResume1MIC = 7,
7982
};
8083

8184
enum class Sigma2Tags : uint8_t
8285
{
83-
kResponderRandom = 1,
84-
kResponderSessionId = 2,
85-
kResponderEphPubKey = 3,
86-
kEncrypted2 = 4,
87-
kResponderMRPParams = 5,
86+
kResponderRandom = 1,
87+
kResponderSessionId = 2,
88+
kResponderEphPubKey = 3,
89+
kEncrypted2 = 4,
90+
kResponderSessionParams = 5,
8891
};
8992

90-
enum class Sigma2ResTags : uint8_t
93+
enum class Sigma2ResumeTags : uint8_t
9194
{
92-
kResumptionID = 1,
93-
kSigma2ResumeMIC = 2,
94-
kResponderSessionID = 3,
95-
kResponderMRPParams = 4,
95+
kResumptionID = 1,
96+
kSigma2ResumeMIC = 2,
97+
kResponderSessionID = 3,
98+
kResponderSessionParams = 4,
9699
};
97100

98101
enum class Sigma3Tags : uint8_t
@@ -104,7 +107,7 @@ enum class Sigma3Tags : uint8_t
104107
template <typename Enum>
105108
constexpr chip::TLV::Tag AsTlvContextTag(Enum e)
106109
{
107-
return chip::TLV::ContextTag(static_cast<std::underlying_type_t<Enum>>(e));
110+
return chip::TLV::ContextTag(chip::to_underlying(e));
108111
}
109112

110113
} // namespace
@@ -794,7 +797,6 @@ CHIP_ERROR CASESession::SendSigma1()
794797
{
795798
MATTER_TRACE_SCOPE("SendSigma1", "CASESession");
796799

797-
System::PacketBufferHandle msgR1;
798800
uint8_t destinationIdentifier[kSHA256_Hash_Length] = { 0 };
799801

800802
// Struct that will be used as input to EncodeSigma1() method
@@ -812,7 +814,7 @@ CHIP_ERROR CASESession::SendSigma1()
812814
mEphemeralKey = mFabricsTable->AllocateEphemeralKeypairForCASE();
813815
VerifyOrReturnError(mEphemeralKey != nullptr, CHIP_ERROR_NO_MEMORY);
814816
ReturnErrorOnFailure(mEphemeralKey->Initialize(ECPKeyTarget::ECDH));
815-
encodeSigma1Inputs.pEphPubKey = &mEphemeralKey->Pubkey();
817+
encodeSigma1Inputs.initiatorEphPubKey = &mEphemeralKey->Pubkey();
816818

817819
// Fill in the random value
818820
ReturnErrorOnFailure(DRBG_get_bytes(mInitiatorRandom, sizeof(mInitiatorRandom)));
@@ -847,7 +849,7 @@ CHIP_ERROR CASESession::SendSigma1()
847849
{
848850
// Found valid resumption state, try to resume the session.
849851
encodeSigma1Inputs.resumptionId = mResumeResumptionId;
850-
MutableByteSpan resumeMICSpan(encodeSigma1Inputs.initiatorResume1MIC);
852+
MutableByteSpan resumeMICSpan(encodeSigma1Inputs.initiatorResume1MICBuffer);
851853
ReturnErrorOnFailure(GenerateSigmaResumeMIC(encodeSigma1Inputs.initiatorRandom, encodeSigma1Inputs.resumptionId,
852854
ByteSpan(kKDFS1RKeyInfo), ByteSpan(kResume1MIC_Nonce), resumeMICSpan));
853855

@@ -856,6 +858,8 @@ CHIP_ERROR CASESession::SendSigma1()
856858
}
857859
}
858860

861+
System::PacketBufferHandle msgR1;
862+
859863
// Encode Sigma1 in CHIP TLV Format
860864
ReturnErrorOnFailure(EncodeSigma1(msgR1, encodeSigma1Inputs));
861865

@@ -893,9 +897,9 @@ CHIP_ERROR CASESession::EncodeSigma1(System::PacketBufferHandle & msg, EncodeSig
893897
{
894898
MATTER_TRACE_SCOPE("EncodeSigma1", "CASESession");
895899

896-
// the PacketBufferHandler should be empty
900+
// The API Contract requires the passed PacketBufferHandle to be empty
897901
VerifyOrReturnError(msg.IsNull(), CHIP_ERROR_INCORRECT_STATE);
898-
VerifyOrReturnError(input.pEphPubKey != nullptr, CHIP_ERROR_INCORRECT_STATE);
902+
VerifyOrReturnError(input.initiatorEphPubKey != nullptr, CHIP_ERROR_INVALID_ARGUMENT);
899903

900904
size_t dataLen = EstimateStructOverhead(kSigmaParamRandomNumberSize, // initiatorRandom
901905
sizeof(uint16_t), // initiatorSessionId,
@@ -910,20 +914,20 @@ CHIP_ERROR CASESession::EncodeSigma1(System::PacketBufferHandle & msg, EncodeSig
910914
VerifyOrReturnError(!msg.IsNull(), CHIP_ERROR_NO_MEMORY);
911915

912916
System::PacketBufferTLVWriter tlvWriter;
913-
TLVType outerContainerType = kTLVType_NotSpecified;
914-
915917
tlvWriter.Init(std::move(msg));
918+
919+
TLVType outerContainerType = kTLVType_NotSpecified;
916920
ReturnErrorOnFailure(tlvWriter.StartContainer(AnonymousTag(), kTLVType_Structure, outerContainerType));
917921
ReturnErrorOnFailure(tlvWriter.Put(AsTlvContextTag(Sigma1Tags::kInitiatorRandom), input.initiatorRandom));
918922
ReturnErrorOnFailure(tlvWriter.Put(AsTlvContextTag(Sigma1Tags::kInitiatorSessionId), input.initiatorSessionId));
919923
ReturnErrorOnFailure(tlvWriter.Put(AsTlvContextTag(Sigma1Tags::kDestinationId), input.destinationId));
920924

921-
ReturnErrorOnFailure(tlvWriter.PutBytes(AsTlvContextTag(Sigma1Tags::kInitiatorPubKey), *input.pEphPubKey,
922-
static_cast<uint32_t>(input.pEphPubKey->Length())));
925+
ReturnErrorOnFailure(tlvWriter.PutBytes(AsTlvContextTag(Sigma1Tags::kInitiatorEphPubKey), *input.initiatorEphPubKey,
926+
static_cast<uint32_t>(input.initiatorEphPubKey->Length())));
923927

924-
VerifyOrReturnError(input.initiatorMrpConfig != nullptr, CHIP_ERROR_INCORRECT_STATE);
928+
VerifyOrReturnError(input.initiatorMrpConfig != nullptr, CHIP_ERROR_INVALID_ARGUMENT);
925929
ReturnErrorOnFailure(
926-
EncodeSessionParameters(AsTlvContextTag(Sigma1Tags::kInitiatorMRPParams), *input.initiatorMrpConfig, tlvWriter));
930+
EncodeSessionParameters(AsTlvContextTag(Sigma1Tags::kInitiatorSessionParams), *input.initiatorMrpConfig, tlvWriter));
927931

928932
if (input.sessionResumptionRequested)
929933
{
@@ -942,21 +946,22 @@ CHIP_ERROR CASESession::HandleSigma1_and_SendSigma2(System::PacketBufferHandle &
942946
MATTER_TRACE_SCOPE("HandleSigma1_and_SendSigma2", "CASESession");
943947

944948
CHIP_ERROR err = CHIP_NO_ERROR;
949+
Step nextStep = Step::kNone;
945950

946951
// Parse and Validate Received Sigma1, and decide next step
947-
SuccessOrExit(err = HandleSigma1(std::move(msg)));
952+
SuccessOrExit(err = HandleSigma1(std::move(msg), nextStep));
948953

949-
switch (mNextStep)
954+
switch (nextStep)
950955
{
951956
case Step::kSendSigma2: {
952957

953958
System::PacketBufferHandle msgR2;
954959
EncodeSigma2Inputs encodeSigma2;
955960

956-
MATTER_LOG_METRIC_BEGIN(kMetricDeviceCASESessionSigma2);
957-
958961
SuccessOrExit(err = PrepareSigma2(encodeSigma2));
959962
SuccessOrExit(err = EncodeSigma2(msgR2, encodeSigma2));
963+
964+
MATTER_LOG_METRIC_BEGIN(kMetricDeviceCASESessionSigma2);
960965
SuccessOrExitAction(err = SendSigma2(std::move(msgR2)), MATTER_LOG_METRIC_END(kMetricDeviceCASESessionSigma2, err));
961966

962967
mDelegate->OnSessionEstablishmentStarted();
@@ -965,12 +970,12 @@ CHIP_ERROR CASESession::HandleSigma1_and_SendSigma2(System::PacketBufferHandle &
965970
case Step::kSendSigma2Resume: {
966971

967972
System::PacketBufferHandle msgR2Resume;
968-
EncodeSigma2ResInputs encodeSigma2Resume;
969-
970-
MATTER_LOG_METRIC_BEGIN(kMetricDeviceCASESessionSigma2Resume);
973+
EncodeSigma2ResumeInputs encodeSigma2Resume;
971974

972975
SuccessOrExit(err = PrepareSigma2Resume(encodeSigma2Resume));
973976
SuccessOrExit(err = EncodeSigma2Resume(msgR2Resume, encodeSigma2Resume));
977+
978+
MATTER_LOG_METRIC_BEGIN(kMetricDeviceCASESessionSigma2Resume);
974979
SuccessOrExitAction(err = SendSigma2Resume(std::move(msgR2Resume)),
975980
MATTER_LOG_METRIC_END(kMetricDeviceCASESessionSigma2Resume, err));
976981

@@ -1077,8 +1082,7 @@ CHIP_ERROR CASESession::TryResumeSession(SessionResumptionStorage::ConstResumpti
10771082

10781083
return CHIP_NO_ERROR;
10791084
}
1080-
1081-
CHIP_ERROR CASESession::HandleSigma1(System::PacketBufferHandle && msg)
1085+
CHIP_ERROR CASESession::HandleSigma1(System::PacketBufferHandle && msg, Step & nextStep)
10821086
{
10831087
MATTER_TRACE_SCOPE("HandleSigma1", "CASESession");
10841088
ChipLogProgress(SecureChannel, "Received Sigma1 msg");
@@ -1088,8 +1092,6 @@ CHIP_ERROR CASESession::HandleSigma1(System::PacketBufferHandle && msg)
10881092

10891093
ReturnErrorOnFailure(mCommissioningHash.AddData(ByteSpan{ msg->Start(), msg->DataLength() }));
10901094

1091-
CHIP_ERROR err = CHIP_NO_ERROR;
1092-
10931095
System::PacketBufferTLVReader tlvReader;
10941096
tlvReader.Init(std::move(msg));
10951097

@@ -1118,7 +1120,7 @@ CHIP_ERROR CASESession::HandleSigma1(System::PacketBufferHandle && msg)
11181120
std::copy(parsedSigma1.resumptionId.begin(), parsedSigma1.resumptionId.end(), mResumeResumptionId.begin());
11191121

11201122
// Next Step is to send Sigma2Resume message to the initiator
1121-
mNextStep = Step::kSendSigma2Resume;
1123+
nextStep = Step::kSendSigma2Resume;
11221124

11231125
// Early returning here, since the next Step is known to be Sigma2Resume, and no further processing is needed for the
11241126
// Sigma1 message
@@ -1129,6 +1131,8 @@ CHIP_ERROR CASESession::HandleSigma1(System::PacketBufferHandle && msg)
11291131
// mRemotePubKey.Length() == initiatorPubKey.size() == kP256_PublicKey_Length.
11301132
memcpy(mRemotePubKey.Bytes(), parsedSigma1.initiatorEphPubKey.data(), mRemotePubKey.Length());
11311133

1134+
CHIP_ERROR err = CHIP_NO_ERROR;
1135+
11321136
// Attempt to match the initiator's desired destination based on local fabric table.
11331137
err = FindLocalNodeFromDestinationId(parsedSigma1.destinationId, parsedSigma1.initiatorRandom);
11341138
if (err == CHIP_NO_ERROR)
@@ -1139,7 +1143,7 @@ CHIP_ERROR CASESession::HandleSigma1(System::PacketBufferHandle && msg)
11391143
// Side-effect of FindLocalNodeFromDestinationId success was that mFabricIndex/mLocalNodeId are now
11401144
// set to the local fabric and associated NodeId that was targeted by the initiator.
11411145

1142-
mNextStep = Step::kSendSigma2;
1146+
nextStep = Step::kSendSigma2;
11431147
}
11441148
else
11451149
{
@@ -1148,15 +1152,15 @@ CHIP_ERROR CASESession::HandleSigma1(System::PacketBufferHandle && msg)
11481152

11491153
// FindLocalNodeFromDestinationId returns CHIP_ERROR_KEY_NOT_FOUND if validation of DestinationID fails, which will trigger
11501154
// status Report with ProtocolCode = NoSharedTrustRoots.
1151-
mNextStep = Step::kSendStatusReport;
1155+
nextStep = Step::kSendStatusReport;
11521156

11531157
return err;
11541158
}
11551159

11561160
return CHIP_NO_ERROR;
11571161
}
11581162

1159-
CHIP_ERROR CASESession::PrepareSigma2Resume(EncodeSigma2ResInputs & outSigma2ResData)
1163+
CHIP_ERROR CASESession::PrepareSigma2Resume(EncodeSigma2ResumeInputs & outSigma2ResData)
11601164
{
11611165
MATTER_TRACE_SCOPE("PrepareSigma2Resume", "CASESession");
11621166

@@ -1178,13 +1182,13 @@ CHIP_ERROR CASESession::PrepareSigma2Resume(EncodeSigma2ResInputs & outSigma2Res
11781182
return CHIP_NO_ERROR;
11791183
}
11801184

1181-
CHIP_ERROR CASESession::EncodeSigma2Resume(System::PacketBufferHandle & msgR2Resume, EncodeSigma2ResInputs & input)
1185+
CHIP_ERROR CASESession::EncodeSigma2Resume(System::PacketBufferHandle & msgR2Resume, EncodeSigma2ResumeInputs & input)
11821186
{
11831187
MATTER_TRACE_SCOPE("EncodeSigma2Resume", "CASESession");
11841188

1185-
// the passed PacketBufferHandler should be empty
1189+
// The API Contract requires the passed PacketBufferHandle to be empty
11861190
VerifyOrReturnError(msgR2Resume.IsNull(), CHIP_ERROR_INCORRECT_STATE);
1187-
VerifyOrReturnError(input.responderMrpConfig != nullptr, CHIP_ERROR_INCORRECT_STATE);
1191+
VerifyOrReturnError(input.responderMrpConfig != nullptr, CHIP_ERROR_INVALID_ARGUMENT);
11881192

11891193
size_t maxDatalLen = EstimateStructOverhead(SessionResumptionStorage::kResumptionIdSize, // resumptionID
11901194
CHIP_CRYPTO_AEAD_MIC_LENGTH_BYTES, // sigma2ResumeMIC
@@ -1196,17 +1200,17 @@ CHIP_ERROR CASESession::EncodeSigma2Resume(System::PacketBufferHandle & msgR2Res
11961200
VerifyOrReturnError(!msgR2Resume.IsNull(), CHIP_ERROR_NO_MEMORY);
11971201

11981202
System::PacketBufferTLVWriter tlvWriter;
1199-
TLVType outerContainerType = kTLVType_NotSpecified;
1200-
12011203
tlvWriter.Init(std::move(msgR2Resume));
12021204

1205+
TLVType outerContainerType = kTLVType_NotSpecified;
1206+
12031207
ReturnErrorOnFailure(tlvWriter.StartContainer(AnonymousTag(), kTLVType_Structure, outerContainerType));
1204-
ReturnErrorOnFailure(tlvWriter.Put(AsTlvContextTag(Sigma2ResTags::kResumptionID), input.resumptionId));
1205-
ReturnErrorOnFailure(tlvWriter.Put(AsTlvContextTag(Sigma2ResTags::kSigma2ResumeMIC), input.resumeMICSpan));
1206-
ReturnErrorOnFailure(tlvWriter.Put(AsTlvContextTag(Sigma2ResTags::kResponderSessionID), input.responderSessionId));
1208+
ReturnErrorOnFailure(tlvWriter.Put(AsTlvContextTag(Sigma2ResumeTags::kResumptionID), input.resumptionId));
1209+
ReturnErrorOnFailure(tlvWriter.Put(AsTlvContextTag(Sigma2ResumeTags::kSigma2ResumeMIC), input.resumeMICSpan));
1210+
ReturnErrorOnFailure(tlvWriter.Put(AsTlvContextTag(Sigma2ResumeTags::kResponderSessionID), input.responderSessionId));
12071211

12081212
ReturnErrorOnFailure(
1209-
EncodeSessionParameters(AsTlvContextTag(Sigma2ResTags::kResponderMRPParams), *input.responderMrpConfig, tlvWriter));
1213+
EncodeSessionParameters(AsTlvContextTag(Sigma2ResumeTags::kResponderSessionParams), *input.responderMrpConfig, tlvWriter));
12101214

12111215
ReturnErrorOnFailure(tlvWriter.EndContainer(outerContainerType));
12121216
ReturnErrorOnFailure(tlvWriter.Finalize(&msgR2Resume));
@@ -1257,7 +1261,7 @@ CHIP_ERROR CASESession::PrepareSigma2(EncodeSigma2Inputs & outSigma2Data)
12571261
mEphemeralKey = mFabricsTable->AllocateEphemeralKeypairForCASE();
12581262
VerifyOrReturnError(mEphemeralKey != nullptr, CHIP_ERROR_NO_MEMORY);
12591263
ReturnErrorOnFailure(mEphemeralKey->Initialize(ECPKeyTarget::ECDH));
1260-
outSigma2Data.pEphPubKey = &mEphemeralKey->Pubkey();
1264+
outSigma2Data.responderEphPubKey = &mEphemeralKey->Pubkey();
12611265

12621266
// Generate a Shared Secret
12631267
ReturnErrorOnFailure(mEphemeralKey->ECDH_derive_secret(mRemotePubKey, mSharedSecret));
@@ -1301,9 +1305,10 @@ CHIP_ERROR CASESession::PrepareSigma2(EncodeSigma2Inputs & outSigma2Data)
13011305
CHIP_ERROR_NO_MEMORY);
13021306

13031307
TLVWriter tlvWriter;
1308+
tlvWriter.Init(outSigma2Data.msgR2Encrypted.Get(), msgR2SignedEncLen);
1309+
13041310
TLVType outerContainerType = kTLVType_NotSpecified;
13051311

1306-
tlvWriter.Init(outSigma2Data.msgR2Encrypted.Get(), msgR2SignedEncLen);
13071312
ReturnErrorOnFailure(tlvWriter.StartContainer(AnonymousTag(), kTLVType_Structure, outerContainerType));
13081313
ReturnErrorOnFailure(tlvWriter.Put(AsTlvContextTag(TBEDataTags::kSenderNOC), nocCert));
13091314
if (!icaCert.empty())
@@ -1344,14 +1349,13 @@ CHIP_ERROR CASESession::PrepareSigma2(EncodeSigma2Inputs & outSigma2Data)
13441349

13451350
CHIP_ERROR CASESession::EncodeSigma2(System::PacketBufferHandle & msgR2, EncodeSigma2Inputs & input)
13461351
{
1347-
// the PacketBufferHandler should be empty
1352+
// The API Contract requires the passed PacketBufferHandle to be empty
13481353
VerifyOrReturnError(msgR2.IsNull(), CHIP_ERROR_INCORRECT_STATE);
1349-
VerifyOrReturnError(input.pEphPubKey != nullptr, CHIP_ERROR_INCORRECT_STATE);
1350-
// Check if msgR2Encrypted is not nullptr
1354+
VerifyOrReturnError(input.responderEphPubKey != nullptr, CHIP_ERROR_INVALID_ARGUMENT);
13511355
VerifyOrReturnError(input.msgR2Encrypted, CHIP_ERROR_INCORRECT_STATE);
13521356
// Check if length of msgR2Encrypted is set and is at least larger than the MIC length
13531357
VerifyOrReturnError(input.encrypted2Length > CHIP_CRYPTO_AEAD_MIC_LENGTH_BYTES, CHIP_ERROR_INCORRECT_STATE);
1354-
VerifyOrReturnError(input.responderMrpConfig != nullptr, CHIP_ERROR_INCORRECT_STATE);
1358+
VerifyOrReturnError(input.responderMrpConfig != nullptr, CHIP_ERROR_INVALID_ARGUMENT);
13551359

13561360
size_t dataLen = EstimateStructOverhead(kSigmaParamRandomNumberSize, // responderRandom
13571361
sizeof(uint16_t), // responderSessionId
@@ -1364,23 +1368,25 @@ CHIP_ERROR CASESession::EncodeSigma2(System::PacketBufferHandle & msgR2, EncodeS
13641368
VerifyOrReturnError(!msgR2.IsNull(), CHIP_ERROR_NO_MEMORY);
13651369

13661370
System::PacketBufferTLVWriter tlvWriterMsg2;
1371+
tlvWriterMsg2.Init(std::move(msgR2));
1372+
13671373
TLVType outerContainerType = kTLVType_NotSpecified;
13681374

1369-
tlvWriterMsg2.Init(std::move(msgR2));
13701375
ReturnErrorOnFailure(tlvWriterMsg2.StartContainer(AnonymousTag(), kTLVType_Structure, outerContainerType));
13711376

13721377
ReturnErrorOnFailure(tlvWriterMsg2.PutBytes(AsTlvContextTag(Sigma2Tags::kResponderRandom), &input.responderRandom[0],
13731378
sizeof(input.responderRandom)));
13741379
ReturnErrorOnFailure(tlvWriterMsg2.Put(AsTlvContextTag(Sigma2Tags::kResponderSessionId), input.responderSessionId));
13751380

1376-
ReturnErrorOnFailure(tlvWriterMsg2.PutBytes(AsTlvContextTag(Sigma2Tags::kResponderEphPubKey), *input.pEphPubKey,
1377-
static_cast<uint32_t>(input.pEphPubKey->Length())));
1381+
ReturnErrorOnFailure(tlvWriterMsg2.PutBytes(AsTlvContextTag(Sigma2Tags::kResponderEphPubKey), *input.responderEphPubKey,
1382+
static_cast<uint32_t>(input.responderEphPubKey->Length())));
13781383

13791384
ReturnErrorOnFailure(tlvWriterMsg2.PutBytes(AsTlvContextTag(Sigma2Tags::kEncrypted2), input.msgR2Encrypted.Get(),
13801385
static_cast<uint32_t>(input.encrypted2Length)));
1386+
input.msgR2Encrypted.Free();
13811387

13821388
ReturnErrorOnFailure(
1383-
EncodeSessionParameters(AsTlvContextTag(Sigma2Tags::kResponderMRPParams), *input.responderMrpConfig, tlvWriterMsg2));
1389+
EncodeSessionParameters(AsTlvContextTag(Sigma2Tags::kResponderSessionParams), *input.responderMrpConfig, tlvWriterMsg2));
13841390

13851391
ReturnErrorOnFailure(tlvWriterMsg2.EndContainer(outerContainerType));
13861392
ReturnErrorOnFailure(tlvWriterMsg2.Finalize(&msgR2));
@@ -1649,7 +1655,7 @@ CHIP_ERROR CASESession::HandleSigma2(System::PacketBufferHandle && msg)
16491655
// Retrieve responderMRPParams if present
16501656
if (tlvReader.Next() != CHIP_END_OF_TLV)
16511657
{
1652-
SuccessOrExit(err = DecodeMRPParametersIfPresent(AsTlvContextTag(Sigma2Tags::kResponderMRPParams), tlvReader));
1658+
SuccessOrExit(err = DecodeMRPParametersIfPresent(AsTlvContextTag(Sigma2Tags::kResponderSessionParams), tlvReader));
16531659
mExchangeCtxt.Value()->GetSessionHandle()->AsUnauthenticatedSession()->SetRemoteSessionParameters(
16541660
GetRemoteSessionParameters());
16551661
}
@@ -2327,15 +2333,15 @@ CHIP_ERROR CASESession::ParseSigma1(TLV::ContiguousBufferTLVReader & tlvReader,
23272333
ReturnErrorOnFailure(tlvReader.GetByteView(outParsedSigma1.destinationId));
23282334
VerifyOrReturnError(outParsedSigma1.destinationId.size() == kSHA256_Hash_Length, CHIP_ERROR_INVALID_CASE_PARAMETER);
23292335

2330-
ReturnErrorOnFailure(tlvReader.Next(AsTlvContextTag(Sigma1Tags::kInitiatorPubKey)));
2336+
ReturnErrorOnFailure(tlvReader.Next(AsTlvContextTag(Sigma1Tags::kInitiatorEphPubKey)));
23312337
ReturnErrorOnFailure(tlvReader.GetByteView(outParsedSigma1.initiatorEphPubKey));
23322338
VerifyOrReturnError(outParsedSigma1.initiatorEphPubKey.size() == kP256_PublicKey_Length, CHIP_ERROR_INVALID_CASE_PARAMETER);
23332339

23342340
// Optional members start here.
23352341
CHIP_ERROR err = tlvReader.Next();
2336-
if (err == CHIP_NO_ERROR && tlvReader.GetTag() == AsTlvContextTag(Sigma1Tags::kInitiatorMRPParams))
2342+
if (err == CHIP_NO_ERROR && tlvReader.GetTag() == AsTlvContextTag(Sigma1Tags::kInitiatorSessionParams))
23372343
{
2338-
ReturnErrorOnFailure(DecodeMRPParametersIfPresent(AsTlvContextTag(Sigma1Tags::kInitiatorMRPParams), tlvReader));
2344+
ReturnErrorOnFailure(DecodeMRPParametersIfPresent(AsTlvContextTag(Sigma1Tags::kInitiatorSessionParams), tlvReader));
23392345
outParsedSigma1.initiatorMrpParamsPresent = true;
23402346

23412347
err = tlvReader.Next();

0 commit comments

Comments
 (0)