Merge "Add checks for invalid parameters" into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
9a69579330
@@ -83,6 +83,9 @@ Return<void> WVCryptoPlugin::notifyResolution(
|
||||
|
||||
Return<Status> WVCryptoPlugin::setMediaDrmSession(
|
||||
const hidl_vec<uint8_t>& sessionId) {
|
||||
if (sessionId.size() == 0) {
|
||||
return Status::BAD_VALUE;
|
||||
}
|
||||
const std::vector<uint8_t> sId = toVector(sessionId);
|
||||
CdmSessionId cdmSessionId(sId.begin(), sId.end());
|
||||
if (!mCDM->IsOpenSession(cdmSessionId)) {
|
||||
|
||||
@@ -182,11 +182,16 @@ Return<void> WVDrmPlugin::openSession(openSession_cb _hidl_cb) {
|
||||
}
|
||||
|
||||
Return<Status> WVDrmPlugin::closeSession(const hidl_vec<uint8_t>& sessionId) {
|
||||
|
||||
if (!sessionId.size()) {
|
||||
return Status::BAD_VALUE;
|
||||
}
|
||||
const std::vector<uint8_t> sId = toVector(sessionId);
|
||||
CdmSessionId cdmSessionId(sId.begin(), sId.end());
|
||||
mCDM->CloseSession(cdmSessionId);
|
||||
CdmResponseType res = mCDM->CloseSession(cdmSessionId);
|
||||
mCryptoSessions.erase(cdmSessionId);
|
||||
if (!isCdmResponseTypeSuccess(res)) {
|
||||
return Status::ERROR_DRM_SESSION_NOT_OPENED;
|
||||
}
|
||||
return Status::OK;
|
||||
}
|
||||
|
||||
@@ -198,6 +203,11 @@ Return<void> WVDrmPlugin::getKeyRequest(
|
||||
const hidl_vec<KeyValue>& optionalParameters,
|
||||
getKeyRequest_cb _hidl_cb) {
|
||||
|
||||
if (!scope.size()) {
|
||||
_hidl_cb(Status::BAD_VALUE, hidl_vec<uint8_t>(),
|
||||
KeyRequestType::UNKNOWN, "");
|
||||
return Void();
|
||||
}
|
||||
KeyRequestType requestType = KeyRequestType::UNKNOWN;
|
||||
status_t status = android::OK;
|
||||
std::string defaultUrl;
|
||||
@@ -305,6 +315,10 @@ Return<void> WVDrmPlugin::provideKeyResponse(
|
||||
const hidl_vec<uint8_t>& response,
|
||||
provideKeyResponse_cb _hidl_cb) {
|
||||
|
||||
if (scope.size() == 0 || response.size() == 0) {
|
||||
_hidl_cb(Status::BAD_VALUE, hidl_vec<uint8_t>());
|
||||
return Void();
|
||||
}
|
||||
const std::vector<uint8_t> resp = toVector(response);
|
||||
const std::vector<uint8_t> scopeId = toVector(scope);
|
||||
|
||||
@@ -354,6 +368,9 @@ Return<void> WVDrmPlugin::provideKeyResponse(
|
||||
|
||||
Return<Status> WVDrmPlugin::removeKeys(const hidl_vec<uint8_t>& sessionId) {
|
||||
|
||||
if (!sessionId.size()) {
|
||||
return Status::BAD_VALUE;
|
||||
}
|
||||
const std::vector<uint8_t> sId = toVector(sessionId);
|
||||
CdmSessionId cdmSessionId(sId.begin(), sId.end());
|
||||
|
||||
@@ -365,6 +382,9 @@ Return<Status> WVDrmPlugin::removeKeys(const hidl_vec<uint8_t>& sessionId) {
|
||||
Return<Status> WVDrmPlugin::restoreKeys(const hidl_vec<uint8_t>& sessionId,
|
||||
const hidl_vec<uint8_t>& keySetId) {
|
||||
|
||||
if (!sessionId.size() || !keySetId.size()) {
|
||||
return Status::BAD_VALUE;
|
||||
}
|
||||
const std::vector<uint8_t> kId = toVector(keySetId);
|
||||
const std::vector<uint8_t> sId = toVector(sessionId);
|
||||
CdmSessionId cdmSessionId(sId.begin(), sId.end());
|
||||
@@ -378,6 +398,10 @@ Return<Status> WVDrmPlugin::restoreKeys(const hidl_vec<uint8_t>& sessionId,
|
||||
Return<void> WVDrmPlugin::queryKeyStatus(const hidl_vec<uint8_t>& sessionId,
|
||||
queryKeyStatus_cb _hidl_cb) {
|
||||
|
||||
if (sessionId.size() == 0) {
|
||||
_hidl_cb(Status::BAD_VALUE, hidl_vec<KeyValue>());
|
||||
return Void();
|
||||
}
|
||||
const std::vector<uint8_t> sId = toVector(sessionId);
|
||||
CdmSessionId cdmSessionId(sId.begin(), sId.end());
|
||||
CdmQueryMap cdmLicenseInfo;
|
||||
@@ -439,6 +463,10 @@ Return<void> WVDrmPlugin::provideProvisionResponse(
|
||||
const hidl_vec<uint8_t>& response,
|
||||
provideProvisionResponse_cb _hidl_cb) {
|
||||
|
||||
if (!response.size()) {
|
||||
_hidl_cb(Status::BAD_VALUE, hidl_vec<uint8_t>(), hidl_vec<uint8_t>());
|
||||
return Void();
|
||||
}
|
||||
const std::vector<uint8_t> resp = toVector(response);
|
||||
std::vector<uint8_t> certificate;
|
||||
std::vector<uint8_t> wrappedKey;
|
||||
@@ -479,6 +507,10 @@ Return<void> WVDrmPlugin::getSecureStop(
|
||||
const hidl_vec<uint8_t>& secureStopId,
|
||||
getSecureStop_cb _hidl_cb) {
|
||||
|
||||
if (!secureStopId.size()) {
|
||||
_hidl_cb(Status::BAD_VALUE, SecureStop());
|
||||
return Void();
|
||||
}
|
||||
const std::vector<uint8_t> id = toVector(secureStopId);
|
||||
CdmUsageInfo cdmUsageInfo;
|
||||
CdmSecureStopId cdmSsId(id.begin(), id.end());
|
||||
@@ -540,6 +572,9 @@ Return<Status> WVDrmPlugin::releaseAllSecureStops() {
|
||||
Return<Status> WVDrmPlugin::releaseSecureStop(
|
||||
const hidl_vec<uint8_t>& secureStopId) {
|
||||
|
||||
if (!secureStopId.size()) {
|
||||
return Status::BAD_VALUE;
|
||||
}
|
||||
const std::vector<uint8_t> ssRelease = toVector(secureStopId);
|
||||
CdmUsageInfoReleaseMessage cdmMessage(ssRelease.begin(), ssRelease.end());
|
||||
CdmResponseType res = mCDM->ReleaseUsageInfo(cdmMessage);
|
||||
@@ -735,6 +770,9 @@ Return<Status> WVDrmPlugin::setPropertyByteArray(
|
||||
Return<Status> WVDrmPlugin::setCipherAlgorithm(
|
||||
const hidl_vec<uint8_t>& sessionId, const hidl_string& algorithm) {
|
||||
|
||||
if (sessionId.size() == 0 || algorithm.size() == 0) {
|
||||
return Status::BAD_VALUE;
|
||||
}
|
||||
std::string algo(algorithm.c_str());
|
||||
std::vector<uint8_t> sId = toVector(sessionId);
|
||||
|
||||
@@ -757,6 +795,9 @@ Return<Status> WVDrmPlugin::setCipherAlgorithm(
|
||||
Return<Status> WVDrmPlugin::setMacAlgorithm(
|
||||
const hidl_vec<uint8_t>& sessionId, const hidl_string& algorithm) {
|
||||
|
||||
if (sessionId.size() == 0 || algorithm.size() == 0) {
|
||||
return Status::BAD_VALUE;
|
||||
}
|
||||
std::string algo(algorithm.c_str());
|
||||
std::vector<uint8_t> sId = toVector(sessionId);
|
||||
|
||||
@@ -1001,12 +1042,17 @@ Return<void> WVDrmPlugin::verify(
|
||||
}
|
||||
|
||||
Return<void> WVDrmPlugin::signRSA(
|
||||
const hidl_vec<uint8_t>& /* sessionId */,
|
||||
const hidl_vec<uint8_t>& sessionId,
|
||||
const hidl_string& algorithm,
|
||||
const hidl_vec<uint8_t>& message,
|
||||
const hidl_vec<uint8_t>& wrappedKey,
|
||||
signRSA_cb _hidl_cb) {
|
||||
|
||||
if (sessionId.size() == 0 || algorithm.size() == 0 ||
|
||||
message.size() == 0 || wrappedKey.size() == 0) {
|
||||
_hidl_cb(Status::BAD_VALUE, hidl_vec<uint8_t>());
|
||||
return Void();
|
||||
}
|
||||
const std::string algo(algorithm.c_str());
|
||||
std::vector<uint8_t> signature;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user