| #!/usr/bin/env python |
| |
| from argparse import ArgumentParser |
| from argparse import FileType |
| import os |
| import sys |
| import tpm2 |
| |
| |
| def main(): |
| parser = ArgumentParser(description='Create a storage root key') |
| parser.add_argument('--debug', |
| action='store_true', |
| help='dump TPM commands and replies') |
| parser.add_argument('--name-alg', dest='name_alg', metavar='NAMEALG', |
| help='hash algorithm', |
| type=tpm2.get_algorithm, default='sha1') |
| |
| args = parser.parse_args() |
| |
| flags = 0 |
| |
| if args.debug: |
| flags |= tpm2.Client.FLAG_DEBUG |
| |
| client = tpm2.Client(flags) |
| |
| try: |
| for i in xrange(0, 16): |
| h = client.read_pcr(i, bank_alg=args.name_alg) |
| print("%02d: %s" % (i, h.encode('hex'))) |
| |
| except tpm2.ProtocolError, e: |
| sys.stderr.write(str(e) + os.linesep) |
| sys.exit(1) |
| |
| if __name__ == '__main__': |
| main() |