Mail Account SSL Issue: Frappe requires OpenSSL, fails with LibreSSL

Dear All,
I have a fully functional, self-hosted e-mail system running FreeBSD with Qmail-LDAP and Dovecot on my dedicated root server, which has been working nicely for many years, and has been kept up-to-date accordingly. Of course, I use TLS throughout.
I want to set up the ERPNext domain and the respective mail accounts to use the above mail infrastructure and get the following, whenever I try to save a new mail account (which has to “speak” SSL/TLS):

Traceback (most recent call last):
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/desk/form/save.py", line 22, in savedocs
    doc.save()
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 223, in save
    return self._save(*args, **kwargs)
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 259, in _save
    self._validate()
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 395, in _validate
    self._save_passwords()
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/model/base_document.py", line 648, in _save_passwords
    set_encrypted_password(self.doctype, self.name, new_password, df.fieldname)
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/utils/password.py", line 25, in set_encrypted_password
    { 'doctype': doctype, 'name': name, 'fieldname': fieldname, 'pwd': encrypt(pwd) })
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/utils/password.py", line 95, in encrypt
    cipher_suite = Fernet(encode(get_encryption_key()))
  File "/usr/local/frappe/frappe-bench/env/lib/python2.7/site-packages/cryptography/fernet.py", line 32, in __init__
    backend = default_backend()
  File "/usr/local/frappe/frappe-bench/env/lib/python2.7/site-packages/cryptography/hazmat/backends/__init__.py", line 71, in default_backend
    _default_backend = MultiBackend(_available_backends())
  File "/usr/local/frappe/frappe-bench/env/lib/python2.7/site-packages/cryptography/hazmat/backends/__init__.py", line 28, in _available_backends
    "cryptography.backends"
  File "/usr/local/frappe/frappe-bench/env/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2297, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/local/frappe/frappe-bench/env/lib/python2.7/site-packages/cryptography/hazmat/backends/openssl/__init__.py", line 7, in 
    from cryptography.hazmat.backends.openssl.backend import backend
  File "/usr/local/frappe/frappe-bench/env/lib/python2.7/site-packages/cryptography/hazmat/backends/openssl/backend.py", line 51, in 
    from cryptography.hazmat.bindings._openssl import ffi as _ffi
ImportError: /usr/local/frappe/frappe-bench/env/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so: Undefined symbol "CMS_decrypt"
Traceback (most recent call last):
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/app.py", line 56, in application
    response = frappe.handler.handle()
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 19, in handle
    execute_cmd(cmd)
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/handler.py", line 42, in execute_cmd
    ret = frappe.call(method, **frappe.form_dict)
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 903, in call
    return fn(*args, **newargs)
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/desk/form/save.py", line 22, in savedocs
    doc.save()
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 223, in save
    return self._save(*args, **kwargs)
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 259, in _save
    self._validate()
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 395, in _validate
    self._save_passwords()
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/model/base_document.py", line 648, in _save_passwords
    set_encrypted_password(self.doctype, self.name, new_password, df.fieldname)
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/utils/password.py", line 25, in set_encrypted_password
    { 'doctype': doctype, 'name': name, 'fieldname': fieldname, 'pwd': encrypt(pwd) })
  File "/usr/local/frappe/frappe-bench/apps/frappe/frappe/utils/password.py", line 95, in encrypt
    cipher_suite = Fernet(encode(get_encryption_key()))
  File "/usr/local/frappe/frappe-bench/env/lib/python2.7/site-packages/cryptography/fernet.py", line 32, in __init__
    backend = default_backend()
  File "/usr/local/frappe/frappe-bench/env/lib/python2.7/site-packages/cryptography/hazmat/backends/__init__.py", line 71, in default_backend
    _default_backend = MultiBackend(_available_backends())
  File "/usr/local/frappe/frappe-bench/env/lib/python2.7/site-packages/cryptography/hazmat/backends/__init__.py", line 28, in _available_backends
    "cryptography.backends"
  File "/usr/local/frappe/frappe-bench/env/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2297, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/local/frappe/frappe-bench/env/lib/python2.7/site-packages/cryptography/hazmat/backends/openssl/__init__.py", line 7, in 
    from cryptography.hazmat.backends.openssl.backend import backend
  File "/usr/local/frappe/frappe-bench/env/lib/python2.7/site-packages/cryptography/hazmat/backends/openssl/backend.py", line 51, in 
    from cryptography.hazmat.bindings._openssl import ffi as _ffi
ImportError: /usr/local/frappe/frappe-bench/env/lib/python2.7/site-packages/cryptography/hazmat/bindings/_openssl.so: Undefined symbol "CMS_decrypt"

Sorry for the long mail, but I am not sure what to do with the Undefined symbol "CMS_decrypt" error. Any hints or ideas? Thanks a lot!
Chris

Hi there,
I seem to be the only one. Can this be?
Chris

And here is the reason: I have deployed LibreSSL on my system throughout. Frappe’s hazmat requirement doesn’t like it. I had to install OpenSSL version 1.0.2j to get things going.
It may be useful to list this in the requirements for ERPNext?
Chris