Different warning messages for different versions of Python
diff --git a/OpenSSL/crypto.py b/OpenSSL/crypto.py
index e8b6d3c..b671d9e 100644
--- a/OpenSSL/crypto.py
+++ b/OpenSSL/crypto.py
@@ -1,4 +1,5 @@
-import warnings
+from warnings import warn
+from sys import version_info
from time import time
from base64 import b16encode
from functools import partial
@@ -1956,7 +1957,12 @@
# Backward compatibility
if isinstance(passphrase, _text_type):
- warnings.warn("str object in passphrase is no longer accepted, use bytes", DeprecationWarning)
+ if version_info.major == 2:
+ warn("unicode in passphrase is no longer accepted, use bytes", DeprecationWarning)
+ elif version_info.major == 3:
+ warn("str in passphrase is no longer accepted, use bytes", DeprecationWarning)
+ else:
+ warn("text in passphrase is no longer accepted, use bytes", DeprecationWarning)
passphrase = passphrase.encode('utf-8')
if self._cacerts is None:
@@ -2259,7 +2265,12 @@
# Backward compatibility
if isinstance(data, _text_type):
- warnings.warn("str object in passphrase is no longer accepted, use bytes", DeprecationWarning)
+ if version_info.major == 2:
+ warn("unicode in passphrase is no longer accepted, use bytes", DeprecationWarning)
+ elif version_info.major == 3:
+ warn("str in passphrase is no longer accepted, use bytes", DeprecationWarning)
+ else:
+ warn("text in passphrase is no longer accepted, use bytes", DeprecationWarning)
data = data.encode('utf-8')
digest_obj = _lib.EVP_get_digestbyname(_byte_string(digest))
@@ -2299,7 +2310,12 @@
# Backward compatibility
if isinstance(data, _text_type):
- warnings.warn("str object in passphrase is no longer accepted, use bytes", DeprecationWarning)
+ if version_info.major == 2:
+ warn("unicode in passphrase is no longer accepted, use bytes", DeprecationWarning)
+ elif version_info.major == 3:
+ warn("str in passphrase is no longer accepted, use bytes", DeprecationWarning)
+ else:
+ warn("text in passphrase is no longer accepted, use bytes", DeprecationWarning)
data = data.encode('utf-8')
digest_obj = _lib.EVP_get_digestbyname(_byte_string(digest))
@@ -2396,7 +2412,12 @@
# Backward compatibility
if isinstance(passphrase, _text_type):
- warnings.warn("str object in passphrase is no longer accepted, use bytes", DeprecationWarning)
+ if version_info.major == 2:
+ warn("unicode in passphrase is no longer accepted, use bytes", DeprecationWarning)
+ elif version_info.major == 3:
+ warn("str in passphrase is no longer accepted, use bytes", DeprecationWarning)
+ else:
+ warn("text in passphrase is no longer accepted, use bytes", DeprecationWarning)
passphrase = passphrase.encode('utf-8')
if isinstance(buffer, _text_type):