diff options
author | Hyunchang Choi <hyunchang.choi@intel.com> | 2016-06-03 16:33:49 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-06-03 16:33:49 +0000 |
commit | 10991e997df5faf578e6903ae9d26e069cb33841 (patch) | |
tree | f3192d9c5112e2d25409c70afd69e3e59dbd5b7e | |
parent | eecb5f24ecb6e09fe1b27bad76c73e333a83a336 (diff) | |
parent | 5b1c34cc54789bdbb2c19cdaf49c4dd0c1d45ca6 (diff) | |
download | psb_headers-10991e997df5faf578e6903ae9d26e069cb33841.tar.gz |
OEMCrypto v11 for Fugu N am: 81e89cc453 am: 2212f33af7
am: 5b1c34cc54
* commit '5b1c34cc54789bdbb2c19cdaf49c4dd0c1d45ca6':
OEMCrypto v11 for Fugu N
Change-Id: Ifaa2aa816513a061a222af4b2020268637c315e2
-rwxr-xr-x[-rw-r--r--] | DRM/cc54/inc/drm_common_api.h | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | DRM/cc54/inc/drm_error.h | 4 | ||||
-rwxr-xr-x[-rw-r--r--] | DRM/cc54/inc/pr_drm_api.h | 259 | ||||
-rwxr-xr-x[-rw-r--r--] | DRM/cc54/inc/sepdrm.h | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | DRM/cc54/inc/wv_fkp.h | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | DRM/cc54/inc/wv_mod_drm_api.h | 19 | ||||
-rwxr-xr-x[-rw-r--r--] | DRM/cc54/inc/wv_mod_drm_error.h | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | DRM/cc54/inc/wv_mod_oem_crypto.h | 1 |
8 files changed, 42 insertions, 247 deletions
diff --git a/DRM/cc54/inc/drm_common_api.h b/DRM/cc54/inc/drm_common_api.h index 44d7bc2..44d7bc2 100644..100755 --- a/DRM/cc54/inc/drm_common_api.h +++ b/DRM/cc54/inc/drm_common_api.h diff --git a/DRM/cc54/inc/drm_error.h b/DRM/cc54/inc/drm_error.h index 5ee3a67..92b3097 100644..100755 --- a/DRM/cc54/inc/drm_error.h +++ b/DRM/cc54/inc/drm_error.h @@ -53,6 +53,10 @@ enum DRM_FAIL_NO_PREV_PARTIAL_BLOCK, DRM_FAIL_WRITE_KEYBOX, DRM_FAIL_INSUFFICENT_RESOURCES, + DRM_FAIL_INVALID_KEYBOX_POLICY, + DRM_FAIL_KEYBOX_NOT_PROVISIONED, + DRM_FAIL_KEYBOX_NOT_ERASED, // 0x50000020 + /*! Middleware specific errors */ DRM_FAIL_GENERATE_RANDOM_NUMBER_FAILURE = 0x50001000, diff --git a/DRM/cc54/inc/pr_drm_api.h b/DRM/cc54/inc/pr_drm_api.h index 1d90885..ea5b000 100644..100755 --- a/DRM/cc54/inc/pr_drm_api.h +++ b/DRM/cc54/inc/pr_drm_api.h @@ -1,23 +1,18 @@ -/* - * Copyright (C) 2014 Intel Corporation. All rights reserved. - * - * 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. - */ +/********************************************************************** +* Copyright (C) 2014 Intel Corporation. All rights reserved. -/** - * @file drm_pr_api.h - * @brief Header file for Playready DRM API - */ +* 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 __DRM_PR_API_H__ #define __DRM_PR_API_H__ @@ -25,38 +20,8 @@ /*! * Defines */ -#define PR_CLEAR_CONTENT_FLAG (1) - #define DRM_SECURE_CLOCK_FLAG_RESET (1) -/*! - * Structs - */ - -/* - * This structure is used to provide necessary information for PlayReady video - * ciphertext decryption. - * - * The members are: - * - * iv - AES initialization vector. - * input_ciphertext_size - Input ciphertext data size in bytes. - * p_input_ciphertext - Pointer to the input ciphertext data. - */ -struct pr_drm_video_cipher -{ - uint32_t key_index; - uint32_t key_type; - uint64_t iv; - uint64_t byte_offset; - uint32_t input_ciphertext_size; - uint8_t *p_input_ciphertext; - uint8_t flags; - uint8_t *p_output_enc_ciphertext; - uint32_t output_ciphertext_size; -}; - - struct drm_nalu_headers { uint32_t frame_size; @@ -66,202 +31,6 @@ struct drm_nalu_headers uint8_t *p_hdrs_buf; }; -struct pr_av_secure_input_data_buffer -{ - uint32_t session_id; - uint32_t size; - uint8_t *data; - uint32_t clear; -}; - - -/* - * Map to Oem_Hal_AllocateRegister - */ -uint32_t drm_pr_allocate_register(uint32_t key_type, - uint32_t *key_reg_index); - -/* - * Map to Oem_Hal_FreeRegister - */ -uint32_t drm_pr_free_register(uint32_t key_type, - uint32_t key_reg_index); - -/* - * Map to Oem_Hal_RegisterCount - */ -uint32_t drm_pr_register_count(uint32_t key_type, - uint32_t *total_regs, - uint32_t *allocated_regs); - -/* - * Map to Oem_Hal_GetPreloadedIndex - */ -uint32_t drm_pr_get_preloaded_index(uint32_t key_type, - uint8_t *key_id, - uint32_t key_id_len, - uint32_t *key_index); -/* - * Map to Oem_Hal_Initialize - */ -uint32_t drm_pr_initialize(void); - -/* - * Map to Oem_Hal_Deinitialize - */ -uint32_t drm_pr_deinitialize(void); - -/* - * Map to Oem_Hal_VerifyMessageSignature - */ -uint32_t drm_pr_verify_message_signature(uint8_t *msg, - uint32_t msg_len, - const uint8_t *signature, - uint32_t signature_len, - uint32_t hash_type, - uint32_t signature_scheme, - uint32_t integrity_key_index); - -/* - * Map to Oem_Hal_CreateMessageSignature - */ -uint32_t drm_pr_create_message_signature(uint8_t *msg, - uint32_t msg_len, - uint8_t *signature, - uint32_t *signature_len, - uint32_t hash_type, - uint32_t signature_scheme, - uint32_t key_type, - uint32_t integrity_key_index); -/* - * Map to Oem_Hal_VerifyOMAC1Signature - */ - uint32_t drm_pr_verify_omac1_signature(uint8_t *msg, - uint32_t msg_len, - uint8_t *signature, - uint32_t signature_len, - uint32_t key_type, - uint32_t index_key); - - /* - * Map to Oem_Hal_CreateOMAC1Signature - */ -uint32_t drm_pr_create_omac1_signature(uint8_t *msg, - uint32_t msg_len, - uint8_t *signature, - uint32_t *signature_len, - uint32_t key_type, - uint32_t index_key); - -/* - * Map to Oem_Hal_UnwrapKey - */ -uint32_t drm_pr_unwrap_get_keydata_type(uint32_t key_type, - uint32_t key_index, - uint32_t wrapping_key_type, - uint32_t wrapping_key_index, - uint32_t *key_data_type); - -uint32_t drm_pr_unwrap_encrypted_key(uint32_t key_type, - uint32_t key_index, - uint32_t wrapping_key_type, - uint32_t wrapping_key_index, - uint8_t *encryption_key_info, - uint32_t key_info_size, - uint8_t *encrypted_key_data, - uint32_t key_data_size); - -uint32_t drm_pr_unwrap_xmr_license(uint32_t key_type, - uint32_t key_index, - uint32_t wrapping_key_type, - uint32_t wrapping_key_index, - uint8_t *xmr_license, - uint32_t xmr_license_size, - uint8_t xmr_ignore_cksum, - uint8_t bb_ignore_cksum, - uint8_t *bb_cksum_data, - uint32_t bb_cksum_data_size, - uint8_t *bb_kid, - uint8_t bb_kid_size, - uint8_t *bb_v1_kid, - uint32_t bb_v1_kid_size); - -uint32_t drm_pr_unwrap_key(uint32_t unwrap_key_type, - uint32_t unwrap_key_reg_index, - uint32_t wrapping_key_type, - uint32_t wrapping_key_index, - uint8_t *wrapped_key_data, - uint32_t wrapped_key_data_len, - const uint8_t *param_data, - uint32_t param_data_len); - -/* - * Map to Oem_Hal_WrapKey - */ -uint32_t drm_pr_wrap_get_encryption_type(uint32_t key_type, - uint32_t key_index, - uint32_t wrapping_key_type, - uint32_t wrapping_key_index, - uint32_t *encryption_type); - -uint32_t drm_pr_wrap_encrypted_key(uint32_t key_type, - uint32_t key_index, - uint32_t wrapping_key_type, - uint32_t wrapping_key_index, - uint8_t *encryption_key_info, - uint32_t key_info_size, - uint8_t *encrypted_key_data, - uint32_t encrypted_key_data_size); - -uint32_t drm_pr_wrap_key(uint32_t wrap_key_type, - uint32_t wrap_key_reg_index, - uint32_t wrapping_key_type, - uint32_t wrapping_key_reg_index, - uint8_t *wrapped_key, - uint32_t *wrapped_key_len); - -/* - * Map to Oem_Hal_GenerateKey - */ -uint32_t drm_pr_generate_key(uint32_t key_type, - uint32_t key_reg_index, - uint32_t security_level); -/* - * Map to Oem_Hal_LoadPlayReadyRevocationInfo - */ -uint32_t drm_pr_load_revoc_info(uint8_t *revoc_info, - uint32_t revoc_info_len, - uint32_t sign_key_reg_index); -/* - * Map to Oem_Hal_LoadPlayReadyCrl - */ -uint32_t drm_pr_load_crl(uint8_t *crl, - uint32_t crl_len, - uint32_t sign_key_reg_index); -/* - * Map to Oem_Hal_DecryptContentOpaque - */ -uint32_t drm_pr_decrypt_content_opaque(void *in_buffer, - void *out_buffer, - uint32_t data_len, - uint32_t key_type, - uint32_t key_index, - uint64_t iv, - uint64_t byte_offset); - -uint32_t drm_pr_decrypt_content(uint8_t *out_buffer, - uint32_t data_len, - uint32_t key_type, - uint32_t key_index, - uint64_t iv, - uint64_t byte_offset); - -/*! - *@brief Create a PlayReady session - * - */ -uint32_t drm_pr_create_session(uint32_t *session_id); - /*! *@brief Returns NALU header * diff --git a/DRM/cc54/inc/sepdrm.h b/DRM/cc54/inc/sepdrm.h index 6996117..6996117 100644..100755 --- a/DRM/cc54/inc/sepdrm.h +++ b/DRM/cc54/inc/sepdrm.h diff --git a/DRM/cc54/inc/wv_fkp.h b/DRM/cc54/inc/wv_fkp.h index 0fa3455..0fa3455 100644..100755 --- a/DRM/cc54/inc/wv_fkp.h +++ b/DRM/cc54/inc/wv_fkp.h diff --git a/DRM/cc54/inc/wv_mod_drm_api.h b/DRM/cc54/inc/wv_mod_drm_api.h index dcd1320..4e5cab0 100644..100755 --- a/DRM/cc54/inc/wv_mod_drm_api.h +++ b/DRM/cc54/inc/wv_mod_drm_api.h @@ -331,4 +331,23 @@ uint32_t drm_wv_mod_query_key_control(const uint32_t session_id, uint8_t *key_control_block, uint32_t *key_control_block_length); +/*! Version 11 specific APIs */ +uint32_t drm_wv_mod_security_patch_level(uint32_t *security_patch_level); + +uint32_t drm_wv_mod_api_version(uint32_t *api_version); + +uint32_t drm_wv_mod_decrypt_cenc(uint32_t session_id, + const uint8_t *inp_data_buffer, + uint32_t inp_data_size, + uint8_t *out_data_buffer, + uint32_t out_data_size, + const uint8_t *iv, + uint8_t flags); + +uint32_t drm_wv_mod_glue_block(uint32_t session_id, + uint8_t *encrypted, + const uint8_t *cleartext, + uint32_t cleartext_length, + const uint8_t *iv); + #endif /* __WV_MOD_DRM_API_H_ */ diff --git a/DRM/cc54/inc/wv_mod_drm_error.h b/DRM/cc54/inc/wv_mod_drm_error.h index 875c374..b10c2eb 100644..100755 --- a/DRM/cc54/inc/wv_mod_drm_error.h +++ b/DRM/cc54/inc/wv_mod_drm_error.h @@ -68,11 +68,13 @@ enum drm_wv_mod_result DRM_WV_MOD_ERROR_DERIVED_CLIENT_MAC_KEY_FAILED, DRM_WV_MOD_ERROR_DERIVED_SERVER_MAC_KEY_FAILED, DRM_WV_MOD_ERROR_KEY_DERIVATION_FAILED, - DRM_WV_MOD_ERROR_INVALID_DATA_FORMAT_VERSION, + DRM_WV_MOD_ERROR_INVALID_DATA_FORMAT_VERSION, // 0x30 DRM_WV_MOD_ERROR_INVALID_PLAYBACK_STATE, DRM_WV_MOD_ERROR_INVALID_SESSION_STATE, DRM_WV_MOD_ERROR_INVALID_USAGE_TABLE_GENERATION_NUM, - DRM_WV_MOD_ERROR_INVALID_USAGE_TABLE_MAGIC + DRM_WV_MOD_ERROR_INVALID_USAGE_TABLE_MAGIC, + DRM_WV_MOD_ERROR_USAGE_TABLE_NOT_INITIALIZED, + DRM_WV_MOD_ERROR_INVALID_CIPHER_MODE }; #endif diff --git a/DRM/cc54/inc/wv_mod_oem_crypto.h b/DRM/cc54/inc/wv_mod_oem_crypto.h index d43cc99..42ed033 100644..100755 --- a/DRM/cc54/inc/wv_mod_oem_crypto.h +++ b/DRM/cc54/inc/wv_mod_oem_crypto.h @@ -41,6 +41,7 @@ struct drm_wv_mod_key_object uint32_t key_data_length; const uint8_t *key_control_iv; const uint8_t *key_control; + uint32_t cipher_mode; }; struct drm_wv_mod_key_refresh_object |