Commit Graph

351 Commits

Author SHA1 Message Date
Aldo Cortesi
234d326080 Implement custom certs. 2014-03-02 15:13:56 +13:00
Aldo Cortesi
091e539a02 Big improvements to SSL handling
- pathod now dynamically generates SSL certs, using the ~/.mitmproxy
cacert
- pathoc returns data on SSL peer certificates
- Pathod certificate CN can be specified on command line
- Support SSLv23
2014-03-02 13:45:35 +13:00
Aldo Cortesi
a1d0da2b53 Expand SSL support
- Cipher suite selection for both pathoc and pathod
- SSL version specification for pathod
- Expose SSLv23 as an option, and use it by default
2014-02-27 18:33:48 +13:00
Maximilian Hils
0c04abb6e4 fix pathod main script 2014-02-08 22:42:27 +01:00
Aldo Cortesi
0baa296613 Merge branch 'tcp_proxy' 2014-02-07 10:50:57 +13:00
Maximilian Hils
b64e1ccf91 adjust for netlib.tcp.Address changes 2014-01-30 20:06:33 +01:00
Maximilian Hils
b994fb5a27 adjust to signature changes in netlib.tcp 2014-01-28 19:28:20 +01:00
Maximilian Hils
1b566869de Merge branch 'master' into tcp_proxy 2014-01-28 17:44:55 +01:00
Aldo Cortesi
dc6d573d39 Adjust docs for inclusion of content-length header by default. 2014-01-28 15:31:30 +13:00
Aldo Cortesi
26d6b189fc Pyflakes cleanup, adjust requirements.txt 2014-01-19 18:20:01 +13:00
Aldo Cortesi
25ed5537da Bump version. 2014-01-19 16:03:51 +13:00
Maximilian Hils
f83508d4bf Merge branch 'master' into tcp_proxy 2014-01-09 18:06:12 +01:00
Maximilian Hils
d31b7daf6c change method signature 2014-01-09 18:04:04 +01:00
Aldo Cortesi
a9f8dcf755 Merge pull request #11 from mitmproxy/refactor_read_http_body
always return Content-Length: 0 if r is not set
2014-01-04 14:48:12 -08:00
Aldo Cortesi
467ef0c02a Merge branch 'master' of ssh.github.com:mitmproxy/pathod 2013-12-17 14:32:56 +13:00
Aldo Cortesi
8229c3884f Ability to specify SSL/TLS version 2013-12-17 14:32:41 +13:00
Maximilian Hils
e0d376381e fix windows compatibility 2013-12-16 04:47:29 +01:00
Maximilian Hils
210e0c891e Merge branch 'master' into refactor_read_http_body 2013-12-16 03:59:52 +01:00
Maximilian Hils
7049becdfe always return Content-Length: 0 if r is not set 2013-12-15 06:42:58 +01:00
Aldo Cortesi
c4e6d7aea6 Merge branch 'master' of ssh.github.com:mitmproxy/pathod 2013-08-25 10:46:11 +12:00
Aldo Cortesi
d285508994 Fix download link. 2013-08-25 10:45:16 +12:00
Aldo Cortesi
a424eff309 Version bump and changelog. 2013-08-25 10:34:14 +12:00
Maximilian Hils
42aede6181 ensure binary read on windows 2013-08-19 19:21:47 +02:00
Aldo Cortesi
19c55361c8 Adapt to new cert storage API. 2013-08-12 16:05:07 +12:00
Aldo Cortesi
3defe0cbb1 Bump version. 2013-06-16 15:31:25 +12:00
Maximilian Hils
0382b809ea always read files in binary mode 2013-06-16 00:30:13 +02:00
Aldo Cortesi
9e7f08acea Download path, version flags for both tools. 2013-05-15 18:56:05 +12:00
Aldo Cortesi
c65ab6961d Layout and docs. 2013-05-15 08:47:19 +12:00
Aldo Cortesi
5eeb52183a Adapt for new request_client_cert option in netlib. 2013-05-13 09:03:48 +12:00
Aldo Cortesi
3217fcad14 Doc layout refactoring. 2013-05-02 09:11:16 +12:00
Aldo Cortesi
0504bcfd96 Changelog, minor cleanups. 2013-04-30 09:32:11 +12:00
Aldo Cortesi
beb47eba51 Sync version number with mitmproxy. 2013-03-05 09:11:19 +13:00
Aldo Cortesi
110a8bb594 Print pathod craft explanations to stdout. 2013-03-03 16:33:50 +13:00
Aldo Cortesi
155710f991 Improve robustness of proxy CONNECT, test coverage to 100%. 2013-03-02 16:57:00 +13:00
Aldo Cortesi
9167b9b8b6 Make pathoc request return more human-friendly. 2013-02-27 09:07:16 +13:00
Aldo Cortesi
25656f4889 Adapt for new netlib SNI API. 2013-02-27 09:05:05 +13:00
Aldo Cortesi
ba0caff2dc Wrap webapp in a creation function.
This lets us spawn multiple instances of Pathod.
2013-02-24 19:42:40 +13:00
Aldo Cortesi
69339836c2 Adapt to netlib API changes. 2013-02-24 15:36:35 +13:00
Aldo Cortesi
9c9e15341f Make last_log return None if nothing is logged. 2013-02-23 21:46:01 +13:00
Aldo Cortesi
5288848d03 Adjust docs, old -C is now -I. 2013-01-21 09:36:20 +13:00
Aldo Cortesi
9bd269c26a Add support for client certificates
- pathod request logs now include a clientcert member with details on the
client cert, or None if there wasn't one.
- pathoc has a -C option to specify a client certificate
2013-01-20 22:37:43 +13:00
Aldo Cortesi
369b55b094 Docs - pathoc and pathod proxy behaviour 2013-01-05 20:46:31 +13:00
Aldo Cortesi
ed7ef84557 Implement and unit test not-after-connect option. 2013-01-05 20:36:06 +13:00
Aldo Cortesi
5493925ea0 CONNECT through proxy mode for pathoc
Also, use this to unit test the pathod CONNECT implementation.
2013-01-05 20:29:46 +13:00
Aldo Cortesi
c744ef2dcb Proxy mode: drop to SSL if we see an HTTP CONNECT request 2013-01-05 17:15:42 +13:00
Aldo Cortesi
1e932e7045 Collect SSL options into an SSLOptions object
Also split SSL cert specifications from SSL service mode - we can now enter SSL
service mode through a proxy CONNECT request as well.
2013-01-05 16:48:49 +13:00
Aldo Cortesi
3886ccae93 Provisional proxy mode support for pathod. 2013-01-05 15:25:09 +13:00
Aldo Cortesi
d7f641c6ee Shift SSL parameters into Pathoc class 2013-01-04 10:37:26 +13:00
Aldo Cortesi
b07ab253b7 Require requests > 1.0.4
This changes the API slightly, since json is now a method, not a property.
2012-12-31 12:23:42 +13:00
Aldo Cortesi
b11260f064 Expand basic fuzzing example. 2012-11-16 15:00:15 +13:00
Aldo Cortesi
5fb31f9162 Add :u shortcut example.
Update trove specifiers, netlib dependency.
2012-11-16 14:51:31 +13:00
Aldo Cortesi
af698b2fda :u belongs on Request not Response 2012-11-16 14:41:02 +13:00
Aldo Cortesi
ef9cbe3b25 Add u User-agent shortcut.
Usage:
    200:ua       - Shortcut "a" for Android.
    200:u"foo"   - Or a value literal

