- use temporary home directory since apache user does not have write
authorMark Huang <mlhuang@cs.princeton.edu>
Fri, 5 Jan 2007 18:50:40 +0000 (18:50 +0000)
committerMark Huang <mlhuang@cs.princeton.edu>
Fri, 5 Jan 2007 18:50:40 +0000 (18:50 +0000)
  access to its own home directory or /etc/planetlab

PLC/GPG.py

index ce86422..0101e47 100644 (file)
@@ -7,7 +7,7 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2006 The Trustees of Princeton University
 #
-# $Id$
+# $Id: GPG.py,v 1.1 2006/12/15 18:21:57 mlhuang Exp $
 #
 
 import xmlrpclib
@@ -45,7 +45,9 @@ def gpg_sign(methodname, args, secret_keyring, keyring):
 
     message = canonicalize(methodname, args)
 
+    homedir = mkdtemp()
     p = Popen(["gpg", "--batch", "--no-tty",
+               "--homedir", homedir,
                "--no-default-keyring",
                "--secret-keyring", secret_keyring,
                "--keyring", keyring,
@@ -55,6 +57,10 @@ def gpg_sign(methodname, args, secret_keyring, keyring):
     p.stdin.close()
     signature = p.stdout.read()
     rc = p.wait()
+
+    # Clean up
+    shutil.rmtree(homedir)
+
     if rc:
         raise PLCAuthenticationFailure, "GPG signing failed with return code %d" % rc