From 9ccb144c18e2f0bec17a61aaf05be5625932dfa6 Mon Sep 17 00:00:00 2001 From: Alexandre Dulaunoy Date: Sat, 15 Jul 2023 10:27:12 +0200 Subject: [PATCH] chg: [doc] updated docstring to Markdown format --- hhhash/create.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/hhhash/create.py b/hhhash/create.py index 64e8b81..02b6658 100644 --- a/hhhash/create.py +++ b/hhhash/create.py @@ -6,11 +6,13 @@ def buildhash(url=None, debug=False, method='GET', timeout=5): """Build a HHHash from an HTTP request to specific url. Keyword arguments: - url -- the url to build the HHHash from the response headers (default None) - debug -- output the headers returned before hashing (default False) - method -- HTTP method to use (GET or HEAD) (default GET) - timeout -- default timeout for the connect/read timeout of request (default 2) - """ + - `url` -- the url to build the HHHash from the response headers (default None) + - `debug` -- output the headers returned before hashing (default False) + - `method` -- HTTP method to use (GET or HEAD) (default GET) + - `timeout` -- default timeout for the connect/read timeout of request (default 2) + + For more details about the [HHHash algorithm](https://www.foo.be/2023/07/HTTP-Headers-Hashing_HHHash). + """ if url is None: return False if method == 'GET': @@ -30,13 +32,15 @@ def buildhash(url=None, debug=False, method='GET', timeout=5): return f"hhh:1:{digest}" def hash_from_banner(banner, debug=False): - """Create a HHHash from an already fetched banner. Lines without colons will be skipped. + """Create a HHHash from an already fetched banner. Lines without colons will be skipped. Keyword arguments: - banner -- HTTP banner string - debug -- output the headers returned before hashing - - Example: + - `banner` -- HTTP banner as a string + - `debug` -- output the headers returned before hashing + + Example usage: + + ``` >>> hash_from_banner('''HTTP/1.1 200 OK ... Content-Type: text/html; charset=ISO-8859-1 ... Content-Security-Policy-Report-Only: object-src 'none';base-uri 'self';script-src 'nonce-iV-j91UJEG2jNx4j6EeTug' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp @@ -53,6 +57,8 @@ def hash_from_banner(banner, debug=False): ... Set-Cookie: ... Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000''') hhh:1:d9576f3e7a381562f7d18a514ab095fa8699e96891d346d0042f83e942373215 + + ``` """ hhhash = "" for line in banner.splitlines():