docs: def _init_ssl(self):
          """
          Initializes our device as an SSL connection.
  
          :raises: :py:class:`~alarmdecoder.util.CommError`
          """
  
          if not have_openssl:
              raise ImportError('SSL sockets have been disabled due to missing requirement: pyopenssl.')
  
          try:
              ctx = SSL.Context(SSL.TLSv1_METHOD)
  
              if isinstance(self.ssl_key, crypto.PKey):
                  ctx.use_privatekey(self.ssl_key)
              else:
                  ctx.use_privatekey_file(self.ssl_key)
  
              if isinstance(self.ssl_certificate, crypto.X509):
                  ctx.use_certificate(self.ssl_certificate)
              else:
                  ctx.use_certificate_file(self.ssl_certificate)
  
              if isinstance(self.ssl_ca, crypto.X509):
                  store = ctx.get_cert_store()
                  store.add_cert(self.ssl_ca)
              else:
                  ctx.load_verify_locations(self.ssl_ca, None)
  
              verify_method = SSL.VERIFY_PEER
              if (self._ssl_allow_self_signed):
                  verify_method = SSL.VERIFY_NONE
  
              ctx.set_verify(verify_method, self._verify_ssl_callback)
  
              self._device = SSL.Connection(ctx, self._device)
  
          except SSL.Error as err:
              raise CommError('Error setting up SSL connection.', err)