| Index: src/tlcl/tlcl.c
|
| diff --git a/src/tlcl/tlcl.c b/src/tlcl/tlcl.c
|
| index 524cf2e544c4d35ba273975d7adf85ab60657450..4ef5e40b5b5b068d71076f58e71780ef68aa1687 100644
|
| --- a/src/tlcl/tlcl.c
|
| +++ b/src/tlcl/tlcl.c
|
| @@ -350,7 +350,7 @@ uint32_t TlclGetFlags(uint8_t* disable, uint8_t* deactivated) {
|
| uint32_t result;
|
| uint32_t size;
|
|
|
| - SendReceive(tpm_getcapability_cmd.buffer, response, sizeof(response));
|
| + SendReceive(tpm_getflags_cmd.buffer, response, sizeof(response));
|
| result = TpmReturnCode(response);
|
| if (result != TPM_SUCCESS) {
|
| return result;
|
| @@ -377,3 +377,20 @@ uint32_t TlclExtend(int pcr_num, uint8_t* in_digest, uint8_t* out_digest) {
|
| memcpy(out_digest, response + kTpmResponseHeaderLength, kPcrDigestLength);
|
| return TpmReturnCode(response);
|
| }
|
| +
|
| +uint32_t TlclGetPermissions(uint32_t index, uint32_t* permissions) {
|
| + uint8_t response[TPM_LARGE_ENOUGH_COMMAND_SIZE];
|
| + uint8_t* nvdata;
|
| + uint32_t result;
|
| + uint32_t size;
|
| +
|
| + ToTpmUint32(tpm_getpermissions_cmd.index, index);
|
| + SendReceive(tpm_getpermissions_cmd.buffer, response, sizeof(response));
|
| + result = TpmReturnCode(response);
|
| + if (result != TPM_SUCCESS) {
|
| + return result;
|
| + }
|
| + nvdata = response + kTpmResponseHeaderLength + sizeof(size);
|
| + FromTpmUint32(nvdata + kNvDataPublicPermissionsOffset, permissions);
|
| + return result;
|
| +}
|
|
|