Files
android/libwvdrmengine/include/WVErrors.h
Rahul Frias 84a14f2561 Generate key set ID on initialization and interface clean up
This is a merge of squashed CLs.

* Cdm Session and Engine interface clean up

[ Merge of http://go/wvgerrit/16387 ]

Key Set Ids have been removed from the CdmSession interface
(GenerateKeyRequest, Addkey) as they can be queried by an accessor.

The CdmEngine interface now allows one to specify or retrieve a session ID,
since both were not being used in a single call. Key set IDs are no longer
returned though GenerateKeyRequest as they was not being used.

* Generate key set ID when session is initialized

[ Merge of http://go/wvgerrit/16370 ]

Key set IDs are currently generated at different times in the
CdmSession lifecycle. Android generates key set IDs when the license
is received, while the CE CDM generates (or overrides them)
when the session is constructed.

The key set IDs are now generated when the session is initialized.
Key set generation cannot occur earlier as it has a dependency on
security level and in turn on crypto session initialization which
occurs when the session is initialized.

Depenencies on Session ID has caused other activities, construction of
PolicyEngine, CdmLicense, setting property CDM client sets to be
deferred from CdmSession constructor to Init().

Android will still retrieve the key set IDs after the offline license is
processed. For streaming requests, the key set will be
unreserved and discarded when the session is terminated.

Change-Id: Ib802d1c043742d62efa9a2c901fcd113e836c33d
2016-01-15 17:09:09 -08:00

200 lines
9.8 KiB
C++

//
// Copyright 2013 Google Inc. All Rights Reserved.
//
#ifndef WV_ERRORS_H_
#define WV_ERRORS_H_
#include "media/stagefright/MediaErrors.h"
namespace wvdrm {
using android::ERROR_DRM_VENDOR_MIN;
using android::ERROR_DRM_VENDOR_MAX;
enum {
kErrorIncorrectBufferSize = ERROR_DRM_VENDOR_MIN,
kErrorCDMGeneric = ERROR_DRM_VENDOR_MIN + 1,
kErrorUnsupportedCrypto = ERROR_DRM_VENDOR_MIN + 2,
kErrorExpectedUnencrypted = ERROR_DRM_VENDOR_MIN + 3,
kErrorSessionIsOpen = ERROR_DRM_VENDOR_MIN + 4,
kErrorTooManySessions = ERROR_DRM_VENDOR_MIN + 5,
kErrorInvalidKey = ERROR_DRM_VENDOR_MIN + 6,
kErrorNoOriginSpecified = ERROR_DRM_VENDOR_MIN + 7,
kAddKeyError = ERROR_DRM_VENDOR_MIN + 8,
kCertProvisioningGetKeyboxError1 = ERROR_DRM_VENDOR_MIN + 9,
kCertProvisioningGetKeyboxError2 = ERROR_DRM_VENDOR_MIN + 10,
kCertProvisioningInvalidCertType = ERROR_DRM_VENDOR_MIN + 11,
kCertProvisioningRequestError1 = ERROR_DRM_VENDOR_MIN + 12,
kCertProvisioningRequestError2 = ERROR_DRM_VENDOR_MIN + 13,
kCertProvisioningRequestError3 = ERROR_DRM_VENDOR_MIN + 14,
kCertProvisioningRequestError4 = ERROR_DRM_VENDOR_MIN + 15,
kCertProvisioningResponseError1 = ERROR_DRM_VENDOR_MIN + 16,
kCertProvisioningResponseError2 = ERROR_DRM_VENDOR_MIN + 17,
kCertProvisioningResponseError3 = ERROR_DRM_VENDOR_MIN + 18,
kCertProvisioningResponseError4 = ERROR_DRM_VENDOR_MIN + 19,
kCertProvisioningResponseError5 = ERROR_DRM_VENDOR_MIN + 20,
kCertProvisioningResponseError6 = ERROR_DRM_VENDOR_MIN + 21,
kCertProvisioningResponseError7 = ERROR_DRM_VENDOR_MIN + 22,
kCertProvisioningResponseError8 = ERROR_DRM_VENDOR_MIN + 23,
kCryptoSessionOpenError1 = ERROR_DRM_VENDOR_MIN + 24,
kCryptoSessionOpenError2 = ERROR_DRM_VENDOR_MIN + 25,
kCryptoSessionOpenError3 = ERROR_DRM_VENDOR_MIN + 26,
kCryptoSessionOpenError4 = ERROR_DRM_VENDOR_MIN + 27,
kCryptoSessionOpenError5 = ERROR_DRM_VENDOR_MIN + 28,
kDecyrptNotReady = ERROR_DRM_VENDOR_MIN + 29,
kDeviceCertificateError1 = ERROR_DRM_VENDOR_MIN + 30,
kDeviceCertificateError2 = ERROR_DRM_VENDOR_MIN + 31,
kDeviceCertificateError3 = ERROR_DRM_VENDOR_MIN + 32,
kDeviceCertificateError4 = ERROR_DRM_VENDOR_MIN + 33,
kEmptyKeyData1 = ERROR_DRM_VENDOR_MIN + 34,
kEmptyKeyData2 = ERROR_DRM_VENDOR_MIN + 35,
kEmptyKeySetId = ERROR_DRM_VENDOR_MIN + 36,
kEmptyKeySetIdEng1 = ERROR_DRM_VENDOR_MIN + 37,
kEmptyKeySetIdEng2 = ERROR_DRM_VENDOR_MIN + 38,
kEmptyKeySetIdEng3 = ERROR_DRM_VENDOR_MIN + 39,
kEmptyKeySetIdEng4 = ERROR_DRM_VENDOR_MIN + 40,
kEmptyLicenseRenewal = ERROR_DRM_VENDOR_MIN + 41,
kEmptyLicenseResponse1 = ERROR_DRM_VENDOR_MIN + 42,
kEmptyLicenseResponse2 = ERROR_DRM_VENDOR_MIN + 43,
kEmptyProvisioningCertificate1 = ERROR_DRM_VENDOR_MIN + 44,
kEmptyProvisioningResponse = ERROR_DRM_VENDOR_MIN + 45,
kEmptySessionId = ERROR_DRM_VENDOR_MIN + 46,
kGenerateDerivedKeysError = ERROR_DRM_VENDOR_MIN + 47,
kLicenseRenewalNonceGenerationError = ERROR_DRM_VENDOR_MIN + 48,
kGenerateUsageReportError = ERROR_DRM_VENDOR_MIN + 49,
kGetLicenseError = ERROR_DRM_VENDOR_MIN + 50,
kGetReleasedLicenseError = ERROR_DRM_VENDOR_MIN + 51,
kGetUsageInfoError1 = ERROR_DRM_VENDOR_MIN + 52,
kGetUsageInfoError2 = ERROR_DRM_VENDOR_MIN + 53,
kGetUsageInfoError3 = ERROR_DRM_VENDOR_MIN + 54,
kGetUsageInfoError4 = ERROR_DRM_VENDOR_MIN + 55,
kInitDataNotFound = ERROR_DRM_VENDOR_MIN + 56,
kInvalidCryptoSession1 = ERROR_DRM_VENDOR_MIN + 57,
kInvalidCryptoSession2 = ERROR_DRM_VENDOR_MIN + 58,
kInvalidCryptoSession3 = ERROR_DRM_VENDOR_MIN + 59,
kInvalidCryptoSession4 = ERROR_DRM_VENDOR_MIN + 60,
kInvalidCryptoSession5 = ERROR_DRM_VENDOR_MIN + 61,
kInvalidDecryptParametersEng1 = ERROR_DRM_VENDOR_MIN + 62,
kInvalidDecryptParametersEng2 = ERROR_DRM_VENDOR_MIN + 63,
kInvalidDecryptParametersEng3 = ERROR_DRM_VENDOR_MIN + 64,
kInvalidDecryptParametersEng4 = ERROR_DRM_VENDOR_MIN + 65,
kInvalidDeviceCertificateType = ERROR_DRM_VENDOR_MIN + 66,
kInvalidKeySystem = ERROR_DRM_VENDOR_MIN + 67,
kInvalidLicenseResponse = ERROR_DRM_VENDOR_MIN + 68,
kInvalidLicenseType = ERROR_DRM_VENDOR_MIN + 69,
kInvalidParametersEng1 = ERROR_DRM_VENDOR_MIN + 70,
kInvalidParametersEng2 = ERROR_DRM_VENDOR_MIN + 71,
kInvalidParametersEng3 = ERROR_DRM_VENDOR_MIN + 72,
kInvalidParametersEng4 = ERROR_DRM_VENDOR_MIN + 73,
kInvalidParametersLic1 = ERROR_DRM_VENDOR_MIN + 74,
kInvalidParametersLic2 = ERROR_DRM_VENDOR_MIN + 75,
kInvalidProvisioningParam1 = ERROR_DRM_VENDOR_MIN + 76,
kInvalidProvisioningParam2 = ERROR_DRM_VENDOR_MIN + 77,
kInvalidProvisioningReqParam1 = ERROR_DRM_VENDOR_MIN + 78,
kInvalidProvisioningReqParam2 = ERROR_DRM_VENDOR_MIN + 79,
kInvalidQueryKey = ERROR_DRM_VENDOR_MIN + 80,
kInvalidSessionId = ERROR_DRM_VENDOR_MIN + 81,
kKeyRequestError1 = ERROR_DRM_VENDOR_MIN + 82,
kKeySizeError = ERROR_DRM_VENDOR_MIN + 84,
kKeySetIdNotFound1 = ERROR_DRM_VENDOR_MIN + 85,
kKeySetIdNotFound2 = ERROR_DRM_VENDOR_MIN + 86,
kKeySetIdNotFound3 = ERROR_DRM_VENDOR_MIN + 87,
kLicenseIdNotFound = ERROR_DRM_VENDOR_MIN + 88,
kLicenseParserInitError = ERROR_DRM_VENDOR_MIN + 89,
kLicenseParserNotInitialized1 = ERROR_DRM_VENDOR_MIN + 90,
kLicenseParserNotInitialized2 = ERROR_DRM_VENDOR_MIN + 91,
kLicenseParserNotInitialized3 = ERROR_DRM_VENDOR_MIN + 92,
kLicenseResponseNotSigned = ERROR_DRM_VENDOR_MIN + 93,
kLicenseResponseParseError1 = ERROR_DRM_VENDOR_MIN + 94,
kLicenseResponseParseError2 = ERROR_DRM_VENDOR_MIN + 95,
kLicenseResponseParseError3 = ERROR_DRM_VENDOR_MIN + 96,
kLoadKeyError = ERROR_DRM_VENDOR_MIN + 97,
kNoContentKey = ERROR_DRM_VENDOR_MIN + 98,
kProvisioningGetKeyboxError = ERROR_DRM_VENDOR_MIN + 99,
kRefreshKeysError = ERROR_DRM_VENDOR_MIN + 100,
kReleaseAllUsageInfoError1 = ERROR_DRM_VENDOR_MIN + 101,
kReleaseAllUsageInfoError2 = ERROR_DRM_VENDOR_MIN + 102,
kReleaseKeyError = ERROR_DRM_VENDOR_MIN + 103,
kReleaseKeyRequestError = ERROR_DRM_VENDOR_MIN + 104,
kReleaseLicenseError1 = ERROR_DRM_VENDOR_MIN + 105,
kReleaseLicenseError2 = ERROR_DRM_VENDOR_MIN + 106,
kReleaseUsageInfoError = ERROR_DRM_VENDOR_MIN + 107,
kRenewKeyError1 = ERROR_DRM_VENDOR_MIN + 108,
kRenewKeyError2 = ERROR_DRM_VENDOR_MIN + 109,
kLicenseRenewalSigningError = ERROR_DRM_VENDOR_MIN + 110,
kRestoreOfflineLicenseError1 = ERROR_DRM_VENDOR_MIN + 111,
kRestoreOfflineLicenseError2 = ERROR_DRM_VENDOR_MIN + 112,
kSessionInitError1 = ERROR_DRM_VENDOR_MIN + 113,
kSessionInitError2 = ERROR_DRM_VENDOR_MIN + 114,
kSessionInitGetKeyboxError = ERROR_DRM_VENDOR_MIN + 115,
kSessionNotFound1 = ERROR_DRM_VENDOR_MIN + 116,
kSessionNotFound2 = ERROR_DRM_VENDOR_MIN + 117,
kSessionNotFound3 = ERROR_DRM_VENDOR_MIN + 118,
kSessionNotFound4 = ERROR_DRM_VENDOR_MIN + 119,
kSessionNotFound5 = ERROR_DRM_VENDOR_MIN + 120,
kSessionNotFound6 = ERROR_DRM_VENDOR_MIN + 121,
kSessionNotFound7 = ERROR_DRM_VENDOR_MIN + 122,
kSessionNotFound8 = ERROR_DRM_VENDOR_MIN + 123,
kSessionNotFound9 = ERROR_DRM_VENDOR_MIN + 124,
kSessionNotFound10 = ERROR_DRM_VENDOR_MIN + 125,
kSessionKeysNotFound = ERROR_DRM_VENDOR_MIN + 126,
kSessionNotFoundForDecrypt = ERROR_DRM_VENDOR_MIN + 127,
kSignatureNotFound = ERROR_DRM_VENDOR_MIN + 128,
kStoreLicenseError1 = ERROR_DRM_VENDOR_MIN + 129,
kStoreLicenseError2 = ERROR_DRM_VENDOR_MIN + 130,
kStoreLicenseError3 = ERROR_DRM_VENDOR_MIN + 131,
kStoreUsageInfoError = ERROR_DRM_VENDOR_MIN + 132,
kUnprovisioningError1 = ERROR_DRM_VENDOR_MIN + 133,
kUnprovisioningError2 = ERROR_DRM_VENDOR_MIN + 134,
kUnprovisioningError3 = ERROR_DRM_VENDOR_MIN + 135,
kUnprovisioningError4 = ERROR_DRM_VENDOR_MIN + 136,
kUnsupportedInitData = ERROR_DRM_VENDOR_MIN + 137,
kUsageInfoNotFound = ERROR_DRM_VENDOR_MIN + 138,
kLicenseRenewalServiceCertificateGenerationError = ERROR_DRM_VENDOR_MIN + 139,
kParseServiceCertificateError = ERROR_DRM_VENDOR_MIN + 140,
kServiceCertificateTypeError = ERROR_DRM_VENDOR_MIN + 141,
kClientIdGenerateRandomError = ERROR_DRM_VENDOR_MIN + 142,
kClientIdAesInitError = ERROR_DRM_VENDOR_MIN + 143,
kClientIdAesEncryptError = ERROR_DRM_VENDOR_MIN + 144,
kClientIdRsaInitError = ERROR_DRM_VENDOR_MIN + 145,
kClientIdRsaEncryptError = ERROR_DRM_VENDOR_MIN + 146,
kInvalidQueryStatus = ERROR_DRM_VENDOR_MIN + 147,
kEmptyProvisioningCertificate2 = ERROR_DRM_VENDOR_MIN + 148,
kLicenseParserNotInitialized4 = ERROR_DRM_VENDOR_MIN + 149,
kInvalidParametersLic3 = ERROR_DRM_VENDOR_MIN + 150,
kInvalidParametersLic4 = ERROR_DRM_VENDOR_MIN + 151,
kInvalidParametersLic6 = ERROR_DRM_VENDOR_MIN + 152,
kInvalidParametersLic7 = ERROR_DRM_VENDOR_MIN + 153,
kLicenseRequestServiceCertificateGenerationError = ERROR_DRM_VENDOR_MIN + 155,
kCencInitDataUnavailable = ERROR_DRM_VENDOR_MIN + 156,
kPrepareCencContentIdFailed = ERROR_DRM_VENDOR_MIN + 157,
kWebmInitDataUnavailable = ERROR_DRM_VENDOR_MIN + 158,
kPrepareWebmContentIdFailed = ERROR_DRM_VENDOR_MIN + 159,
kUnsupportedInitDataFormat = ERROR_DRM_VENDOR_MIN + 160,
kLicenseRequestNonceGenerationError = ERROR_DRM_VENDOR_MIN + 161,
kLicenseRequestSigningError = ERROR_DRM_VENDOR_MIN + 162,
kEmptyLicenseRequest = ERROR_DRM_VENDOR_MIN + 163,
kDuplicateSessionIdSpecified = ERROR_DRM_VENDOR_MIN + 164,
kLicenseRenewalProhibited = ERROR_DRM_VENDOR_MIN + 165,
kOfflineLicenseProhibited = ERROR_DRM_VENDOR_MIN + 166,
kStorageProhibited = ERROR_DRM_VENDOR_MIN + 167,
kEmptyKeySetIdEng5 = ERROR_DRM_VENDOR_MIN + 168,
kSessionNotFound11 = ERROR_DRM_VENDOR_MIN + 169,
kLoadUsageInfoFileError = ERROR_DRM_VENDOR_MIN + 170,
kLoadUsageInfoMissing = ERROR_DRM_VENDOR_MIN + 171,
kSessionFileHandleInitError = ERROR_DRM_VENDOR_MIN + 172,
kErrorWVDrmMaxErrorUsed = ERROR_DRM_VENDOR_MIN + 172,
// Used by crypto test mode
kErrorTestMode = ERROR_DRM_VENDOR_MAX,
};
static_assert(static_cast<uint32_t>(kErrorWVDrmMaxErrorUsed) <=
static_cast<uint32_t>(ERROR_DRM_VENDOR_MAX),
"");
} // namespace wvdrm
#endif // WV_ERRORS_H_