jolly has uploaded this change for review.

View Change

Use mandatory transaction ID in AuthenticateClientOkDPEsipa

The transaction ID in the sequence of AuthenticateClientOkDPEsipa is
optional, so lets use the mandatory transaction ID from the smdpSigned2
field instead.

If the optional transaction ID exists, check if it matches with the
mandatory one.

Related: SYS#8101
Change-Id: I3aed3f6ff6f10b49045ff7a4b0f0019ac1d75c65
---
M src/ipa/libipa/esipa_auth_clnt.c
1 file changed, 11 insertions(+), 1 deletion(-)

git pull ssh://gerrit.osmocom.org:29418/onomondo-ipa refs/changes/23/43223/1
diff --git a/src/ipa/libipa/esipa_auth_clnt.c b/src/ipa/libipa/esipa_auth_clnt.c
index 8af59a6..f579dda 100644
--- a/src/ipa/libipa/esipa_auth_clnt.c
+++ b/src/ipa/libipa/esipa_auth_clnt.c
@@ -62,11 +62,21 @@
case AuthenticateClientResponseEsipa_PR_authenticateClientOkDPEsipa:
res->auth_clnt_ok_dpe =
&msg_to_ipa->choice.authenticateClientResponseEsipa.choice.authenticateClientOkDPEsipa;
- res->transaction_id = res->auth_clnt_ok_dpe->transactionId;
+ res->transaction_id = &res->auth_clnt_ok_dpe->smdpSigned2.transactionId;
if (!IPA_ASN_STR_CMP(res->transaction_id, &req->req.transactionId)) {
IPA_LOGP_ESIPA("AuthenticateClient", LERROR,
"eIM responded with unexpected transaction ID (expected: %s, got: %s)\n",
ipa_hexdump(req->req.transactionId.buf, req->req.transactionId.size),
+ ipa_hexdump(res->auth_clnt_ok_dpe->smdpSigned2.transactionId.buf,
+ res->auth_clnt_ok_dpe->smdpSigned2.transactionId.size));
+ res->auth_clnt_err = -1;
+ }
+ if (res->auth_clnt_ok_dpe->transactionId &&
+ !IPA_ASN_STR_CMP(res->transaction_id, res->auth_clnt_ok_dpe->transactionId)) {
+ IPA_LOGP_ESIPA("AuthenticateClient", LERROR,
+ "eIM responded with different transaction IDs (%s != %s)\n",
+ ipa_hexdump(res->auth_clnt_ok_dpe->transactionId->buf,
+ res->auth_clnt_ok_dpe->transactionId->size),
ipa_hexdump(res->transaction_id->buf, res->transaction_id->size));
res->auth_clnt_err = -1;
}

To view, visit change 43223. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: onomondo-ipa
Gerrit-Branch: master
Gerrit-Change-Id: I3aed3f6ff6f10b49045ff7a4b0f0019ac1d75c65
Gerrit-Change-Number: 43223
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas@eversberg.eu>