diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-08-10 08:04:19 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-08-10 08:04:19 +0000 |
commit | 39a98f0743acf50bba033912b6d5af38085d1535 (patch) | |
tree | dd3612797ac08fc7ac12e2ab2b9cff5a8f0be9a7 | |
parent | e687be6aec584d22b45520dd7ea0eb76046a9069 (diff) | |
parent | fcb44a02bf27c4eb1fdbff2f259756c42306152c (diff) | |
download | psb_headers-pie-release.tar.gz |
release-request-0b474cbb-ff20-424d-a570-a0a7b83a7705-for-git_pi-release-4262110 snap-temp-L42700000091449286android-wear-9.0.0_r9android-wear-9.0.0_r8android-wear-9.0.0_r7android-wear-9.0.0_r6android-wear-9.0.0_r5android-wear-9.0.0_r4android-wear-9.0.0_r34android-wear-9.0.0_r33android-wear-9.0.0_r32android-wear-9.0.0_r31android-wear-9.0.0_r30android-wear-9.0.0_r3android-wear-9.0.0_r29android-wear-9.0.0_r28android-wear-9.0.0_r27android-wear-9.0.0_r26android-wear-9.0.0_r25android-wear-9.0.0_r24android-wear-9.0.0_r23android-wear-9.0.0_r22android-wear-9.0.0_r21android-wear-9.0.0_r20android-wear-9.0.0_r2android-wear-9.0.0_r19android-wear-9.0.0_r18android-wear-9.0.0_r17android-wear-9.0.0_r16android-wear-9.0.0_r15android-wear-9.0.0_r14android-wear-9.0.0_r13android-wear-9.0.0_r12android-wear-9.0.0_r11android-wear-9.0.0_r10android-wear-9.0.0_r1android-vts-9.0_r9android-vts-9.0_r8android-vts-9.0_r7android-vts-9.0_r6android-vts-9.0_r5android-vts-9.0_r4android-vts-9.0_r19android-vts-9.0_r18android-vts-9.0_r17android-vts-9.0_r16android-vts-9.0_r15android-vts-9.0_r14android-vts-9.0_r13android-vts-9.0_r12android-vts-9.0_r11android-vts-9.0_r10android-security-9.0.0_r76android-security-9.0.0_r75android-security-9.0.0_r74android-security-9.0.0_r73android-security-9.0.0_r72android-security-9.0.0_r71android-security-9.0.0_r70android-security-9.0.0_r69android-security-9.0.0_r68android-security-9.0.0_r67android-security-9.0.0_r66android-security-9.0.0_r65android-security-9.0.0_r64android-security-9.0.0_r63android-security-9.0.0_r62android-cts-9.0_r9android-cts-9.0_r8android-cts-9.0_r7android-cts-9.0_r6android-cts-9.0_r5android-cts-9.0_r4android-cts-9.0_r3android-cts-9.0_r20android-cts-9.0_r2android-cts-9.0_r19android-cts-9.0_r18android-cts-9.0_r17android-cts-9.0_r16android-cts-9.0_r15android-cts-9.0_r14android-cts-9.0_r13android-cts-9.0_r12android-cts-9.0_r11android-cts-9.0_r10android-cts-9.0_r1android-9.0.0_r9android-9.0.0_r8android-9.0.0_r7android-9.0.0_r61android-9.0.0_r60android-9.0.0_r6android-9.0.0_r59android-9.0.0_r58android-9.0.0_r57android-9.0.0_r56android-9.0.0_r55android-9.0.0_r54android-9.0.0_r53android-9.0.0_r52android-9.0.0_r51android-9.0.0_r50android-9.0.0_r5android-9.0.0_r49android-9.0.0_r48android-9.0.0_r3android-9.0.0_r2android-9.0.0_r18android-9.0.0_r17android-9.0.0_r10android-9.0.0_r1security-pi-releasepie-vts-releasepie-security-releasepie-s2-releasepie-release-2pie-releasepie-r2-s2-releasepie-r2-s1-releasepie-r2-releasepie-platform-releasepie-gsipie-cuttlefish-testingpie-cts-release
Change-Id: I0eae5859de1713bdfa481411f4adb17867027e53
-rwxr-xr-x | DRM/cc54/inc/wv_mod_drm_api.h | 87 | ||||
-rwxr-xr-x | DRM/cc54/inc/wv_mod_drm_error.h | 12 | ||||
-rwxr-xr-x | DRM/cc54/inc/wv_mod_oem_crypto.h | 10 |
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; |