summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyunchang Choi <hyunchang.choi@intel.com>2016-06-03 16:31:15 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-06-03 16:31:15 +0000
commitcba0a334dfdeee50c37fba2d6a1de44b62683857 (patch)
treef3192d9c5112e2d25409c70afd69e3e59dbd5b7e
parenteecb5f24ecb6e09fe1b27bad76c73e333a83a336 (diff)
parent72aab93ac7e25d9aaa4ba0db494324e5efd92788 (diff)
downloadpsb_headers-cba0a334dfdeee50c37fba2d6a1de44b62683857.tar.gz
OEMCrypto v11 for Fugu N am: 81e89cc453
am: 72aab93ac7 * commit '72aab93ac7e25d9aaa4ba0db494324e5efd92788': OEMCrypto v11 for Fugu N Change-Id: I72865300daec1cd1d28e10e54f23af141647e2a5
-rwxr-xr-x[-rw-r--r--]DRM/cc54/inc/drm_common_api.h0
-rwxr-xr-x[-rw-r--r--]DRM/cc54/inc/drm_error.h4
-rwxr-xr-x[-rw-r--r--]DRM/cc54/inc/pr_drm_api.h259
-rwxr-xr-x[-rw-r--r--]DRM/cc54/inc/sepdrm.h0
-rwxr-xr-x[-rw-r--r--]DRM/cc54/inc/wv_fkp.h0
-rwxr-xr-x[-rw-r--r--]DRM/cc54/inc/wv_mod_drm_api.h19
-rwxr-xr-x[-rw-r--r--]DRM/cc54/inc/wv_mod_drm_error.h6
-rwxr-xr-x[-rw-r--r--]DRM/cc54/inc/wv_mod_oem_crypto.h1
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