Added --all-transient option to tpm2-flush

Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
diff --git a/tpm2-flush b/tpm2-flush
index 586c6dc..9e3bbf8 100755
--- a/tpm2-flush
+++ b/tpm2-flush
@@ -7,12 +7,15 @@
 import tpm2
 
 def main():
-    parser = ArgumentParser(description='Create a storage root key')
+    parser = ArgumentParser(description='Flush a volatile contetxt')
     parser.add_argument('--debug',
                         action='store_true',
                         help = 'dump TPM commands and replies')
+    parser.add_argument('--all-transient',
+                        action='store_true',
+                        help = 'flush all transient handles')
     parser.add_argument('handles', metavar='H', type = (lambda x: int(x, 0)),
-                        nargs='+', help = 'a TPM resource handle')
+                        nargs='*', help = 'a TPM resource handle')
     args = parser.parse_args()
 
     flags = 0
@@ -22,12 +25,13 @@
 
     client = tpm2.Client(flags)
 
-    if len(args.handles) == 0:
-        parser.print_help()
-        sys.exit(1)
+    if args.all_transient:
+        handles = client.get_cap(tpm2.TPM2_CAP_HANDLES, tpm2.HR_TRANSIENT)
+    else:
+        handles = args.handles
 
     try:
-        for h in args.handles:
+        for h in handles:
             client.flush_context(h)
     except tpm2.ProtocolError, e:
         sys.stderr.write(str(e) + os.linesep)