Thomas Kriechbaumer
4617ab8a3a
add Request class and unify read_request interface
2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
808b294865
refactor HTTP/1 as protocol
2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
230c16122b
change HTTP2 interface to match HTTP1
2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
bab6cbff1e
extract authentication methods from protocol
2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
f50deb7b76
move bits around
2015-07-22 15:30:51 +02:00
Thomas Kriechbaumer
bd5ee21284
refactor websockets into protocol
2015-07-22 15:30:50 +02:00
Thomas Kriechbaumer
6dcfc35011
introduce http_semantics module
...
used for generic HTTP representation
everything should apply for HTTP/1 and HTTP/2
2015-07-22 15:30:50 +02:00
Maximilian Hils
880c66fe48
socks: optionally fail early
2015-07-03 02:45:12 +02:00
Maximilian Hils
9aaf10120d
socks: add assert_socks5 method
2015-07-03 02:01:30 +02:00
Aldo Cortesi
3d6dc0879b
Merge pull request #79 from mitmproxy/remove_certffi
...
Remove certffi
2015-06-27 09:22:33 +12:00
Maximilian Hils
26ea1a065e
fix file type
2015-06-26 19:23:12 +02:00
Maximilian Hils
74c50d24eb
fix tests on windows
2015-06-26 19:21:35 +02:00
Maximilian Hils
2723a0e573
remove certffi
2015-06-26 13:26:35 +02:00
Aldo Cortesi
db6576ca6f
Merge pull request #76 from kyle-m/master
...
Provide debugging information when upstream server certificate fails validation
2015-06-24 09:27:08 +12:00
Kyle Morton
4766bce63d
Adding test data to support post OpenSSL v1.0 cert hashing
2015-06-23 10:46:42 -07:00
Aldo Cortesi
80dd703a2a
Merge branch 'Kriechi-ssl-version-handling'
2015-06-23 22:18:10 +12:00
Aldo Cortesi
239f4758af
Remove dependence on pathod in test suite.
2015-06-23 22:16:03 +12:00
Kyle Morton
d1452424be
Cleaning up upstream server verification. Adding storage of cerificate
...
verification errors on TCPClient object to enable warnings in downstream
projects.
2015-06-22 17:31:13 -07:00
Kyle Morton
7afe44ba4e
Updating TCPServer to allow tests (and potentially other use cases) to serve
...
certificate chains instead of only single certificates.
2015-06-22 16:48:09 -07:00
Thomas Kriechbaumer
58118d607e
unify SSL version/method handling
2015-06-22 20:39:34 +02:00
Aldo Cortesi
2aa1b98fbf
netlib/test.py -> test/tservers.py
2015-06-22 14:52:23 +12:00
Thomas Kriechbaumer
61cbe36e40
http2: rename test file
2015-06-18 10:38:26 +02:00
Thomas Kriechbaumer
eb823a04a1
http2: improve :authority header
2015-06-16 15:00:29 +02:00
Thomas Kriechbaumer
abb37a3ef5
http2: improve test suite
2015-06-16 15:00:28 +02:00
Aldo Cortesi
bb206323ab
Merge pull request #69 from kyle-m/master
...
Adding support for upstream certificate validation when using SSL/TLS…
2015-06-16 10:34:09 +12:00
Kyle Morton
fe764cde52
Adding support for upstream certificate validation when using SSL/TLS with an
...
instance of TCPClient.
2015-06-15 10:18:54 -07:00
Thomas Kriechbaumer
8d71a5b4ab
http2: add authority header
2015-06-14 19:43:32 +02:00
Thomas Kriechbaumer
5fab755a05
add more tests
2015-06-12 15:27:29 +02:00
Thomas Kriechbaumer
a901bc3032
http2: add response creation
2015-06-12 14:45:51 +02:00
Thomas Kriechbaumer
8ea157775d
http2: general improvements
2015-06-12 14:42:07 +02:00
Thomas Kriechbaumer
abbe88c8ce
fix non-ALPN supported OpenSSL-related tests
2015-06-08 13:25:42 +02:00
Thomas Kriechbaumer
e39d8aed6d
http2: refactor hex to file adapter
2015-06-05 20:55:32 +02:00
Thomas Kriechbaumer
6c1c6f5f0a
http2: fix EchoHandler test helper
2015-06-05 20:49:03 +02:00
Thomas Kriechbaumer
e7c84a1ce1
make travis run all tests
2015-06-05 20:22:21 +02:00
Thomas Kriechbaumer
49043131cc
increase test coverage
2015-06-05 20:22:20 +02:00
Thomas Kriechbaumer
fdc908cb98
http2: add protocol tests
2015-06-05 20:19:48 +02:00
Thomas Kriechbaumer
f003f87197
http2: rename module and refactor as strategy
2015-06-05 13:33:37 +02:00
Thomas Kriechbaumer
623dd850e0
http2: add logging and error handling
2015-06-05 13:33:37 +02:00
Thomas Kriechbaumer
40fa113116
http2: change header_block_fragment handling
2015-06-05 13:33:37 +02:00
Thomas Kriechbaumer
5cecbdc168
http2: add basic protocol handling
2015-06-05 13:33:37 +02:00
Thomas Kriechbaumer
b84001e8f0
http2: explicitly mention all arguments in tests
2015-06-05 13:33:37 +02:00
Thomas Kriechbaumer
9883509f89
simplify default ssl params for test servers
2015-06-05 13:33:37 +02:00
Aldo Cortesi
4ec181c140
Move version check to netlib, unit test it.
2015-05-31 13:12:01 +12:00
Aldo Cortesi
f76bfabc5d
Adjust pep8 parameters, reformat
2015-05-30 12:02:58 +12:00
Thomas Kriechbaumer
629fa8e552
make tests aware of ALPN & OpenSSL 1.0.2 dependency
2015-05-29 17:04:12 +02:00
Thomas Kriechbaumer
c32d8189fa
cleanup imports
2015-05-29 17:00:38 +02:00
Thomas Kriechbaumer
e2de49596d
add HTTP/2-capable client
2015-05-29 15:31:22 +02:00
Thomas Kriechbaumer
780836b182
add ALPN support to TCP abstraction
2015-05-29 15:31:22 +02:00
Thomas Kriechbaumer
4c469fdee1
add hpack to encode and decode headers
2015-05-29 15:31:22 +02:00
Thomas Kriechbaumer
5288aa3640
add human_readable() to each frame for debugging
2015-05-29 11:42:46 +02:00
Thomas Kriechbaumer
bdb62101bb
test Address __str__
2015-05-29 11:42:46 +02:00
Aldo Cortesi
41af65a1c4
Merge branch 'Kriechi-cleanup'
2015-05-28 12:12:37 +12:00
Thomas Kriechbaumer
161bc2cfaa
cleanup code with autoflake
...
run the following command:
$ autoflake -r -i --remove-all-unused-imports --remove-unused-variables .
2015-05-27 11:25:33 +02:00
Thomas Kriechbaumer
e3d390e036
cleanup code with autopep8
...
run the following command:
$ autopep8 -i -r -a -a .
2015-05-27 11:19:11 +02:00
Thomas Kriechbaumer
041ca5c499
update TLS defaults: signature hash and DH params
...
* SHA1 is deprecated (use SHA256)
* increase RSA key to 2048 bits
* increase DH params to 4096 bits (LogJam attack)
2015-05-27 10:53:57 +02:00
Thomas Kriechbaumer
4ce6f43616
implement basic HTTP/2 frame classes
2015-05-26 17:59:29 +02:00
Aldo Cortesi
dabb356c15
Zap a left-over test
2015-05-05 10:52:50 +12:00
Aldo Cortesi
f2bc58cdd2
Add tcp.Reader.safe_read, use it in socks and websockets
...
safe_read is guaranteed to raise or return a byte string of the
requested length. It's particularly useful for implementing binary
protocols.
2015-05-05 10:47:02 +12:00
Aldo Cortesi
7d9e38ffb1
websockets: A progressive masker.
2015-05-01 10:09:35 +12:00
Aldo Cortesi
4dce7ee074
websockets: more compact and legible human_readable
2015-04-30 12:10:08 +12:00
Aldo Cortesi
8086022920
Add a tiny utility class for keeping bi-directional mappings.
...
Use it in websocket and socks.
2015-04-30 09:04:22 +12:00
Aldo Cortesi
b7a2fc8553
testing: http read_request corner case
2015-04-30 08:41:13 +12:00
Aldo Cortesi
18df329930
websockets: nicer frame construction
...
- Resolve unspecified values on instantiation
- Add a check for masking key length
- Smarter resolution for masking_key and mask values. Do the right thing unless told not to.
2015-04-24 15:42:31 +12:00
Aldo Cortesi
192fd1db7f
websockets: include all header values in frame roundtrip
2015-04-24 15:31:14 +12:00
Aldo Cortesi
def93ea8ca
websockets: remove validation
...
We don't really need this any more. The interface is much less error prone
because bit flags are no longer integers, we have a range check on opcode on
header instantiation, and we've deferred length code calculation and so forth
into the byte render methods.
2015-04-24 15:23:00 +12:00
Aldo Cortesi
f22bc0b4c7
websocket: interface refactoring
...
- Separate out FrameHeader. We need to deal with this separately in many circumstances.
- Simpler equality scheme.
- Bits are now specified by truthiness - we don't care about the integer value.
This means lots of validation is not needed any more.
2015-04-24 15:09:21 +12:00
Aldo Cortesi
3519871f34
websockets: refactor to avoid rundantly specifying payloads and payload lengths
2015-04-24 09:21:04 +12:00
Aldo Cortesi
bdd52fead3
websockets: extract frame header creation into a function
2015-04-24 08:47:09 +12:00
Aldo Cortesi
42a87a1d8b
websockets: handshake checks only take headers
2015-04-23 08:23:51 +12:00
Aldo Cortesi
176e29fc09
websockets: constants, variable names, refactoring
2015-04-21 23:13:42 +12:00
Aldo Cortesi
1b509d5aea
Whitespace, interface simplification
...
- safe_tobytes doesn't buy us much
- move masking key generation inline
2015-04-21 22:51:01 +12:00
Aldo Cortesi
3e0a71ea34
websockets: refactor to use http and header functions in http.py
2015-04-21 22:39:45 +12:00
Aldo Cortesi
e5f1264838
Whitespace, indentation, nounce -> nonce
2015-04-21 13:39:00 +12:00
Aldo Cortesi
7d83e388aa
Whitespace, pep8, mixed indentation
2015-04-21 11:19:00 +12:00
Aldo Cortesi
dd7ea896f2
Return a named tuple from read_response
2015-04-21 11:11:16 +12:00
Aldo Cortesi
2c660d7633
Migrate requeset reading from mitmproxy to netlib
2015-04-21 11:05:12 +12:00
Chandler Abraham
2c9079b518
whitespace
2015-04-19 22:22:15 -07:00
Chandler Abraham
4ea1ccb638
fixing test coverage, adding to_file/from_file reader writes to match socks.py
2015-04-19 22:18:30 -07:00
Aldo Cortesi
74389ef04a
Websockets: reorganise
...
- websockets.py to top-level
- implementations into test suite
2015-04-20 09:38:09 +12:00
Aldo Cortesi
7defb5be86
websockets: more whitespace, WebSocketFrame -> Frame
2015-04-17 14:29:20 +12:00
Aldo Cortesi
3bbafa24bd
Merge pull request #54 from Chandler/websockets
...
Netlib WebSockets take 1
2015-04-17 13:46:51 +12:00
Aldo Cortesi
0c85c72dc4
ODict improvements
...
- Setting values now tries to preserve the existing order, rather than
just appending to the end.
- __repr__ now returns a repr of the tuple list. The old repr becomes a
.format() method. This is clearer, makes troubleshooting easier, and
doesn't assume all data in ODicts are header-like
2015-04-15 10:28:17 +12:00
Aldo Cortesi
d739882bf2
Add an .extend method for ODicts
2015-04-14 13:50:57 +12:00
Aldo Cortesi
6db5e0a4a1
Remove old-style set-cookie cruft, unit tests to 100%
2015-04-14 10:13:03 +12:00
Aldo Cortesi
de9e741125
Firm up cookie parsing and formatting API
...
Make a tough call: we won't support old-style comma-separated set-cookie
headers. Real world testing has shown that the latest rfc (6265) is
often violated in ways that make the parsing problem indeterminate.
Since this is much more common than the old style deprecated set-cookie
variant, we focus on the most useful case.
2015-04-14 10:02:10 +12:00
Chandler Abraham
2d72a1b6b5
100% test coverage, though still need plenty more
2015-04-13 13:36:09 -07:00
Chandler Abraham
0ed2a29063
whitespace
2015-04-11 17:28:52 -07:00
Chandler Abraham
f131f9b855
handshake tests, serialization test
2015-04-11 17:26:59 -07:00
Aldo Cortesi
1a79ef8b6c
Merge branch 'master' of https://github.com/mitmproxy/netlib
2015-04-12 11:32:27 +12:00
Aldo Cortesi
2630da7263
cookies: Cater for special values, fix some bugs found in real-world testing
2015-04-12 11:30:35 +12:00
Aldo Cortesi
73ce169e3d
Initial outline of a cookie parsing and serialization module.
2015-04-12 10:26:09 +12:00
Chandler Abraham
0edc04814e
small cleanups, working on tests
2015-04-11 11:35:15 -07:00
Chandler Abraham
e41e5cbfdd
netlib websockets
2015-04-10 18:37:41 -07:00
Maximilian Hils
7f7ccd3a18
100% test coverage
2015-04-09 00:57:37 +02:00
Maximilian Hils
dbadc1b613
clean up cert handling, fix mitmproxy/mitmproxy#472
2015-03-07 01:22:02 +01:00
Maximilian Hils
24a3dd59fe
try harder to fix race condition in tests
2015-02-27 22:34:36 +01:00
Maximilian Hils
d71f3b68fd
make tests more robust, fix coveralls
2015-02-27 22:27:23 +01:00
Maximilian Hils
da1eb94ccd
100% test coverage 🎉
2015-02-27 22:02:52 +01:00
Maximilian Hils
63fb433690
fix #53
2015-02-27 20:40:17 +01:00
Maximilian Hils
60584387ff
be more explicit about requirements
2014-11-11 12:26:20 +01:00