=== modified file 'mandos' --- mandos 2019-07-14 23:39:53 +0000 +++ mandos 2019-07-28 14:39:47 +0000 @@ -586,7 +586,7 @@ def __init__(self, socket, credentials=None): self._c_object = gnutls.session_t() gnutls_flags = gnutls.CLIENT - if gnutls.check_version("3.5.6"): + if gnutls.check_version(b"3.5.6"): gnutls_flags |= gnutls.NO_TICKETS if gnutls.has_rawpk: gnutls_flags |= gnutls.ENABLE_RAWPK @@ -794,7 +794,7 @@ ctypes.c_size_t)] openpgp_crt_get_fingerprint.restype = _error_code - if check_version("3.6.4"): + if check_version(b"3.6.4"): certificate_type_get2 = _library.gnutls_certificate_type_get2 certificate_type_get2.argtypes = [session_t, ctypes.c_int] certificate_type_get2.restype = _error_code @@ -2287,7 +2287,7 @@ approval_required = False try: if gnutls.has_rawpk: - fpr = "" + fpr = b"" try: key_id = self.key_id( self.peer_certificate(session)) @@ -2297,7 +2297,7 @@ logger.debug("Key ID: %s", key_id) else: - key_id = "" + key_id = b"" try: fpr = self.fingerprint( self.peer_certificate(session)) @@ -3244,9 +3244,9 @@ for k in ("name", "host"): if isinstance(value[k], bytes): value[k] = value[k].decode("utf-8") - if not value.has_key("key_id"): + if "key_id" not in value: value["key_id"] = "" - elif not value.has_key("fingerprint"): + elif "fingerprint" not in value: value["fingerprint"] = "" # old_client_settings # .keys() === modified file 'mandos-ctl' --- mandos-ctl 2019-07-06 22:13:13 +0000 +++ mandos-ctl 2019-07-28 14:39:47 +0000 @@ -1,5 +1,5 @@ #!/usr/bin/python -# -*- after-save-hook: (lambda () (let ((command (if (fboundp 'file-local-name) (file-local-name (buffer-file-name)) (or (file-remote-p (buffer-file-name) 'localname) (buffer-file-name))))) (if (= (progn (if (get-buffer "*Test*") (kill-buffer "*Test*")) (process-file-shell-command (format "%s --test" (shell-quote-argument command)) nil "*Test*")) 0) (let ((w (get-buffer-window "*Test*"))) (if w (delete-window w))) (progn (with-current-buffer "*Test*" (compilation-mode)) (display-buffer "*Test*" '(display-buffer-in-side-window)))))); coding: utf-8 -*- +# -*- after-save-hook: (lambda () (let ((command (if (fboundp 'file-local-name) (file-local-name (buffer-file-name)) (or (file-remote-p (buffer-file-name) 'localname) (buffer-file-name))))) (if (= (progn (if (get-buffer "*Test*") (kill-buffer "*Test*")) (process-file-shell-command (format "%s --check" (shell-quote-argument command)) nil "*Test*")) 0) (let ((w (get-buffer-window "*Test*"))) (if w (delete-window w))) (progn (with-current-buffer "*Test*" (compilation-mode)) (display-buffer "*Test*" '(display-buffer-in-side-window)))))); coding: utf-8 -*- # # Mandos Monitor - Control and monitor the Mandos server # @@ -250,22 +250,23 @@ def rfc3339_duration_to_delta(duration): """Parse an RFC 3339 "duration" and return a datetime.timedelta - >>> rfc3339_duration_to_delta("P7D") - datetime.timedelta(7) - >>> rfc3339_duration_to_delta("PT60S") - datetime.timedelta(0, 60) - >>> rfc3339_duration_to_delta("PT60M") - datetime.timedelta(0, 3600) - >>> rfc3339_duration_to_delta("P60M") - datetime.timedelta(1680) - >>> rfc3339_duration_to_delta("PT24H") - datetime.timedelta(1) - >>> rfc3339_duration_to_delta("P1W") - datetime.timedelta(7) - >>> rfc3339_duration_to_delta("PT5M30S") - datetime.timedelta(0, 330) - >>> rfc3339_duration_to_delta("P1DT3M20S") - datetime.timedelta(1, 200) + >>> rfc3339_duration_to_delta("P7D") == datetime.timedelta(7) + True + >>> rfc3339_duration_to_delta("PT60S") == datetime.timedelta(0, 60) + True + >>> rfc3339_duration_to_delta("PT60M") == datetime.timedelta(hours=1) + True + >>> # 60 months + >>> rfc3339_duration_to_delta("P60M") == datetime.timedelta(1680) + True + >>> rfc3339_duration_to_delta("PT24H") == datetime.timedelta(1) + True + >>> rfc3339_duration_to_delta("P1W") == datetime.timedelta(7) + True + >>> rfc3339_duration_to_delta("PT5M30S") == datetime.timedelta(0, 330) + True + >>> rfc3339_duration_to_delta("P1DT3M20S") == datetime.timedelta(1, 200) + True >>> # Can not be empty: >>> rfc3339_duration_to_delta("") Traceback (most recent call last): @@ -381,23 +382,23 @@ """Parse an interval string as documented by Mandos before 1.6.1, and return a datetime.timedelta - >>> parse_pre_1_6_1_interval('7d') - datetime.timedelta(7) - >>> parse_pre_1_6_1_interval('60s') - datetime.timedelta(0, 60) - >>> parse_pre_1_6_1_interval('60m') - datetime.timedelta(0, 3600) - >>> parse_pre_1_6_1_interval('24h') - datetime.timedelta(1) - >>> parse_pre_1_6_1_interval('1w') - datetime.timedelta(7) - >>> parse_pre_1_6_1_interval('5m 30s') - datetime.timedelta(0, 330) - >>> parse_pre_1_6_1_interval('') - datetime.timedelta(0) + >>> parse_pre_1_6_1_interval('7d') == datetime.timedelta(days=7) + True + >>> parse_pre_1_6_1_interval('60s') == datetime.timedelta(0, 60) + True + >>> parse_pre_1_6_1_interval('60m') == datetime.timedelta(hours=1) + True + >>> parse_pre_1_6_1_interval('24h') == datetime.timedelta(days=1) + True + >>> parse_pre_1_6_1_interval('1w') == datetime.timedelta(days=7) + True + >>> parse_pre_1_6_1_interval('5m 30s') == datetime.timedelta(0, 330) + True + >>> parse_pre_1_6_1_interval('') == datetime.timedelta(0) + True >>> # Ignore unknown characters, allow any order and repetitions - >>> parse_pre_1_6_1_interval('2dxy7zz11y3m5m') - datetime.timedelta(2, 480, 18000) + >>> parse_pre_1_6_1_interval('2dxy7zz11y3m5m') == datetime.timedelta(2, 480, 18000) + True """