Shortcuts can be listed using the --show-uas argument to pathoc.
2012-11-16 13:46:42 +13:00
Aldo Cortesi
5d18830f71 Fix typo. 2012-11-02 14:36:19 +13:00
Aldo Cortesi
791252ac5e Examples and documentation. 2012-11-02 14:22:54 +13:00
Aldo Cortesi
27d90a3594 Bump version, update CHANGELOG 2012-10-31 12:37:11 +13:00
Aldo Cortesi
3f50930dc0 Use .freeze to implement the -e explain flags for pathod and pathoc.
This now prints (in pathoc) or logs (in pathod) a frozen specification that
includes an expanded record of all generated values and locations.
2012-10-31 11:34:58 +13:00
Aldo Cortesi
8c6cc8140c Fix generated values in request path specification. 2012-10-31 09:48:55 +13:00
Aldo Cortesi
0c9cfb3f38 Add a .freeze() method to all components.
This expands and freezes all randomly generated values. The message returned
can be queried for a precise spec to reproduce the message.
2012-10-31 09:32:21 +13:00
Aldo Cortesi
f8df0a1e75 Add a .values method to messages, simplify a lot of stuff as a consequence. 2012-10-30 16:08:36 +13:00
Aldo Cortesi
a09584b9e6 Make Message classes more self-contained. 2012-10-30 15:22:53 +13:00
Aldo Cortesi
b2deb470de Extract .serve() method from message classes. 2012-10-30 14:46:18 +13:00
Aldo Cortesi
677f0e0580 Change preview_safe to return a safe copy of the current message. 2012-10-30 13:36:32 +13:00
Aldo Cortesi
a1f782b543 Simplify Request/Response class hierarchy. 2012-10-30 13:28:22 +13:00
Aldo Cortesi
3e0cd6442a Add .spec methods for Request and Response objects. 2012-10-29 17:33:10 +13:00
Aldo Cortesi
747eafd107 Add a .spec method to the token ABC, and to all tokens. 2012-10-29 16:31:35 +13:00
Aldo Cortesi
8741600ce7 Refactoring: canonical storage of a message is now the sequence of tokens that defines it.
We use a set of accessor properties to ease access to tokens. We can now ditch
the .accept() methods.
2012-10-29 15:16:44 +13:00
Aldo Cortesi
882969086c Cleaup, some more ABCs. 2012-10-29 10:19:58 +13:00
Aldo Cortesi
61f8992fbf Change response spec format to code[:features]
Reason message is now specified as just another feature with the "m" mnemonic.
2012-10-28 22:18:06 +13:00
Aldo Cortesi
07560ffe30 Cleaup, ABC for Value classes. 2012-10-28 22:00:19 +13:00
Aldo Cortesi
35f37626a9 Clean up .accept() signature. 2012-10-28 17:39:58 +13:00
Aldo Cortesi
7d74f75f6d Split Code and Reason into separate _Component objects. 2012-10-28 17:07:16 +13:00
Aldo Cortesi
e9af434c2b .body and .method to lazy generator instantiation.
Also introduce a _Component ABC.
2012-10-28 14:15:29 +13:00
Aldo Cortesi
9d42a06c92 Move message body to new lazy-generator scheme. 2012-10-28 12:56:08 +13:00
Aldo Cortesi
f54ed69a35 Adjust serve() API. 2012-10-28 09:06:55 +13:00
Aldo Cortesi
ac5aacce44 Remove check argument to serve() methods.
Refactoring means we can now do this without a callback.

