diff options
Diffstat (limited to 'pathod')
-rw-r--r-- | pathod/language/generators.py | 2 | ||||
-rw-r--r-- | pathod/pathoc.py | 21 | ||||
-rw-r--r-- | pathod/pathoc_cmdline.py | 7 | ||||
-rw-r--r-- | pathod/pathod.py | 10 | ||||
-rw-r--r-- | pathod/pathod_cmdline.py | 7 | ||||
-rw-r--r-- | pathod/protocols/http.py | 2 | ||||
-rw-r--r-- | pathod/protocols/http2.py | 2 | ||||
-rw-r--r-- | pathod/protocols/websockets.py | 2 | ||||
-rw-r--r-- | pathod/test.py | 2 |
9 files changed, 25 insertions, 30 deletions
diff --git a/pathod/language/generators.py b/pathod/language/generators.py index 1961df74..70c6ad16 100644 --- a/pathod/language/generators.py +++ b/pathod/language/generators.py @@ -75,7 +75,7 @@ class RandomGenerator: class FileGenerator: def __init__(self, path): - self.path = path + self.path = os.path.expanduser(path) def __len__(self): return os.path.getsize(self.path) diff --git a/pathod/pathoc.py b/pathod/pathoc.py index 4a613349..b177d556 100644 --- a/pathod/pathoc.py +++ b/pathod/pathoc.py @@ -13,11 +13,11 @@ import logging from mitmproxy import certs from mitmproxy import exceptions -from mitmproxy.net import tcp +from mitmproxy.net import tcp, tls from mitmproxy.net import websockets from mitmproxy.net import socks from mitmproxy.net import http as net_http -from mitmproxy.types import basethread +from mitmproxy.coretypes import basethread from mitmproxy.utils import strutils from pathod import log @@ -79,7 +79,7 @@ class SSLInfo: } t = types.get(pk.type(), "Uknown") parts.append("\tPubkey: %s bit %s" % (pk.bits(), t)) - s = certs.SSLCert(i) + s = certs.Cert(i) if s.altnames: parts.append("\tSANs: %s" % " ".join(strutils.always_str(n, "utf8") for n in s.altnames)) return "\n".join(parts) @@ -158,8 +158,8 @@ class Pathoc(tcp.TCPClient): # SSL ssl=None, sni=None, - ssl_version=tcp.SSL_DEFAULT_METHOD, - ssl_options=tcp.SSL_DEFAULT_OPTIONS, + ssl_version=tls.DEFAULT_METHOD, + ssl_options=tls.DEFAULT_OPTIONS, clientcert=None, ciphers=None, @@ -223,14 +223,6 @@ class Pathoc(tcp.TCPClient): self.ws_framereader = None if self.use_http2: - if not tcp.HAS_ALPN: # pragma: no cover - log.write_raw( - self.fp, - "HTTP/2 requires ALPN support. " - "Please use OpenSSL >= 1.0.2. " - "Pathoc might not be working as expected without ALPN.", - timestamp=False - ) self.protocol = http2.HTTP2StateProtocol(self, dump_frames=self.http2_framedump) else: self.protocol = net_http.http1 @@ -252,6 +244,7 @@ class Pathoc(tcp.TCPClient): port=connect_to[1], path=None, http_version='HTTP/1.1', + headers=[(b"Host", connect_to[0].encode("idna"))], content=b'', ) self.wfile.write(net_http.http1.assemble_request(req)) @@ -320,7 +313,7 @@ class Pathoc(tcp.TCPClient): if self.use_http2: alpn_protos.append(b'h2') - self.convert_to_ssl( + self.convert_to_tls( sni=self.sni, cert=self.clientcert, method=self.ssl_version, diff --git a/pathod/pathoc_cmdline.py b/pathod/pathoc_cmdline.py index 3b738d47..e85d98a8 100644 --- a/pathod/pathoc_cmdline.py +++ b/pathod/pathoc_cmdline.py @@ -3,7 +3,7 @@ import argparse import os import os.path -from mitmproxy.net import tcp +from mitmproxy.net import tls from mitmproxy import version from mitmproxy.net.http import user_agents from . import pathoc, language @@ -111,7 +111,7 @@ def args_pathoc(argv, stdout=sys.stdout, stderr=sys.stderr): ) group.add_argument( "--ssl-version", dest="ssl_version", type=str, default="secure", - choices=tcp.sslversion_choices.keys(), + choices=tls.VERSION_CHOICES.keys(), help="Set supported SSL/TLS versions. " "SSLv2, SSLv3 and 'all' are INSECURE. Defaults to secure, which is TLS1.0+." ) @@ -162,7 +162,7 @@ def args_pathoc(argv, stdout=sys.stdout, stderr=sys.stderr): args = parser.parse_args(argv[1:]) - args.ssl_version, args.ssl_options = tcp.sslversion_choices[args.ssl_version] + args.ssl_version, args.ssl_options = tls.VERSION_CHOICES[args.ssl_version] args.port = None if ":" in args.host: @@ -208,6 +208,7 @@ def args_pathoc(argv, stdout=sys.stdout, stderr=sys.stderr): reqs = [] for r in args.requests: + r = os.path.expanduser(r) if os.path.isfile(r): with open(r) as f: r = f.read() diff --git a/pathod/pathod.py b/pathod/pathod.py index 7c773c3b..17db57ee 100644 --- a/pathod/pathod.py +++ b/pathod/pathod.py @@ -3,7 +3,7 @@ import logging import os import sys import threading -from mitmproxy.net import tcp +from mitmproxy.net import tcp, tls from mitmproxy import certs as mcerts from mitmproxy.net import websockets from mitmproxy import version @@ -37,8 +37,8 @@ class SSLOptions: sans=(), not_after_connect=None, request_client_cert=False, - ssl_version=tcp.SSL_DEFAULT_METHOD, - ssl_options=tcp.SSL_DEFAULT_OPTIONS, + ssl_version=tls.DEFAULT_METHOD, + ssl_options=tls.DEFAULT_OPTIONS, ciphers=None, certs=None, alpn_select=b'h2', @@ -170,7 +170,7 @@ class PathodHandler(tcp.BaseHandler): ), cipher=None, ) - if self.ssl_established: + if self.tls_established: retlog["cipher"] = self.get_current_cipher() m = utils.MemBool() @@ -244,7 +244,7 @@ class PathodHandler(tcp.BaseHandler): if self.server.ssl: try: cert, key, _ = self.server.ssloptions.get_cert(None) - self.convert_to_ssl( + self.convert_to_tls( cert, key, handle_sni=self.handle_sni, diff --git a/pathod/pathod_cmdline.py b/pathod/pathod_cmdline.py index dee19f4f..dfce7a52 100644 --- a/pathod/pathod_cmdline.py +++ b/pathod/pathod_cmdline.py @@ -4,7 +4,7 @@ import os import os.path import re -from mitmproxy.net import tcp +from mitmproxy.net import tls from mitmproxy.utils import human from mitmproxy import version from . import pathod @@ -143,7 +143,7 @@ def args_pathod(argv, stdout_=sys.stdout, stderr_=sys.stderr): ) group.add_argument( "--ssl-version", dest="ssl_version", type=str, default="secure", - choices=tcp.sslversion_choices.keys(), + choices=tls.VERSION_CHOICES.keys(), help="Set supported SSL/TLS versions. " "SSLv2, SSLv3 and 'all' are INSECURE. Defaults to secure, which is TLS1.0+." ) @@ -182,7 +182,7 @@ def args_pathod(argv, stdout_=sys.stdout, stderr_=sys.stderr): args = parser.parse_args(argv[1:]) - args.ssl_version, args.ssl_options = tcp.sslversion_choices[args.ssl_version] + args.ssl_version, args.ssl_options = tls.VERSION_CHOICES[args.ssl_version] certs = [] for i in args.ssl_certs: @@ -215,6 +215,7 @@ def args_pathod(argv, stdout_=sys.stdout, stderr_=sys.stderr): anchors = [] for patt, spec in args.anchors: + spec = os.path.expanduser(spec) if os.path.isfile(spec): with open(spec) as f: data = f.read() diff --git a/pathod/protocols/http.py b/pathod/protocols/http.py index 4387b4fb..5fcb6618 100644 --- a/pathod/protocols/http.py +++ b/pathod/protocols/http.py @@ -27,7 +27,7 @@ class HTTPProtocol: cert, key, chain_file_ = self.pathod_handler.server.ssloptions.get_cert( connect[0].encode() ) - self.pathod_handler.convert_to_ssl( + self.pathod_handler.convert_to_tls( cert, key, handle_sni=self.pathod_handler.handle_sni, diff --git a/pathod/protocols/http2.py b/pathod/protocols/http2.py index cfc71650..c56d304d 100644 --- a/pathod/protocols/http2.py +++ b/pathod/protocols/http2.py @@ -8,7 +8,7 @@ from mitmproxy.net.http import http2 import mitmproxy.net.http.headers import mitmproxy.net.http.response import mitmproxy.net.http.request -from mitmproxy.types import bidi +from mitmproxy.coretypes import bidi from .. import language diff --git a/pathod/protocols/websockets.py b/pathod/protocols/websockets.py index 2d1f1bf6..63e6ee0b 100644 --- a/pathod/protocols/websockets.py +++ b/pathod/protocols/websockets.py @@ -30,7 +30,7 @@ class WebsocketsProtocol: ), cipher=None, ) - if self.pathod_handler.ssl_established: + if self.pathod_handler.tls_established: retlog["cipher"] = self.pathod_handler.get_current_cipher() self.pathod_handler.addlog(retlog) ld = language.websockets.NESTED_LEADER diff --git a/pathod/test.py b/pathod/test.py index 52f3ba02..819c7a94 100644 --- a/pathod/test.py +++ b/pathod/test.py @@ -2,7 +2,7 @@ import io import time import queue from . import pathod -from mitmproxy.types import basethread +from mitmproxy.coretypes import basethread import typing # noqa |