aboutsummaryrefslogtreecommitdiffstats
path: root/netlib/http.py
diff options
context:
space:
mode:
Diffstat (limited to 'netlib/http.py')
-rw-r--r--netlib/http.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/netlib/http.py b/netlib/http.py
index bc09c8a1..10b6a402 100644
--- a/netlib/http.py
+++ b/netlib/http.py
@@ -1,4 +1,4 @@
-import string, urlparse
+import string, urlparse, binascii
import odict
class HttpError(Exception):
@@ -169,6 +169,26 @@ def parse_http_protocol(s):
return major, minor
+def parse_http_basic_auth(s):
+ words = s.split()
+ if len(words) != 2:
+ return None
+ scheme = words[0]
+ try:
+ user = binascii.a2b_base64(words[1])
+ except binascii.Error:
+ return None
+ parts = user.split(':')
+ if len(parts) != 2:
+ return None
+ return scheme, parts[0], parts[1]
+
+
+def assemble_http_basic_auth(scheme, username, password):
+ v = binascii.b2a_base64(username + ":" + password)
+ return scheme + " " + v
+
+
def parse_init(line):
try:
method, url, protocol = string.split(line)