OLD | NEW |
1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
2 * Use of this source code is governed by a BSD-style license that can be | 2 * Use of this source code is governed by a BSD-style license that can be |
3 * found in the LICENSE file. | 3 * found in the LICENSE file. |
4 */ | 4 */ |
5 | 5 |
6 /* A lightweight TPM command library. | 6 /* A lightweight TPM command library. |
7 * | 7 * |
8 * The general idea is that TPM commands are array of bytes whose | 8 * The general idea is that TPM commands are array of bytes whose |
9 * fields are mostly compile-time constant. The goal is to build much | 9 * fields are mostly compile-time constant. The goal is to build much |
10 * of the commands at compile time (or build time) and change some of | 10 * of the commands at compile time (or build time) and change some of |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
283 | 283 |
284 uint32_t TlclGetPermissions(uint32_t index, uint32_t* permissions) { | 284 uint32_t TlclGetPermissions(uint32_t index, uint32_t* permissions) { |
285 struct s_tpm_getpermissions_cmd cmd; | 285 struct s_tpm_getpermissions_cmd cmd; |
286 uint8_t response[TPM_LARGE_ENOUGH_COMMAND_SIZE]; | 286 uint8_t response[TPM_LARGE_ENOUGH_COMMAND_SIZE]; |
287 uint8_t* nvdata; | 287 uint8_t* nvdata; |
288 uint32_t result; | 288 uint32_t result; |
289 uint32_t size; | 289 uint32_t size; |
290 | 290 |
291 Memcpy(&cmd, &tpm_getpermissions_cmd, sizeof(cmd)); | 291 Memcpy(&cmd, &tpm_getpermissions_cmd, sizeof(cmd)); |
292 ToTpmUint32(cmd.buffer + tpm_getpermissions_cmd.index, index); | 292 ToTpmUint32(cmd.buffer + tpm_getpermissions_cmd.index, index); |
293 TlclSendReceive(tpm_getpermissions_cmd.buffer, response, sizeof(response)); | 293 TlclSendReceive(cmd.buffer, response, sizeof(response)); |
294 result = TpmReturnCode(response); | 294 result = TpmReturnCode(response); |
295 if (result != TPM_SUCCESS) { | 295 if (result != TPM_SUCCESS) { |
296 return result; | 296 return result; |
297 } | 297 } |
298 nvdata = response + kTpmResponseHeaderLength + sizeof(size); | 298 nvdata = response + kTpmResponseHeaderLength + sizeof(size); |
299 FromTpmUint32(nvdata + kNvDataPublicPermissionsOffset, permissions); | 299 FromTpmUint32(nvdata + kNvDataPublicPermissionsOffset, permissions); |
300 return result; | 300 return result; |
301 } | 301 } |
OLD | NEW |