Skip to content

RDKEMW-16544 [AAMP]Change sessionID from uint32 to string - #315

Open
pranaykrishna333 wants to merge 1 commit into
mainfrom
RDKEMW-16544-sessionid-string
Open

pranaykrishna333 wants to merge 1 commit into
mainfrom
RDKEMW-16544-sessionid-string

Conversation

@pranaykrishna333

Copy link
Copy Markdown

[RDKEMW-16544]
[AAMP]Change sessionID from uint32 to string when invoking ContentProtection APIs

@pranaykrishna333
pranaykrishna333 requested a review from a team as a code owner October 27, 2026 13:19
Copilot AI balanced review requested due to automatic review settings October 27, 2026 13:19
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@pranaykrishna333

Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Remaining integer test fixtures prevent compilation, and watermark event handling still converts opaque session IDs to integers.

6 open issues
What changed in this PR

Migrates AAMP’s content-security session IDs to strings so Firebolt can preserve opaque identifiers, while retaining numeric IDs at the Thunder API boundary.

Changes:

  • Updates session storage, manager interfaces, Firebolt calls, and logging to use strings.
  • Adds validation and numeric conversion for Thunder requests.
  • Migrates test fixtures and fakes, including coverage for opaque session IDs.
File Description
test/​utests/​tests/​FireBoltTests/​FireBoltFun.cpp Converts Firebolt test IDs to strings.
test/​utests/​tests/​ContentsecuritymanagerTests/​PlayerContentSecurityManagerSes.cpp Migrates session construction and getter tests.
test/​utests/​tests/​ContentsecuritymanagerTests/​PlayerContentSecurityManagerFun.cpp Converts manager operation test inputs.
test/​utests/​tests/​ContentsecuritymanagerTests/​ContentSecurityManagerTests.cpp Updates API and integration test IDs.
test/​utests/​tests/​ContentsecuritymanagerTests/​ContentSecurityManagerSessionTests.cpp Updates validity expectations and adds opaque-ID coverage.
test/​utests/​fakes/​FakeContentSecurityManagerSession.cpp Aligns fake session signatures and return types.
test/​utests/​fakes/​FakeContentSecurityManager.cpp Aligns fake manager signatures.
test/​utests/​fakes/​FakeContentProtectionFireBolt.cpp Uses string IDs in Firebolt fakes.
externals/​contentsecuritymanager/​SecManagerThunder.h Declares string-based Thunder adapter methods.
externals/​contentsecuritymanager/​SecManagerThunder.cpp Converts string IDs to validated numeric Thunder parameters.
externals/​contentsecuritymanager/​IFirebolt/​ContentProtectionFirebolt.h Declares string-based ContentProtection methods.
externals/​contentsecuritymanager/​IFirebolt/​ContentProtectionFirebolt.cpp Preserves string IDs in Firebolt calls and responses.
externals/​contentsecuritymanager/​ContentSecurityManagerSession.h Defines string session storage and an empty invalid sentinel.
externals/​contentsecuritymanager/​ContentSecurityManagerSession.cpp Keys shared sessions by string ID.
externals/​contentsecuritymanager/​ContentSecurityManager.h Migrates manager and fallback interfaces.
externals/​contentsecuritymanager/​ContentSecurityManager.cpp Updates forwarding method signatures.
drm/​DrmSessionManager.cpp Formats session IDs as strings in logs.

Review effort: Balanced

<< " and inputSummaryHash = " << 0 << std::endl;
std::cout << "Invoking getSessionID()" << std::endl;
int64_t sessionID = session.getSessionID();
std::string sessionID = session.getSessionID();
<< " and inputSummaryHash = " << 0 << std::endl;
std::cout << "Invoking getSessionID()" << std::endl;
int64_t sessionID = session.getSessionID();
std::string sessionID = session.getSessionID();
<< " and inputSummaryHash = " << 0 << std::endl;
std::cout << "Invoking getSessionID()" << std::endl;
int64_t sessionID = session.getSessionID();
std::string sessionID = session.getSessionID();
<< " and inputSummaryHash = " << 0 << std::endl;
std::cout << "Invoking getSessionID()" << std::endl;
int64_t sessionID = session.getSessionID();
std::string sessionID = session.getSessionID();
int64_t sessionID = session.getSessionID();
std::string sessionID = session.getSessionID();
std::cout << "getSessionID() returned " << sessionID << std::endl;
EXPECT_EQ(sessionID, int64_t(0));
MW_LOG_WARN("DRM session opened successfully with sessionId: '%s' with Response %s", drmSession->sessionId.c_str(), drmSession->openSessionResponse.c_str());
response = drmSession->openSessionResponse;
sessionId = std::stoll(drmSession->sessionId);
sessionId = drmSession->sessionId;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants