Conversation
|
ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This remains a focused follow-up on the TS.43 path in
rcs-bounty-2994/ microg#3784. It now contains three independent correctness fixes, each kept as an attributable commit:d61bba261f44fbd1af35d52855567e33c45d9e54— preserve the exact EAP identity used in the exchange when deriving EAP-AKA keys, including alternate realms.5776fbdfb3bd830f190938f6465acf2f3f41299d— honor an explicit TS.43terminal_id; use the device IMEI only as fallback.9b728c8eab66ce172339fb93adefadb94340db43— when the entitlement request omits terminal metadata, default vendor/model/software-version from the device before applying the existing GMS-compatible truncation lengths.Why these matter
EAP-AKA identity
The flow already uses
Ts43Challenge.eap_aka_realmwhen constructing theEAP_IDsent to the carrier. Before the first commit,performSimAkaAuthrebuilt a default-realm identity before derivingK_aut. RFC 4187 section 7 derives the master key from the identity used in the exchange, so alternate-realm flows could MAC the response using a different identity than the one sent to the carrier.terminal_idprecedenceThe existing builder used the device IMEI whenever available and only used
ServiceEntitlementRequest.terminal_idwhen IMEI was null. Android's Service Entitlement implementation does the reverse: an explicit request terminal ID wins, with IMEI as the fallback.terminal metadata defaults
The existing builder could send empty
terminal_vendor,terminal_model, andterminal_sw_versionvalues when the request omitted them. Android's Service Entitlement request defaults these fields from the device (Build.MANUFACTURER,Build.MODEL, and Android software version). The third commit adds the same fallback behavior while preserving explicit request values and the existing truncation limits.Verification
Prepared on top of
naormeit/GmsCore:rcs-bounty-2994at063ccbea736763234b439f4a5802ccbe18e27649.Dedicated proof run: https://github.com/keeltrace/GmsCore/actions/runs/34563119544
:play-services-constellation-core:lintDebug: PASS:play-services-constellation-core:assembleDebug: PASSThe proof branch contains only the same code/test tree plus an isolated CI workflow; that workflow is not part of this PR.
Prior work / attribution
This is a narrow follow-up to the Constellation/Asterism implementation by @opstic in microg#3359 / microg#3360 and the integration work in microg#3784. It does not claim ownership of that base implementation.
References:
Limitations
No TS.43 carrier/SIM hardware end-to-end test has been run yet. These are protocol/request-construction corrections with unit/lint/build verification, not a claim that this PR alone completes microg#2994.