exec/s: 316 Test: ./system_id_extractor_fuzzer Bug: 265234582 Change-Id: I9ef8d2747f875bfe287fff51edc90c862a4f4d66
381 lines
12 KiB
C++
381 lines
12 KiB
C++
/*
|
|
* Copyright (C) 2023 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.
|
|
*
|
|
*/
|
|
#ifndef SYSTEM_FUZZ_HELPER_H_
|
|
#define SYSTEM_FUZZ_HELPER_H_
|
|
|
|
#include <fuzzer/FuzzedDataProvider.h>
|
|
|
|
using namespace wvcdm;
|
|
|
|
const CdmResponseEnum kCdmResponseEnums[] = {
|
|
NO_ERROR,
|
|
UNKNOWN_ERROR,
|
|
KEY_ADDED,
|
|
KEY_ERROR,
|
|
KEY_MESSAGE,
|
|
NEED_KEY,
|
|
KEY_CANCELED,
|
|
NEED_PROVISIONING,
|
|
DEVICE_REVOKED,
|
|
INSUFFICIENT_CRYPTO_RESOURCES,
|
|
ADD_KEY_ERROR,
|
|
CERT_PROVISIONING_GET_KEYBOX_ERROR_1,
|
|
|
|
CERT_PROVISIONING_INVALID_CERT_TYPE,
|
|
CERT_PROVISIONING_REQUEST_ERROR_1,
|
|
CERT_PROVISIONING_NONCE_GENERATION_ERROR,
|
|
|
|
CERT_PROVISIONING_REQUEST_ERROR_4,
|
|
CERT_PROVISIONING_RESPONSE_ERROR_1,
|
|
CERT_PROVISIONING_RESPONSE_ERROR_2,
|
|
CERT_PROVISIONING_RESPONSE_ERROR_3,
|
|
CERT_PROVISIONING_RESPONSE_ERROR_4,
|
|
CERT_PROVISIONING_RESPONSE_ERROR_7,
|
|
CERT_PROVISIONING_RESPONSE_ERROR_8,
|
|
DECRYPT_NOT_READY,
|
|
DEVICE_CERTIFICATE_ERROR_1,
|
|
DEVICE_CERTIFICATE_ERROR_2,
|
|
DEVICE_CERTIFICATE_ERROR_3,
|
|
DEVICE_CERTIFICATE_ERROR_4,
|
|
EMPTY_KEY_DATA_1,
|
|
EMPTY_KEY_DATA_2,
|
|
EMPTY_KEYSET_ID,
|
|
EMPTY_KEYSET_ID_ENG_1,
|
|
EMPTY_KEYSET_ID_ENG_2,
|
|
EMPTY_KEYSET_ID_ENG_3,
|
|
EMPTY_KEYSET_ID_ENG_4,
|
|
EMPTY_LICENSE_RENEWAL,
|
|
EMPTY_LICENSE_RESPONSE_1,
|
|
EMPTY_LICENSE_RESPONSE_2,
|
|
EMPTY_PROVISIONING_CERTIFICATE_1,
|
|
EMPTY_PROVISIONING_RESPONSE,
|
|
EMPTY_SESSION_ID,
|
|
GENERATE_DERIVED_KEYS_ERROR,
|
|
LICENSE_RENEWAL_NONCE_GENERATION_ERROR,
|
|
GENERATE_USAGE_REPORT_ERROR,
|
|
GET_LICENSE_ERROR,
|
|
GET_RELEASED_LICENSE_ERROR,
|
|
GET_USAGE_INFO_ERROR_1,
|
|
GET_USAGE_INFO_ERROR_2,
|
|
GET_USAGE_INFO_ERROR_3,
|
|
GET_USAGE_INFO_ERROR_4,
|
|
INIT_DATA_NOT_FOUND,
|
|
|
|
INVALID_DECRYPT_PARAMETERS_ENG_1,
|
|
INVALID_DECRYPT_PARAMETERS_ENG_2,
|
|
INVALID_DECRYPT_PARAMETERS_ENG_3,
|
|
INVALID_DECRYPT_PARAMETERS_ENG_4,
|
|
INVALID_DEVICE_CERTIFICATE_TYPE,
|
|
INVALID_KEY_SYSTEM,
|
|
INVALID_LICENSE_RESPONSE,
|
|
INVALID_LICENSE_TYPE,
|
|
PARAMETER_NULL,
|
|
INVALID_PARAMETERS_LIC_1,
|
|
INVALID_PARAMETERS_LIC_2,
|
|
INVALID_PROVISIONING_PARAMETERS_1,
|
|
INVALID_PROVISIONING_PARAMETERS_2,
|
|
INVALID_PROVISIONING_REQUEST_PARAM_1,
|
|
INVALID_PROVISIONING_REQUEST_PARAM_2,
|
|
INVALID_QUERY_KEY,
|
|
INVALID_SESSION_ID,
|
|
KEY_REQUEST_ERROR_1,
|
|
KEY_SIZE_ERROR_1,
|
|
KEYSET_ID_NOT_FOUND_1,
|
|
KEYSET_ID_NOT_FOUND_2,
|
|
KEYSET_ID_NOT_FOUND_3,
|
|
LICENSE_ID_NOT_FOUND,
|
|
LICENSE_PARSER_INIT_ERROR,
|
|
LICENSE_PARSER_NOT_INITIALIZED_1,
|
|
LICENSE_PARSER_NOT_INITIALIZED_2,
|
|
LICENSE_PARSER_NOT_INITIALIZED_3,
|
|
LICENSE_RESPONSE_NOT_SIGNED,
|
|
LICENSE_RESPONSE_PARSE_ERROR_1,
|
|
LICENSE_RESPONSE_PARSE_ERROR_2,
|
|
LICENSE_RESPONSE_PARSE_ERROR_3,
|
|
LOAD_KEY_ERROR,
|
|
NO_CONTENT_KEY,
|
|
REFRESH_KEYS_ERROR,
|
|
REMOVE_ALL_USAGE_INFO_ERROR_1,
|
|
REMOVE_ALL_USAGE_INFO_ERROR_2,
|
|
RELEASE_KEY_ERROR,
|
|
RELEASE_KEY_REQUEST_ERROR,
|
|
RELEASE_LICENSE_ERROR_1,
|
|
RELEASE_LICENSE_ERROR_2,
|
|
RELEASE_USAGE_INFO_ERROR,
|
|
RENEW_KEY_ERROR_1,
|
|
RENEW_KEY_ERROR_2,
|
|
RESTORE_OFFLINE_LICENSE_ERROR_2,
|
|
NOT_INITIALIZED_ERROR,
|
|
REINIT_ERROR,
|
|
SESSION_NOT_FOUND_1,
|
|
SESSION_NOT_FOUND_2,
|
|
SESSION_NOT_FOUND_3,
|
|
SESSION_NOT_FOUND_4,
|
|
SESSION_NOT_FOUND_5,
|
|
SESSION_NOT_FOUND_6,
|
|
SESSION_NOT_FOUND_7,
|
|
SESSION_NOT_FOUND_8,
|
|
SESSION_NOT_FOUND_9,
|
|
SESSION_NOT_FOUND_10,
|
|
SESSION_NOT_FOUND_FOR_DECRYPT,
|
|
SESSION_KEYS_NOT_FOUND,
|
|
SIGNATURE_NOT_FOUND,
|
|
STORE_LICENSE_ERROR_1,
|
|
STORE_LICENSE_ERROR_2,
|
|
STORE_USAGE_INFO_ERROR,
|
|
UNPROVISION_ERROR_1,
|
|
UNPROVISION_ERROR_2,
|
|
UNPROVISION_ERROR_3,
|
|
UNPROVISION_ERROR_4,
|
|
UNSUPPORTED_INIT_DATA,
|
|
USAGE_INFO_NOT_FOUND,
|
|
PARSE_SERVICE_CERTIFICATE_ERROR,
|
|
CLIENT_ID_GENERATE_RANDOM_ERROR,
|
|
CLIENT_ID_AES_INIT_ERROR,
|
|
CLIENT_ID_AES_ENCRYPT_ERROR,
|
|
CLIENT_ID_RSA_INIT_ERROR,
|
|
CLIENT_ID_RSA_ENCRYPT_ERROR,
|
|
LICENSE_PARSER_NOT_INITIALIZED_4,
|
|
INVALID_PARAMETERS_LIC_3,
|
|
INVALID_PARAMETERS_LIC_4,
|
|
|
|
INVALID_PARAMETERS_LIC_6,
|
|
INVALID_PARAMETERS_LIC_7,
|
|
LICENSE_REQUEST_SERVICE_CERTIFICATE_GENERATION_ERROR,
|
|
CENC_INIT_DATA_UNAVAILABLE,
|
|
PREPARE_CENC_CONTENT_ID_FAILED,
|
|
WEBM_INIT_DATA_UNAVAILABLE,
|
|
PREPARE_WEBM_CONTENT_ID_FAILED,
|
|
UNSUPPORTED_INIT_DATA_FORMAT,
|
|
LICENSE_REQUEST_NONCE_GENERATION_ERROR,
|
|
|
|
EMPTY_LICENSE_REQUEST,
|
|
SECURE_BUFFER_REQUIRED,
|
|
DUPLICATE_SESSION_ID_SPECIFIED,
|
|
LICENSE_RENEWAL_PROHIBITED,
|
|
EMPTY_PROVISIONING_CERTIFICATE_2,
|
|
OFFLINE_LICENSE_PROHIBITED,
|
|
STORAGE_PROHIBITED,
|
|
EMPTY_KEYSET_ID_ENG_5,
|
|
SESSION_NOT_FOUND_11,
|
|
LOAD_USAGE_INFO_FILE_ERROR,
|
|
LOAD_USAGE_INFO_MISSING,
|
|
SESSION_FILE_HANDLE_INIT_ERROR,
|
|
INCORRECT_CRYPTO_MODE,
|
|
INVALID_PARAMETERS_ENG_5,
|
|
DECRYPT_ERROR,
|
|
INSUFFICIENT_OUTPUT_PROTECTION,
|
|
SESSION_NOT_FOUND_12,
|
|
KEY_NOT_FOUND_1,
|
|
KEY_NOT_FOUND_2,
|
|
KEY_CONFLICT_1,
|
|
SESSION_NOT_FOUND_13,
|
|
SESSION_NOT_FOUND_14,
|
|
SESSION_NOT_FOUND_15,
|
|
SESSION_NOT_FOUND_16,
|
|
KEY_NOT_FOUND_3,
|
|
KEY_NOT_FOUND_4,
|
|
KEY_NOT_FOUND_5,
|
|
KEY_NOT_FOUND_6,
|
|
INVALID_SESSION_1,
|
|
NO_DEVICE_KEY_1,
|
|
NO_CONTENT_KEY_2,
|
|
INVALID_PARAMETERS_ENG_13,
|
|
INVALID_PARAMETERS_ENG_14,
|
|
INVALID_PARAMETERS_ENG_15,
|
|
INVALID_PARAMETERS_ENG_16,
|
|
CLIENT_IDENTIFICATION_TOKEN_ERROR_1,
|
|
ANALOG_OUTPUT_ERROR,
|
|
UNKNOWN_SELECT_KEY_ERROR_1,
|
|
UNKNOWN_SELECT_KEY_ERROR_2,
|
|
CREATE_USAGE_TABLE_ERROR,
|
|
LOAD_USAGE_HEADER_GENERATION_SKEW,
|
|
LOAD_USAGE_HEADER_SIGNATURE_FAILURE,
|
|
LOAD_USAGE_HEADER_BAD_MAGIC,
|
|
LOAD_USAGE_HEADER_UNKNOWN_ERROR,
|
|
CREATE_USAGE_ENTRY_UNKNOWN_ERROR,
|
|
LOAD_USAGE_ENTRY_GENERATION_SKEW,
|
|
LOAD_USAGE_ENTRY_SIGNATURE_FAILURE,
|
|
LOAD_USAGE_ENTRY_UNKNOWN_ERROR,
|
|
UPDATE_USAGE_ENTRY_UNKNOWN_ERROR,
|
|
SHRINK_USAGE_TABLE_HEADER_UNKNOWN_ERROR,
|
|
MOVE_USAGE_ENTRY_UNKNOWN_ERROR,
|
|
COPY_OLD_USAGE_ENTRY_UNKNOWN_ERROR,
|
|
INVALID_PARAMETERS_ENG_22,
|
|
LIST_LICENSE_ERROR_1,
|
|
LIST_LICENSE_ERROR_2,
|
|
INVALID_PARAMETERS_ENG_23,
|
|
USAGE_INFORMATION_SUPPORT_FAILED,
|
|
USAGE_SUPPORT_GET_API_FAILED,
|
|
UNEXPECTED_EMPTY_USAGE_ENTRY,
|
|
INVALID_USAGE_ENTRY_NUMBER_MODIFICATION,
|
|
USAGE_INVALID_NEW_ENTRY,
|
|
USAGE_INVALID_PARAMETERS_1,
|
|
USAGE_GET_ENTRY_RETRIEVE_LICENSE_FAILED,
|
|
USAGE_GET_ENTRY_RETRIEVE_USAGE_INFO_FAILED,
|
|
USAGE_GET_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE,
|
|
USAGE_ENTRY_NUMBER_MISMATCH,
|
|
USAGE_STORE_LICENSE_FAILED,
|
|
USAGE_STORE_USAGE_INFO_FAILED,
|
|
USAGE_INVALID_LOAD_ENTRY,
|
|
REMOVE_ALL_USAGE_INFO_ERROR_5,
|
|
RELEASE_USAGE_INFO_FAILED,
|
|
INCORRECT_USAGE_SUPPORT_TYPE_1,
|
|
INCORRECT_USAGE_SUPPORT_TYPE_2,
|
|
KEY_PROHIBITED_FOR_SECURITY_LEVEL,
|
|
KEY_NOT_FOUND_IN_SESSION,
|
|
NO_USAGE_ENTRIES,
|
|
LIST_USAGE_ERROR_1,
|
|
LIST_USAGE_ERROR_2,
|
|
DELETE_USAGE_ERROR_1,
|
|
DELETE_USAGE_ERROR_2,
|
|
DELETE_USAGE_ERROR_3,
|
|
PRIVACY_MODE_ERROR_1,
|
|
PRIVACY_MODE_ERROR_2,
|
|
PRIVACY_MODE_ERROR_3,
|
|
EMPTY_RESPONSE_ERROR_1,
|
|
INVALID_PARAMETERS_ENG_24,
|
|
PARSE_RESPONSE_ERROR_1,
|
|
PARSE_RESPONSE_ERROR_2,
|
|
PARSE_RESPONSE_ERROR_3,
|
|
PARSE_RESPONSE_ERROR_4,
|
|
USAGE_STORE_ENTRY_RETRIEVE_LICENSE_FAILED,
|
|
USAGE_STORE_ENTRY_RETRIEVE_USAGE_INFO_FAILED,
|
|
USAGE_STORE_ENTRY_RETRIEVE_INVALID_STORAGE_TYPE,
|
|
REMOVE_ALL_USAGE_INFO_ERROR_6,
|
|
REMOVE_ALL_USAGE_INFO_ERROR_7,
|
|
CERT_PROVISIONING_EMPTY_SERVICE_CERTIFICATE,
|
|
LOAD_SYSTEM_ID_ERROR,
|
|
REMOVE_USAGE_INFO_ERROR_1,
|
|
REMOVE_USAGE_INFO_ERROR_2,
|
|
REMOVE_USAGE_INFO_ERROR_3,
|
|
NOT_AN_ENTITLEMENT_SESSION,
|
|
NO_MATCHING_ENTITLEMENT_KEY,
|
|
LOAD_ENTITLED_CONTENT_KEYS_ERROR,
|
|
GET_PROVISIONING_METHOD_ERROR,
|
|
INVALID_SESSION_2,
|
|
SESSION_NOT_FOUND_18,
|
|
NO_CONTENT_KEY_3,
|
|
DEVICE_CANNOT_REPROVISION,
|
|
SESSION_NOT_FOUND_19,
|
|
KEY_SIZE_ERROR_2,
|
|
SET_DECRYPT_HASH_ERROR,
|
|
GET_DECRYPT_HASH_ERROR,
|
|
SESSION_NOT_FOUND_20,
|
|
INVALID_DECRYPT_HASH_FORMAT,
|
|
EMPTY_LICENSE_REQUEST_2,
|
|
EMPTY_LICENSE_REQUEST_3,
|
|
EMPTY_LICENSE_RESPONSE_3,
|
|
EMPTY_LICENSE_RESPONSE_4,
|
|
PARSE_REQUEST_ERROR_1,
|
|
PARSE_REQUEST_ERROR_2,
|
|
INVALID_LICENSE_REQUEST_TYPE_1,
|
|
INVALID_LICENSE_REQUEST_TYPE_2,
|
|
LICENSE_RESPONSE_PARSE_ERROR_4,
|
|
LICENSE_RESPONSE_PARSE_ERROR_5,
|
|
INVALID_LICENSE_TYPE_2,
|
|
SIGNATURE_NOT_FOUND_2,
|
|
SESSION_KEYS_NOT_FOUND_2,
|
|
GET_OFFLINE_LICENSE_STATE_ERROR_1,
|
|
GET_OFFLINE_LICENSE_STATE_ERROR_2,
|
|
REMOVE_OFFLINE_LICENSE_ERROR_1,
|
|
REMOVE_OFFLINE_LICENSE_ERROR_2,
|
|
SESSION_NOT_FOUND_21,
|
|
OUTPUT_TOO_LARGE_ERROR,
|
|
SESSION_LOST_STATE_ERROR,
|
|
GENERATE_DERIVED_KEYS_ERROR_2,
|
|
LOAD_DEVICE_RSA_KEY_ERROR,
|
|
NONCE_GENERATION_ERROR,
|
|
GENERATE_SIGNATURE_ERROR,
|
|
UNKNOWN_CLIENT_TOKEN_TYPE,
|
|
DEACTIVATE_USAGE_ENTRY_ERROR,
|
|
SERVICE_CERTIFICATE_PROVIDER_ID_EMPTY,
|
|
SYSTEM_INVALIDATED_ERROR,
|
|
OPEN_CRYPTO_SESSION_ERROR,
|
|
LOAD_SRM_ERROR,
|
|
RANDOM_GENERATION_ERROR,
|
|
CRYPTO_SESSION_NOT_INITIALIZED,
|
|
GET_DEVICE_ID_ERROR,
|
|
GET_TOKEN_FROM_OEM_CERT_ERROR,
|
|
CRYPTO_SESSION_NOT_OPEN,
|
|
GET_TOKEN_FROM_KEYBOX_ERROR,
|
|
KEYBOX_TOKEN_TOO_SHORT,
|
|
EXTRACT_SYSTEM_ID_FROM_OEM_CERT_ERROR,
|
|
RSA_SIGNATURE_GENERATION_ERROR,
|
|
GET_HDCP_CAPABILITY_FAILED,
|
|
GET_NUMBER_OF_OPEN_SESSIONS_ERROR,
|
|
GET_MAX_NUMBER_OF_OPEN_SESSIONS_ERROR,
|
|
NOT_IMPLEMENTED_ERROR,
|
|
GET_SRM_VERSION_ERROR,
|
|
REWRAP_DEVICE_RSA_KEY_ERROR,
|
|
LOAD_PROVISIONING_ERROR,
|
|
INVALID_SRM_LIST,
|
|
KEYSET_ID_NOT_FOUND_4,
|
|
SESSION_NOT_FOUND_22,
|
|
USAGE_INVALID_PARAMETERS_2,
|
|
CORE_MESSAGE_NOT_FOUND,
|
|
LOAD_LICENSE_ERROR,
|
|
LOAD_RENEWAL_ERROR,
|
|
CANNOT_DECRYPT_ZERO_SAMPLES,
|
|
CANNOT_DECRYPT_ZERO_SUBSAMPLES,
|
|
SAMPLE_AND_SUBSAMPLE_SIZE_MISMATCH,
|
|
INVALID_IV_SIZE,
|
|
PROVISIONING_NOT_ALLOWED_FOR_ATSC,
|
|
MOVE_USAGE_ENTRY_DESTINATION_IN_USE,
|
|
SHRINK_USAGE_TABLE_HEADER_ENTRY_IN_USE,
|
|
LICENSE_USAGE_ENTRY_MISSING,
|
|
LOAD_USAGE_ENTRY_INVALID_SESSION,
|
|
RESTORE_OFFLINE_LICENSE_ERROR_3,
|
|
NO_SRM_VERSION,
|
|
SESSION_NOT_FOUND_23,
|
|
CERT_PROVISIONING_RESPONSE_ERROR_9,
|
|
CERT_PROVISIONING_RESPONSE_ERROR_10,
|
|
CLIENT_TOKEN_NOT_SET,
|
|
USAGE_ENTRY_ALREADY_LOADED,
|
|
PARSE_OKP_RESPONSE_ERROR,
|
|
OKP_ALREADY_PROVISIONED,
|
|
|
|
PROVISIONING_TYPE_IS_NOT_BOOT_CERTIFICATE_CHAIN_ERROR,
|
|
GET_BOOT_CERTIFICATE_CHAIN_ERROR,
|
|
GENERATE_CERTIFICATE_KEY_PAIR_ERROR,
|
|
GENERATE_CERTIFICATE_KEY_PAIR_UNKNOWN_TYPE_ERROR,
|
|
LOAD_OEM_CERTIFICATE_PRIVATE_KEY_ERROR,
|
|
PROVISIONING_4_CRYPTO_SESSION_NOT_OPEN,
|
|
PROVISIONING_4_FILE_SYSTEM_IS_NULL,
|
|
PROVISIONING_4_FAILED_TO_INITIALIZE_DEVICE_FILES,
|
|
PROVISIONING_4_RESPONSE_FAILED_TO_PARSE_MESSAGE,
|
|
PROVISIONING_4_RESPONSE_HAS_ERROR_STATUS,
|
|
PROVISIONING_4_RESPONSE_HAS_NO_CERTIFICATE,
|
|
PROVISIONING_4_NO_PRIVATE_KEY,
|
|
PROVISIONING_4_FAILED_TO_INITIALIZE_DEVICE_FILES_2,
|
|
PROVISIONING_4_FAILED_TO_STORE_OEM_CERTIFICATE,
|
|
PROVISIONING_4_FAILED_TO_STORE_DRM_CERTIFICATE,
|
|
PROVISIONING_4_FAILED_TO_INITIALIZE_DEVICE_FILES_3,
|
|
GET_SIGNATURE_HASH_ALGORITHM_ERROR_1,
|
|
GET_SIGNATURE_HASH_ALGORITHM_ERROR_2,
|
|
GET_SIGNATURE_HASH_ALGORITHM_ERROR_3,
|
|
UNSUPPORTED_SIGNATURE_HASH_ALGORITHM_1,
|
|
UNSUPPORTED_SIGNATURE_HASH_ALGORITHM_2,
|
|
UNSUPPORTED_SIGNATURE_HASH_ALGORITHM_3,
|
|
UNSUPPORTED_SIGNATURE_HASH_ALGORITHM_4,
|
|
STORE_ATSC_LICENSE_DEVICE_FILES_INIT_ERROR,
|
|
STORE_ATSC_LICENSE_ERROR,
|
|
|
|
};
|
|
|
|
#endif // SYSTEM_FUZZ_HELPER_H_
|