summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-08-10 07:27:39 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-08-10 07:27:39 +0000
commit3b022af1e9dfc016f535849fcbca570e97a06684 (patch)
treedd3612797ac08fc7ac12e2ab2b9cff5a8f0be9a7
parentfe2941e3ac671e71474ccc6717848ad7c5d74d33 (diff)
parenta5eca4ac9dfbfb88c758b8f7d4597a5512b4797f (diff)
downloadpsb_headers-oreo-m7-release.tar.gz
release-request-7f84484c-eec6-4577-8d5a-55079be4f3c5-for-git_oc-mr1-release-4262309 snap-temp-L02100000091441105android-wear-8.1.0_r1android-vts-8.1_r9android-vts-8.1_r8android-vts-8.1_r7android-vts-8.1_r6android-vts-8.1_r5android-vts-8.1_r4android-vts-8.1_r3android-vts-8.1_r14android-vts-8.1_r13android-vts-8.1_r12android-vts-8.1_r11android-vts-8.1_r10android-security-8.1.0_r93android-security-8.1.0_r92android-security-8.1.0_r91android-security-8.1.0_r90android-security-8.1.0_r89android-security-8.1.0_r88android-security-8.1.0_r87android-security-8.1.0_r86android-security-8.1.0_r85android-security-8.1.0_r84android-security-8.1.0_r83android-security-8.1.0_r82android-cts-8.1_r9android-cts-8.1_r8android-cts-8.1_r7android-cts-8.1_r6android-cts-8.1_r5android-cts-8.1_r4android-cts-8.1_r3android-cts-8.1_r25android-cts-8.1_r24android-cts-8.1_r23android-cts-8.1_r22android-cts-8.1_r21android-cts-8.1_r20android-cts-8.1_r2android-cts-8.1_r19android-cts-8.1_r18android-cts-8.1_r17android-cts-8.1_r16android-cts-8.1_r15android-cts-8.1_r14android-cts-8.1_r13android-cts-8.1_r12android-cts-8.1_r11android-cts-8.1_r10android-cts-8.1_r1android-8.1.0_r9android-8.1.0_r81android-8.1.0_r80android-8.1.0_r8android-8.1.0_r79android-8.1.0_r78android-8.1.0_r77android-8.1.0_r76android-8.1.0_r75android-8.1.0_r74android-8.1.0_r73android-8.1.0_r72android-8.1.0_r71android-8.1.0_r70android-8.1.0_r7android-8.1.0_r69android-8.1.0_r68android-8.1.0_r67android-8.1.0_r66android-8.1.0_r65android-8.1.0_r64android-8.1.0_r63android-8.1.0_r62android-8.1.0_r61android-8.1.0_r60android-8.1.0_r6android-8.1.0_r53android-8.1.0_r52android-8.1.0_r51android-8.1.0_r50android-8.1.0_r5android-8.1.0_r48android-8.1.0_r47android-8.1.0_r46android-8.1.0_r45android-8.1.0_r43android-8.1.0_r42android-8.1.0_r41android-8.1.0_r40android-8.1.0_r4android-8.1.0_r39android-8.1.0_r38android-8.1.0_r37android-8.1.0_r36android-8.1.0_r35android-8.1.0_r33android-8.1.0_r32android-8.1.0_r31android-8.1.0_r30android-8.1.0_r3android-8.1.0_r29android-8.1.0_r28android-8.1.0_r27android-8.1.0_r26android-8.1.0_r25android-8.1.0_r23android-8.1.0_r22android-8.1.0_r21android-8.1.0_r20android-8.1.0_r2android-8.1.0_r19android-8.1.0_r18android-8.1.0_r17android-8.1.0_r16android-8.1.0_r15android-8.1.0_r14android-8.1.0_r13android-8.1.0_r12android-8.1.0_r11android-8.1.0_r10android-8.1.0_r1security-oc-mr1-releaseoreo-mr1-wear-releaseoreo-mr1-vts-releaseoreo-mr1-security-releaseoreo-mr1-s1-releaseoreo-mr1-releaseoreo-mr1-cuttlefish-testingoreo-mr1-cts-releaseoreo-m8-releaseoreo-m7-releaseoreo-m6-s4-releaseoreo-m6-s3-releaseoreo-m6-s2-releaseoreo-m5-releaseoreo-m4-s9-releaseoreo-m4-s8-releaseoreo-m4-s7-releaseoreo-m4-s6-releaseoreo-m4-s5-releaseoreo-m4-s4-releaseoreo-m4-s3-releaseoreo-m4-s2-releaseoreo-m4-s12-releaseoreo-m4-s11-releaseoreo-m4-s10-releaseoreo-m4-s1-releaseoreo-m3-releaseoreo-m2-s5-releaseoreo-m2-s4-releaseoreo-m2-s3-releaseoreo-m2-s2-releaseoreo-m2-s1-releaseoreo-m2-release
Change-Id: Ibe5fa75311ac09ead32f54e193f729faea132277
-rwxr-xr-xDRM/cc54/inc/wv_mod_drm_api.h87
-rwxr-xr-xDRM/cc54/inc/wv_mod_drm_error.h12
-rwxr-xr-xDRM/cc54/inc/wv_mod_oem_crypto.h10
3 files changed, 100 insertions, 9 deletions
diff --git a/DRM/cc54/inc/wv_mod_drm_api.h b/DRM/cc54/inc/wv_mod_drm_api.h
index 4e5cab0..d3be933 100755
--- a/DRM/cc54/inc/wv_mod_drm_api.h
+++ b/DRM/cc54/inc/wv_mod_drm_api.h
@@ -165,7 +165,8 @@ uint32_t drm_wv_mod_v9_load_keys(uint32_t session_id,
uint32_t num_keys,
const struct drm_wv_mod_key_object *key_array,
const uint8_t *pst,
- uint32_t pst_length);
+ uint32_t pst_length,
+ const uint8_t *srm_restriction_data);
uint32_t drm_wv_mod_v9_generate_rsa_signature(uint32_t session_id,
const uint8_t *message,
@@ -213,7 +214,6 @@ uint32_t drm_wv_mod_load_usage_table(const uint8_t *const usage_table_data,
* Flag indicating if the table has changed since the last
* update_usage_table or load_usage_table call.
*
- * TODO: Return documentation
*/
uint32_t drm_wv_mod_update_usage_table(uint8_t *const usage_table_data,
uint32_t data_size,
@@ -221,8 +221,8 @@ uint32_t drm_wv_mod_update_usage_table(uint8_t *const usage_table_data,
// NOTE: drm_wv_mod_update_usage_table shall be called after calling this
// function
-// TODO: Documentation
-uint32_t drm_wv_mod_deactivate_usage_entry(const uint8_t *const pst,
+uint32_t drm_wv_mod_deactivate_usage_entry(uint32_t session_id,
+ const uint8_t *const pst,
uint32_t pst_length);
/**
@@ -243,7 +243,6 @@ uint32_t drm_wv_mod_deactivate_usage_entry(const uint8_t *const pst,
* sizeof(struct OEMCrypto_PST_Report) in length. If extra space is provided,
* this field will reflect the actual size of the returned report.
*
- * TODO: Return documentation
*/
uint32_t drm_wv_mod_report_usage(uint32_t session_id,
const uint8_t *const pst,
@@ -271,7 +270,6 @@ uint32_t drm_wv_mod_report_usage(uint32_t session_id,
* @param[in] signature_length
* Length of signature buffer in bytes
*
- * TODO: Return Documentation
*/
uint32_t drm_wv_mod_delete_usage_entry(uint32_t session_id,
const uint8_t *const pst,
@@ -283,7 +281,6 @@ uint32_t drm_wv_mod_delete_usage_entry(uint32_t session_id,
// This will only clear Chaabi TEE memory. Caller is responsible for deleting
// usage table file from file system.
-// TODO: Documentation
uint32_t drm_wv_mod_delete_usage_table(void);
@@ -350,4 +347,80 @@ uint32_t drm_wv_mod_glue_block(uint32_t session_id,
uint32_t cleartext_length,
const uint8_t *iv);
+/*! Version 13 specific APIs */
+
+/*!
+ * Create a new Usage Table Header with no entries.
+ */
+uint32_t drm_wv_mod_create_usage_table_header(uint8_t *header_buffer,
+ uint32_t *header_buffer_length,
+ uint64_t system_time);
+
+/*!
+ * Loads the usage table header into TEE.
+ */
+uint32_t drm_wv_mod_load_usage_table_header(const uint8_t *buffer,
+ uint32_t buffer_length,
+ uint64_t system_time);
+
+/*!
+ * Create a new usage entry.
+ */
+uint32_t drm_wv_mod_create_new_usage_entry(uint32_t session_id,
+ uint32_t *usage_entry_number);
+
+/*!
+ * Load a usage table saved by update usage entry.
+ */
+uint32_t drm_wv_mod_load_usage_entry(uint32_t session_id,
+ uint32_t index,
+ const uint8_t *buffer,
+ uint32_t buffer_length);
+
+/*!
+ * Updates session usage entry.
+ */
+uint32_t drm_wv_mod_update_usage_entry(uint32_t session_id,
+ uint8_t *header_buffer,
+ uint32_t *header_buffer_length,
+ uint8_t *entry_buffer,
+ uint32_t *entry_buffer_length);
+
+/*!
+ * Move usage entry with current session from one location in header to another.
+ */
+uint32_t drm_wv_mod_move_entry(uint32_t session_id,
+ uint32_t new_index);
+
+/*!
+ * Shrinks the usage table and the header.
+ */
+uint32_t drm_wv_mod_shrink_usage_table_header(uint32_t new_entry_count,
+ uint8_t *header_buffer,
+ uint32_t *header_buffer_length);
+
+/*!
+ * Copies an entry from old v12(or earlier) usage table to new table.
+ */
+uint32_t drm_wv_mod_copy_old_usage_entry(uint32_t session_id,
+ const uint8_t *pst,
+ uint32_t pst_length);
+
+/*!
+ * Delete the old usage table.
+ */
+uint32_t drm_wv_mod_delete_old_usage_table(void);
+
+/*!
+ * Create old usage entry.
+ */
+uint32_t drm_wv_mod_create_old_usage_entry(uint64_t time_since_license_received,
+ uint64_t time_since_first_decrypt,
+ uint64_t time_since_last_decrypt,
+ enum drm_wv_mod_usage_entry_status status,
+ uint8_t *server_mac_key,
+ uint8_t *client_mac_key,
+ const uint8_t *pst,
+ uint32_t pst_length);
+
#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 b10c2eb..6b33d08 100755
--- a/DRM/cc54/inc/wv_mod_drm_error.h
+++ b/DRM/cc54/inc/wv_mod_drm_error.h
@@ -58,7 +58,7 @@ enum drm_wv_mod_result
DRM_WV_MOD_ENCRYPTION_DECRYPTION_SIZE_INCORRECT,
DRM_WV_MOD_ERROR_BUFFER_TOO_SMALL,
DRM_WV_MOD_ERROR_BUFFER_TYPE_INVALID,
- DRM_WV_MOD_ERROR_DATA_SIZE_TOO_LARGE,
+ DRM_WV_MOD_ERROR_BUFFER_TOO_LARGE,
DRM_WV_MOD_ERROR_RETURN_BUFFER_TOO_SMALL,
DRM_WV_MOD_ERROR_DMA_DATA_SIZE_TOO_LARGE,
DRM_WV_MOD_ERROR_NONCE_GENERATION_FAILURE,
@@ -74,7 +74,15 @@ enum drm_wv_mod_result
DRM_WV_MOD_ERROR_INVALID_USAGE_TABLE_GENERATION_NUM,
DRM_WV_MOD_ERROR_INVALID_USAGE_TABLE_MAGIC,
DRM_WV_MOD_ERROR_USAGE_TABLE_NOT_INITIALIZED,
- DRM_WV_MOD_ERROR_INVALID_CIPHER_MODE
+ DRM_WV_MOD_ERROR_INVALID_CIPHER_MODE,
+ DRM_WV_MOD_ERROR_GENERATION_NUM_SKEW,
+ DRM_WV_MOD_WARNING_GENERATION_NUM_SKEW,
+ DRM_WV_MOD_ERROR_ENTRY_IN_USE,
+ DRM_WV_MOD_ERROR_ENTRY_NEEDS_UPDATE,
+ DRM_WV_MOD_ERROR_ANALOG_OUTPUT,
+ DRM_WV_MOD_ERROR_WRONG_PST,
+ DRM_WV_MOD_ERROR_MISSING_MASTER,
+ DRM_WV_MOD_ERROR_LICENSE_INACTIVE
};
#endif
diff --git a/DRM/cc54/inc/wv_mod_oem_crypto.h b/DRM/cc54/inc/wv_mod_oem_crypto.h
index 42ed033..bdba935 100755
--- a/DRM/cc54/inc/wv_mod_oem_crypto.h
+++ b/DRM/cc54/inc/wv_mod_oem_crypto.h
@@ -32,6 +32,16 @@ enum drm_wv_mod_rsa_padding_scheme
DRM_WV_MOD_RSA_PADDING_SCHEME_MAX_VALUE
};
+enum drm_wv_mod_usage_entry_status
+{
+ k_free = -1,
+ k_unused = 0,
+ k_active = 1,
+ k_inactive = 2, // deprecated in v13
+ k_inactive_used = 3,
+ k_inactive_unused = 4
+};
+
struct drm_wv_mod_key_object
{
const uint8_t *key_id;