blob: 8cb27cdbe9a95898811c26ce5181c25c8960ef77 [file] [log] [blame] [edit]
/**
* Copyright (C) 2021 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.drm@1.4;
import @1.2::Status;
enum LogPriority : uint32_t {
UNKNOWN,
DEFAULT,
VERBOSE,
DEBUG,
INFO,
WARN,
ERROR,
FATAL,
};
/**
* Returned by getLogMessages to report error diagnostics to the
* app.
*
* The |message| field is for informational purposes only, and
* NOT meant to be parsed programmatically when handling errors.
* For programmatic error handling, please check the return |Status|
* of APIs instead.
*/
struct LogMessage {
/**
* Epoch time in milliseconds.
*/
int64_t timeMs;
LogPriority priority;
string message;
};
enum Status : @1.2::Status {
/**
* queueSecureInput buffer called with 0 subsamples.
*/
CANNOT_DECRYPT_ZERO_SUBSAMPLES,
/**
* An error happened within the crypto library used by the drm plugin.
*/
CRYPTO_LIBRARY_ERROR,
/**
* Non-specific error reported by the device OEM subsystem.
*/
GENERAL_OEM_ERROR,
/**
* Unexpected internal failure in the drm/crypto plugin.
*/
GENERAL_PLUGIN_ERROR,
/**
* The init data parameter passed to getKeyRequest is empty or invalid.
*/
INIT_DATA_INVALID,
/**
* Either the key was not loaded from the license before attempting the
* operation, or the key ID parameter provided by the app is incorrect.
*/
KEY_NOT_LOADED,
/**
* The license response was empty, fields are missing or otherwise unable
* to be parsed.
*/
LICENSE_PARSE_ERROR,
/**
* The operation (e.g. to renew or persist a license) is prohibited by the
* license policy.
*/
LICENSE_POLICY_ERROR,
/**
* Failed to generate a release request because a field in the stored
* license is empty or malformed.
*/
LICENSE_RELEASE_ERROR,
/**
* The license server detected an error in the license request.
*/
LICENSE_REQUEST_REJECTED,
/**
* Failed to restore an offline license because a field is empty or
* malformed.
*/
LICENSE_RESTORE_ERROR,
/**
* License is in an invalid state for the attempted operation.
*/
LICENSE_STATE_ERROR,
/**
* Certificate is malformed or is of the wrong type.
*/
MALFORMED_CERTIFICATE,
/**
* Failure in the media framework.
*/
MEDIA_FRAMEWORK_ERROR,
/**
* Certificate has not been set.
*/
MISSING_CERTIFICATE,
/**
* There was an error loading the provisioned certificate.
*/
PROVISIONING_CERTIFICATE_ERROR,
/**
* Required steps where not performed before provisioning was attempted.
*/
PROVISIONING_CONFIGURATION_ERROR,
/**
* The provisioning response was empty, fields are missing or otherwise
* unable to be parsed.
*/
PROVISIONING_PARSE_ERROR,
/**
* The provisioning server detected an error in the provisioning request.
*/
PROVISIONING_REQUEST_REJECTED,
/**
* Provisioning failed in a way that is likely to succeed on a subsequent
* attempt.
*/
RETRYABLE_PROVISIONING_ERROR,
/**
* Failed to generate a secure stop request because a field in the stored
* license is empty or malformed.
*/
SECURE_STOP_RELEASE_ERROR,
/**
* The plugin was unable to read data from the filesystem.
*/
STORAGE_READ_FAILURE,
/**
* The plugin was unable to write data to the filesystem.
*/
STORAGE_WRITE_FAILURE,
};