From 0923b3973592af3b654d5b50259326c2d1dbe2f2 Mon Sep 17 00:00:00 2001
From: Daira Hopwood <daira@jacaranda.org>
Date: Thu, 5 Sep 2013 17:45:44 +0100
Subject: [PATCH] Mon May 14 04:23:52 BST 2012  david-sarah@jacaranda.org   *
 Suppress the PowmInsecureWarning from PyCrypto. refs #1586

---
 src/allmydata/__init__.py   | 8 ++++----
 src/allmydata/_auto_deps.py | 4 ++++
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/allmydata/__init__.py b/src/allmydata/__init__.py
index 37264d05..4ddea757 100644
--- a/src/allmydata/__init__.py
+++ b/src/allmydata/__init__.py
@@ -145,7 +145,7 @@ def normalized_version(verstr, what=None):
 def get_package_versions_and_locations():
     import warnings
     from _auto_deps import package_imports, deprecation_messages, \
-        user_warning_messages, warning_imports
+        user_warning_messages, runtime_warning_messages, warning_imports
 
     def package_dir(srcfile):
         return os.path.dirname(os.path.dirname(os.path.normcase(os.path.realpath(srcfile))))
@@ -168,6 +168,8 @@ def get_package_versions_and_locations():
         warnings.filterwarnings("ignore", category=DeprecationWarning, message=msg, append=True)
     for msg in user_warning_messages:
         warnings.filterwarnings("ignore", category=UserWarning, message=msg, append=True)
+    for msg in runtime_warning_messages:
+        warnings.filterwarnings("ignore", category=RuntimeWarning, message=msg, append=True)
     try:
         for modulename in warning_imports:
             try:
@@ -175,9 +177,7 @@ def get_package_versions_and_locations():
             except ImportError:
                 pass
     finally:
-        for ign in user_warning_messages:
-            warnings.filters.pop()
-        for ign in deprecation_messages:
+        for ign in runtime_warning_messages + user_warning_messages + deprecation_messages:
             warnings.filters.pop()
 
     packages = []
diff --git a/src/allmydata/_auto_deps.py b/src/allmydata/_auto_deps.py
index aa649ce5..37acb4b2 100644
--- a/src/allmydata/_auto_deps.py
+++ b/src/allmydata/_auto_deps.py
@@ -121,6 +121,10 @@ user_warning_messages = [
     "Hashing uninitialized InterfaceClass instance",
 ]
 
+runtime_warning_messages = [
+    "Not using mpz_powm_sec.  You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.",
+]
+
 warning_imports = [
     'nevow',
     'twisted.persisted.sob',
-- 
2.45.2