1. Thejesh GN
  2. commitsigs

Commits

Gilles Moris  committed 1d2b52a

Fix for openssl 0.9.8b by using temporary file

  • Participants
  • Parent commits 5579cb5
  • Branches default

Comments (0)

Files changed (1)

File commitsigs.py

View file
 
 
 def opensslsign(msg):
-    cmd = [CONFIG["openssl.path"], "smime", "-sign", "-outform", "pem",
-           "-signer", CONFIG["openssl.certificate"]]
-    p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
-    sig = p.communicate(msg)[0]
-    return sig
+    try:
+        fd, filename = tempfile.mkstemp(prefix="hg-", suffix=".msg")
+        fp = os.fdopen(fd, 'wb')
+        fp.write(msg)
+        fp.close()
+
+
+        cmd = [CONFIG["openssl.path"], "smime", "-sign", "-outform", "pem",
+               "-signer", CONFIG["openssl.certificate"], "-in", filename]
+        p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
+        sig = p.communicate()[0]
+        return sig
+    finally:
+        try:
+            os.unlink(filename)
+        except OSError:
+            pass
 
 
 def opensslverify(msg, sig, quiet=False):