Also introduce the maximum_length method that estimates the max possible
message length.
2012-10-27 17:40:22 +13:00
Aldo Cortesi
06864e5a1b Major refactoring towars separate representation of expressions and request/response service. 2012-10-27 14:00:50 +13:00
Aldo Cortesi
6174e46023 Unit test suite love: 100% coverage
Also start figuring out how to sanitize binary data in the JSON API.
2012-10-25 10:59:18 +13:00
Aldo Cortesi
173b5c596e Start moving policy checks to service-time, rather than parse-time. 2012-10-25 09:45:55 +13:00
Aldo Cortesi
c684f7417d Extend Action and Value classes
- Values now know how to print their own specs
- Actions now know how to print their own specs
- Actions have a resolve_offset method that resolves relative and random offsets.
2012-10-24 11:32:53 +13:00
Aldo Cortesi
e83392bfc8 Start making Action objects more sophisticated. 2012-10-05 11:23:30 +13:00
Aldo Cortesi
495daf2b64 Remove actions log and explain, preparing for a more sophisticated take on this. 2012-10-05 11:14:17 +13:00
Aldo Cortesi
f5d5cc4988 rparse.py -> language.py 2012-10-05 10:30:32 +13:00
Aldo Cortesi
d3e1f8a014 Stub out documentation changes 2012-10-04 12:17:35 +13:00
Aldo Cortesi
41f1c66772 Add -q and -r flags to pathod, logging request and respnose bytes.
- These flags also mean that a bytes log is included in the internal log
buffer.
- There's an -x flag to turn on hex dump output in the text logs (does
not affect the log buffer).
2012-10-01 12:48:26 +13:00
Aldo Cortesi
915bcfbd30 Add timeout argument to Pathod, and matching -t command-line option. 2012-10-01 12:01:02 +13:00
Aldo Cortesi
8bb81be2b0 Add pathoc -T to ignore timeouts.
Also move -c to -C for consistency.
2012-09-28 11:38:49 +12:00
Aldo Cortesi
65108ed429 Add pathoc -o, oneshot mode, exits after the first non-ignored response. 2012-09-27 10:56:06 +12:00
Aldo Cortesi
7209a75201 Add pathoc -c to specify a list of return codes to ignore. 2012-09-27 09:44:25 +12:00
Aldo Cortesi
10a19fc4da Refactor print_requests -> print_request
- Change to handle one request at a time
- Shift error handling around
2012-09-26 14:25:39 +12:00
Aldo Cortesi
424d15c28b Expand the docs to explain pathoc multiple requests. 2012-09-26 11:21:40 +12:00
Aldo Cortesi
b67d99638a Response printing
Options to output full response, as sniffed from the socket.
2012-09-26 11:07:22 +12:00
Aldo Cortesi
a69d602087 Hex and verbatim output of requests.
This works by sniffing traffic through the socket, so always gives us the exact
traffic sent upstream.
2012-09-26 10:38:47 +12:00
Aldo Cortesi
0a5d4fbbbb Stub out new output argument structure. 2012-09-26 10:12:30 +12:00
Aldo Cortesi
0dd250d4f8 Fix utils.get_header case handling. 2012-09-24 10:08:18 +12:00
Aldo Cortesi
9db2bcabad Auto-generate download links. 2012-08-25 11:30:55 +12:00
Aldo Cortesi
d36cf63112 Bump for minor release. 2012-08-25 11:26:18 +12:00
Aldo Cortesi
2f7188164c Download page, MANIFEST.in 2012-08-23 12:54:58 +12:00
Aldo Cortesi
b78a3817cd Adjust examples and docs. 2012-08-23 12:37:02 +12:00
Aldo Cortesi
d758409b76 Make sure date stamps are added to all logs. 2012-08-23 12:00:16 +12:00
Aldo Cortesi
95968ad558 Don't allow negative integer offsets for now. 2012-08-17 10:08:02 +12:00
Aldo Cortesi
13cb0cab90 Tweak front page: correct public pathod URL, more illustrative examples. 2012-08-16 22:29:14 +12:00
Aldo Cortesi
51d10f53c1 Add Cache-Control directives to static pages. 2012-08-11 17:06:51 +12:00
Aldo Cortesi
8d26db4931 Docs. 2012-08-07 23:19:48 +12:00
Aldo Cortesi
158106d346 Doc tweaks. 2012-07-30 21:12:42 +12:00
Aldo Cortesi
fde65270af Testing examples and docs. 2012-07-30 20:58:59 +12:00
Aldo Cortesi
e52a37ffa9 Cleanup of libpathod.test, test example for front page. 2012-07-30 17:29:36 +12:00
Aldo Cortesi
e26aac1d3c 100% test coverage. 2012-07-30 13:52:40 +12:00
Aldo Cortesi
43314c77c8 Handle invalid headers better. 2012-07-30 12:53:41 +12:00
Aldo Cortesi
5b08703fa8 Handle disconnects on flush. 2012-07-30 12:02:42 +12:00
Aldo Cortesi
b1ac4245c8 docs: pathod 2012-07-30 00:14:34 +12:00
Aldo Cortesi
bc1cfd9f75 Docs. 2012-07-29 22:26:31 +12:00
Aldo Cortesi
d7db6757b2 Listen on localhost by default. 2012-07-29 17:29:38 +12:00
Aldo Cortesi
c21639deab Tweak about page to be less po-faced. 2012-07-29 16:46:24 +12:00
Aldo Cortesi
08b95f6aa1 Refactor preview display pages. 2012-07-29 16:33:45 +12:00
Aldo Cortesi
483e8182ff Add new styling (thanks to bootswatch.com) 2012-07-29 13:55:59 +12:00
Aldo Cortesi
d8c53cbc57 Add an option to specify a log file to pathod. 2012-07-27 14:03:15 +12:00
Aldo Cortesi
3e158211a8 Add a --nohang flag that turns off pauses in response generation. 2012-07-26 20:01:51 +12:00
Aldo Cortesi
b879890412 Add the public pathod server. 2012-07-25 13:07:27 +12:00
Aldo Cortesi
eb43291b3c Note that pauses are skipped during previews. 2012-07-25 12:49:22 +12:00
Aldo Cortesi
24f69419df Unit test about page. 2012-07-25 12:39:51 +12:00
Aldo Cortesi
adac9a35c3 Use tabs for request/response definitions on language docs page. 2012-07-25 12:36:53 +12:00
Aldo Cortesi
87306164a6 Expand examples for responses, remove dupes from pathod doc. 2012-07-25 12:18:36 +12:00
Aldo Cortesi
0b916ebbb1 Add a basic about page. 2012-07-25 11:55:44 +12:00
Aldo Cortesi
410144c579 Add examples for each preview form. 2012-07-25 11:36:19 +12:00
Aldo Cortesi
e7e6a60246 Nicer error for empty preview spec submission. 2012-07-25 10:55:00 +12:00
Aldo Cortesi
59f408dcf4 Refine parse error message a bit. 2012-07-25 10:44:21 +12:00
Aldo Cortesi
8cfbc2f80e Refactor test.py, add unit tests for app.py corner case. 2012-07-25 10:34:57 +12:00
Aldo Cortesi
e1df7f47a6 Sizing and placeholder for preview forms. 2012-07-25 10:24:09 +12:00
Aldo Cortesi
7dab85e8b1 Handle file access denied errors in previews. 2012-07-25 00:18:23 +12:00
Aldo Cortesi
64ef0a4561 Swap the offset, seconds arguments for the pause operator.
This makes it uniform with the other operators.s
2012-07-24 23:57:18 +12:00
Aldo Cortesi
cb09488dc8 Make actions at end of message work. 2012-07-24 23:49:58 +12:00
Aldo Cortesi
8f0ebb405d Hide "go" button if crafting is off. Use configured crafting anchor point. 2012-07-24 23:38:41 +12:00
Aldo Cortesi
ab59d6dccf Add preview for pathoc requests to web app. 2012-07-24 23:13:04 +12:00
Aldo Cortesi
6c565e778f Make previews safer by stripping pauses. 2012-07-24 22:38:48 +12:00
Aldo Cortesi
e9de11f0e3 Don't add stuff to our internal log buffer if noapi is on. 2012-07-24 22:30:15 +12:00
Aldo Cortesi
11896d2118 Turn off /log when noapi is set. 2012-07-24 22:27:04 +12:00
Aldo Cortesi
eb1f2c3fc4 Add option to specify craft anchor point. 2012-07-24 21:51:43 +12:00
Aldo Cortesi
97fe026c32 Add basic docs for request spec language. 2012-07-24 21:45:05 +12:00
Aldo Cortesi
94b491bb27 Add a Host header to pathoc requests by default. 2012-07-24 21:38:28 +12:00
Aldo Cortesi
9502eeadaa Document raw flag. 2012-07-24 12:52:53 +12:00
Aldo Cortesi
a9e60fa3e6 Add a Date header to server responses, unless raw is set. 2012-07-24 12:46:14 +12:00
Aldo Cortesi
dbed251fb9 Add a raw modifier to requests and responses, which turn off automatic additions.
For now, this just turns off adding a Content-Length header when a body is specified.
2012-07-24 12:18:14 +12:00
Aldo Cortesi
2dd2137d44 Better handling of binary data output by pathoc. 2012-07-24 00:00:55 +12:00
Aldo Cortesi
a950a4d7a3 Add pathod --noapi to turn off the service API. 2012-07-23 23:31:26 +12:00
Aldo Cortesi
190392ea13 Add a --nocraft option to pathod that turns off crafting. 2012-07-23 21:39:31 +12:00
Aldo Cortesi
622a2b5607 Add a --noweb option to turn web iface off, refactor unit tests. 2012-07-23 19:55:33 +12:00
Aldo Cortesi
eba485f5eb 100% unit test coverage 2012-07-23 19:25:57 +12:00
Aldo Cortesi
763e1ff786 pathod.py unit tests++ 2012-07-23 17:53:17 +12:00
Aldo Cortesi
1d1098687c 100% test coverage for pathoc.py 2012-07-23 17:42:44 +12:00