Commits

Gilles Moris committed 1d2b52a

Fix for openssl 0.9.8b by using temporary file

Comments (0)

Files changed (1)

 
 
 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):
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.