in cvm-attestation/tpm_wrapper.py [0:0]
def get_pcr_values(self, pcr_list):
tpm = Tpm()
tpm.connect()
self.log.info('Reading PCR Values from the TPM...')
pcr_select = self.get_pcr_select(pcr_list)
pcr_values = []
pcr_values_count = 0
maskSum = 1
while maskSum != 0:
ret = tpm.PCR_Read(pcr_select)
pcrVals = ret.pcrValues
pcrSel = ret.pcrSelectionOut
if pcrVals and pcrSel:
index = 0
for value in pcrVals:
pcr = PcrValue(pcr_values_count, value.buffer)
pcr_values.insert(pcr_values_count, pcr)
index = index + 1
pcr_values_count = pcr_values_count + 1
pcr_values_count = pcr_values_count + 3
self.log.info(pcr_select[0].pcrSelect)
maskSum = 0
i = 0
while i < len(pcrSel[0].pcrSelect):
pcr_select[0].pcrSelect[i] &= (~pcrSel[0].pcrSelect[i])
maskSum = maskSum + pcr_select[0].pcrSelect[i]
i = i + 1
self.log.info('Done reading PCR values')
tpm.close()
return pcr_values