aboutsummaryrefslogtreecommitdiffstats
path: root/pathod
diff options
context:
space:
mode:
Diffstat (limited to 'pathod')
-rw-r--r--pathod/language/generators.py2
-rw-r--r--pathod/pathoc.py21
-rw-r--r--pathod/pathoc_cmdline.py7
-rw-r--r--pathod/pathod.py10
-rw-r--r--pathod/pathod_cmdline.py7
-rw-r--r--pathod/protocols/http.py2
-rw-r--r--pathod/protocols/http2.py2
-rw-r--r--pathod/protocols/websockets.py2
-rw-r--r--pathod/test.py2
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