/** * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.cas@1.0; enum Status : uint32_t { /** * The CAS plugin must return OK when an operation completes without any * errors. */ OK, /** * The CAS plugin must return ERROR_CAS_NO_LICENSE, when descrambling is * attempted and no license keys have been provided. */ ERROR_CAS_NO_LICENSE, /** * ERROR_CAS_LICENSE_EXPIRED must be returned when an attempt is made * to use a license and the keys in that license have expired. */ ERROR_CAS_LICENSE_EXPIRED, /** * The CAS plugin must return ERROR_CAS_SESSION_NOT_OPENED when an * attempt is made to use a session that has not been opened. */ ERROR_CAS_SESSION_NOT_OPENED, /** * The CAS plugin must return ERROR_CAS_CANNOT_HANDLE when an unsupported * data format or operation is attempted. */ ERROR_CAS_CANNOT_HANDLE, /** * ERROR_CAS_INVALID_STATE must be returned when the device is in a state * where it is not able to perform descrambling. */ ERROR_CAS_INVALID_STATE, /** * The CAS plugin must return BAD_VALUE whenever an illegal parameter is * passed to one of the interface functions. */ BAD_VALUE, /** * The CAS plugin must return ERROR_CAS_NOT_PROVISIONED when the device * has not yet been provisioned. */ ERROR_CAS_NOT_PROVISIONED, /** * ERROR_CAS_RESOURCE_BUSY must be returned when resources, such as CAS * sessions or secure buffers are not available to perform a requested * operation because they are already in use. */ ERROR_CAS_RESOURCE_BUSY, /** * The CAS Plugin must return ERROR_CAS_INSUFFICIENT_OUTPUT_PROTECTION * when the output protection level enabled on the device is not * sufficient to meet the requirements in the license policy. HDCP is an * example of a form of output protection. */ ERROR_CAS_INSUFFICIENT_OUTPUT_PROTECTION, /** * The CAS Plugin must return ERROR_CAS_TAMPER_DETECTED if an attempt to * tamper with the CAS system is detected. */ ERROR_CAS_TAMPER_DETECTED, /** * The CAS Plugin must return ERROR_CAS_DEVICE_REVOKED if the response * indicates that the device has been revoked. Device revocation means * that the device is no longer permitted to play content. */ ERROR_CAS_DEVICE_REVOKED, /** * The CAS plugin must return ERROR_CAS_DECRYPT_UNIT_NOT_INITIALIZED when * descrambling is failing because the session is not initialized properly. */ ERROR_CAS_DECRYPT_UNIT_NOT_INITIALIZED, /** * The CAS Plugin must return ERROR_CAS_DECRYPT if the DescramblerPlugin's * descramble operation fails. */ ERROR_CAS_DECRYPT, /** * ERROR_CAS_UNKNOWN must be returned when a fatal failure occurs and no * other defined error is appropriate. */ ERROR_CAS_UNKNOWN, }; typedef vec HidlCasSessionId; typedef vec HidlCasData; /** * Describes a CAS plugin with its system id and name. */ struct HidlCasPluginDescriptor { int32_t caSystemId; string name; };