Pass CdmIdentifier to UsageInfo Methods
am: 43b8522b70
Change-Id: Ida417b7043115f54c9b8daaa75d417dea39aafe6
This commit is contained in:
@@ -424,7 +424,7 @@ status_t WVDrmPlugin::getSecureStop(const Vector<uint8_t>& ssid,
|
||||
CdmUsageInfo cdmUsageInfo;
|
||||
CdmSecureStopId cdmSsid(ssid.begin(), ssid.end());
|
||||
CdmResponseType res = mCDM->GetUsageInfo(
|
||||
mPropertySet.app_id(), cdmSsid, &cdmUsageInfo);
|
||||
mPropertySet.app_id(), cdmSsid, mCdmIdentifier, &cdmUsageInfo);
|
||||
if (isCdmResponseTypeSuccess(res)) {
|
||||
secureStop.clear();
|
||||
for (CdmUsageInfo::const_iterator iter = cdmUsageInfo.begin();
|
||||
@@ -442,7 +442,7 @@ status_t WVDrmPlugin::getSecureStop(const Vector<uint8_t>& ssid,
|
||||
status_t WVDrmPlugin::getSecureStops(List<Vector<uint8_t> >& secureStops) {
|
||||
CdmUsageInfo cdmUsageInfo;
|
||||
CdmResponseType res =
|
||||
mCDM->GetUsageInfo(mPropertySet.app_id(), &cdmUsageInfo);
|
||||
mCDM->GetUsageInfo(mPropertySet.app_id(), mCdmIdentifier, &cdmUsageInfo);
|
||||
if (isCdmResponseTypeSuccess(res)) {
|
||||
secureStops.clear();
|
||||
for (CdmUsageInfo::const_iterator iter = cdmUsageInfo.begin();
|
||||
@@ -457,7 +457,8 @@ status_t WVDrmPlugin::getSecureStops(List<Vector<uint8_t> >& secureStops) {
|
||||
}
|
||||
|
||||
status_t WVDrmPlugin::releaseAllSecureStops() {
|
||||
CdmResponseType res = mCDM->ReleaseAllUsageInfo(mPropertySet.app_id());
|
||||
CdmResponseType res = mCDM->ReleaseAllUsageInfo(mPropertySet.app_id(),
|
||||
mCdmIdentifier);
|
||||
return mapCdmResponseType(res);
|
||||
}
|
||||
|
||||
@@ -466,7 +467,7 @@ status_t WVDrmPlugin::releaseSecureStops(const Vector<uint8_t>& ssRelease) {
|
||||
return android::BAD_VALUE;
|
||||
}
|
||||
CdmUsageInfoReleaseMessage cdmMessage(ssRelease.begin(), ssRelease.end());
|
||||
CdmResponseType res = mCDM->ReleaseUsageInfo(cdmMessage);
|
||||
CdmResponseType res = mCDM->ReleaseUsageInfo(cdmMessage, mCdmIdentifier);
|
||||
return mapCdmResponseType(res);
|
||||
}
|
||||
|
||||
|
||||
@@ -533,12 +533,20 @@ Return<void> WVDrmPlugin::getSecureStop(
|
||||
return Void();
|
||||
}
|
||||
const std::vector<uint8_t> id = toVector(secureStopId);
|
||||
SecureStop secureStop;
|
||||
|
||||
CdmIdentifier identifier;
|
||||
status_t status = mCdmIdentifierBuilder.getCdmIdentifier(&identifier);
|
||||
if (status != android::OK) {
|
||||
_hidl_cb(toStatus(status), secureStop);
|
||||
return Void();
|
||||
}
|
||||
|
||||
CdmUsageInfo cdmUsageInfo;
|
||||
CdmSecureStopId cdmSsId(id.begin(), id.end());
|
||||
CdmResponseType res = mCDM->GetUsageInfo(
|
||||
mPropertySet.app_id(), cdmSsId, &cdmUsageInfo);
|
||||
mPropertySet.app_id(), cdmSsId, identifier, &cdmUsageInfo);
|
||||
|
||||
SecureStop secureStop;
|
||||
if (isCdmResponseTypeSuccess(res)) {
|
||||
std::vector<uint8_t> cdmStopVec;
|
||||
for (CdmUsageInfo::const_iterator iter = cdmUsageInfo.begin();
|
||||
@@ -557,10 +565,18 @@ Return<void> WVDrmPlugin::getSecureStop(
|
||||
Return<void> WVDrmPlugin::getSecureStops(getSecureStops_cb _hidl_cb) {
|
||||
|
||||
std::list<std::vector<uint8_t> > secureStops;
|
||||
std::vector<SecureStop> secureStopsVec;
|
||||
|
||||
CdmIdentifier identifier;
|
||||
status_t status = mCdmIdentifierBuilder.getCdmIdentifier(&identifier);
|
||||
if (status != android::OK) {
|
||||
_hidl_cb(toStatus(status), toHidlVec(secureStopsVec));
|
||||
return Void();
|
||||
}
|
||||
|
||||
CdmUsageInfo cdmUsageInfo;
|
||||
CdmResponseType res =
|
||||
mCDM->GetUsageInfo(mPropertySet.app_id(), &cdmUsageInfo);
|
||||
mCDM->GetUsageInfo(mPropertySet.app_id(), identifier, &cdmUsageInfo);
|
||||
|
||||
if (isCdmResponseTypeSuccess(res)) {
|
||||
secureStops.clear();
|
||||
@@ -572,7 +588,6 @@ Return<void> WVDrmPlugin::getSecureStops(getSecureStops_cb _hidl_cb) {
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<SecureStop> secureStopsVec;
|
||||
std::list<std::vector<uint8_t> >::iterator iter = secureStops.begin();
|
||||
while (iter != secureStops.end()) {
|
||||
SecureStop secureStop;
|
||||
@@ -586,7 +601,14 @@ Return<void> WVDrmPlugin::getSecureStops(getSecureStops_cb _hidl_cb) {
|
||||
|
||||
Return<Status> WVDrmPlugin::releaseAllSecureStops() {
|
||||
|
||||
CdmResponseType res = mCDM->ReleaseAllUsageInfo(mPropertySet.app_id());
|
||||
CdmIdentifier identifier;
|
||||
status_t status = mCdmIdentifierBuilder.getCdmIdentifier(&identifier);
|
||||
if (status != android::OK) {
|
||||
return toStatus(status);
|
||||
}
|
||||
|
||||
CdmResponseType res = mCDM->ReleaseAllUsageInfo(mPropertySet.app_id(),
|
||||
identifier);
|
||||
return toStatus(mapCdmResponseType(res));
|
||||
}
|
||||
|
||||
@@ -596,9 +618,16 @@ Return<Status> WVDrmPlugin::releaseSecureStop(
|
||||
if (!secureStopId.size()) {
|
||||
return Status::BAD_VALUE;
|
||||
}
|
||||
|
||||
CdmIdentifier identifier;
|
||||
status_t status = mCdmIdentifierBuilder.getCdmIdentifier(&identifier);
|
||||
if (status != android::OK) {
|
||||
return toStatus(status);
|
||||
}
|
||||
|
||||
const std::vector<uint8_t> ssRelease = toVector(secureStopId);
|
||||
CdmUsageInfoReleaseMessage cdmMessage(ssRelease.begin(), ssRelease.end());
|
||||
CdmResponseType res = mCDM->ReleaseUsageInfo(cdmMessage);
|
||||
CdmResponseType res = mCDM->ReleaseUsageInfo(cdmMessage, identifier);
|
||||
return toStatus(mapCdmResponseType(res));
|
||||
}
|
||||
|
||||
|
||||
@@ -164,17 +164,20 @@ class MockCDM : public WvContentDecryptionModule {
|
||||
MOCK_METHOD2(Unprovision, CdmResponseType(CdmSecurityLevel,
|
||||
const CdmIdentifier&));
|
||||
|
||||
MOCK_METHOD2(GetUsageInfo, CdmResponseType(const std::string&,
|
||||
CdmUsageInfo*));
|
||||
|
||||
MOCK_METHOD3(GetUsageInfo, CdmResponseType(const std::string&,
|
||||
const CdmSecureStopId&,
|
||||
const CdmIdentifier&,
|
||||
CdmUsageInfo*));
|
||||
|
||||
MOCK_METHOD1(ReleaseAllUsageInfo, CdmResponseType(const std::string&));
|
||||
MOCK_METHOD4(GetUsageInfo, CdmResponseType(const std::string&,
|
||||
const CdmSecureStopId&,
|
||||
const CdmIdentifier&,
|
||||
CdmUsageInfo*));
|
||||
|
||||
MOCK_METHOD1(ReleaseUsageInfo,
|
||||
CdmResponseType(const CdmUsageInfoReleaseMessage&));
|
||||
MOCK_METHOD2(ReleaseAllUsageInfo, CdmResponseType(const std::string&,
|
||||
const CdmIdentifier&));
|
||||
|
||||
MOCK_METHOD2(ReleaseUsageInfo,
|
||||
CdmResponseType(const CdmUsageInfoReleaseMessage&, const CdmIdentifier&));
|
||||
|
||||
MOCK_METHOD1(IsValidServiceCertificate, bool(const std::string&));
|
||||
};
|
||||
@@ -946,8 +949,8 @@ TEST_F(WVDrmPluginTest, GetsSecureStops) {
|
||||
}
|
||||
|
||||
const char* app_id = "my_app_id";
|
||||
EXPECT_CALL(*cdm, GetUsageInfo(StrEq(app_id), _))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(cdmStops),
|
||||
EXPECT_CALL(*cdm, GetUsageInfo(StrEq(app_id), _, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(cdmStops),
|
||||
testing::Return(wvcdm::NO_ERROR)));
|
||||
|
||||
std::list<std::vector<uint8_t> > stops;
|
||||
@@ -987,7 +990,7 @@ TEST_F(WVDrmPluginTest, ReleasesAllSecureStops) {
|
||||
StrictMock<MockCrypto> crypto;
|
||||
std::string appPackageName;
|
||||
|
||||
EXPECT_CALL(*cdm, ReleaseAllUsageInfo(StrEq("")))
|
||||
EXPECT_CALL(*cdm, ReleaseAllUsageInfo(StrEq(""), _))
|
||||
.Times(1);
|
||||
|
||||
WVDrmPlugin plugin(cdm.get(), appPackageName, &crypto, false);
|
||||
@@ -1015,7 +1018,8 @@ TEST_F(WVDrmPluginTest, ReleasesSecureStop) {
|
||||
message.assign(messageRaw, messageRaw + kMessageSize);
|
||||
|
||||
EXPECT_CALL(*cdm, ReleaseUsageInfo(ElementsAreArray(messageRaw,
|
||||
kMessageSize)))
|
||||
kMessageSize),
|
||||
_))
|
||||
.Times(1);
|
||||
|
||||
WVDrmPlugin plugin(cdm.get(), appPackageName, &crypto, false);
|
||||
|
||||
@@ -82,17 +82,20 @@ class MockCDM : public WvContentDecryptionModule {
|
||||
MOCK_METHOD2(Unprovision, CdmResponseType(CdmSecurityLevel,
|
||||
const CdmIdentifier&));
|
||||
|
||||
MOCK_METHOD2(GetUsageInfo, CdmResponseType(const std::string&,
|
||||
CdmUsageInfo*));
|
||||
|
||||
MOCK_METHOD3(GetUsageInfo, CdmResponseType(const std::string&,
|
||||
const CdmSecureStopId&,
|
||||
const CdmIdentifier&,
|
||||
CdmUsageInfo*));
|
||||
|
||||
MOCK_METHOD1(ReleaseAllUsageInfo, CdmResponseType(const std::string&));
|
||||
MOCK_METHOD4(GetUsageInfo, CdmResponseType(const std::string&,
|
||||
const CdmSecureStopId&,
|
||||
const CdmIdentifier&,
|
||||
CdmUsageInfo*));
|
||||
|
||||
MOCK_METHOD1(ReleaseUsageInfo,
|
||||
CdmResponseType(const CdmUsageInfoReleaseMessage&));
|
||||
MOCK_METHOD2(ReleaseAllUsageInfo, CdmResponseType(const std::string&,
|
||||
const CdmIdentifier&));
|
||||
|
||||
MOCK_METHOD2(ReleaseUsageInfo,
|
||||
CdmResponseType(const CdmUsageInfoReleaseMessage&, const CdmIdentifier&));
|
||||
|
||||
MOCK_METHOD1(IsValidServiceCertificate, bool(const std::string&));
|
||||
};
|
||||
@@ -755,8 +758,8 @@ TEST_F(WVDrmPluginTest, GetsSecureStops) {
|
||||
cdmStops.push_back(string(stopsRaw[i], stopsRaw[i] + kStopSize));
|
||||
}
|
||||
|
||||
EXPECT_CALL(*cdm, GetUsageInfo(StrEq(app_id), _))
|
||||
.WillOnce(DoAll(SetArgPointee<1>(cdmStops),
|
||||
EXPECT_CALL(*cdm, GetUsageInfo(StrEq(app_id), _, _))
|
||||
.WillOnce(DoAll(SetArgPointee<2>(cdmStops),
|
||||
Return(wvcdm::NO_ERROR)));
|
||||
|
||||
List<Vector<uint8_t> > stops;
|
||||
@@ -786,7 +789,7 @@ TEST_F(WVDrmPluginTest, ReleasesAllSecureStops) {
|
||||
status_t res = plugin.setPropertyString(String8("appId"), String8(""));
|
||||
ASSERT_EQ(OK, res);
|
||||
|
||||
EXPECT_CALL(*cdm, ReleaseAllUsageInfo(StrEq("")))
|
||||
EXPECT_CALL(*cdm, ReleaseAllUsageInfo(StrEq(""), _))
|
||||
.Times(1);
|
||||
|
||||
res = plugin.releaseAllSecureStops();
|
||||
@@ -808,7 +811,8 @@ TEST_F(WVDrmPluginTest, ReleasesSecureStops) {
|
||||
message.appendArray(messageRaw, kMessageSize);
|
||||
|
||||
EXPECT_CALL(*cdm, ReleaseUsageInfo(ElementsAreArray(messageRaw,
|
||||
kMessageSize)))
|
||||
kMessageSize),
|
||||
_))
|
||||
.Times(1);
|
||||
|
||||
status_t res = plugin.releaseSecureStops(message);
|
||||
|
||||
Reference in New Issue
Block a user