Package pyxmpp :: Package sasl :: Module digest_md5
[hide private]

Module digest_md5

source code

DIGEST-MD5 authentication mechanism for PyXMPP SASL implementation.

Normative reference:
Classes [hide private]
  DigestMD5ClientAuthenticator
Provides PLAIN SASL authentication for a client.
  DigestMD5ServerAuthenticator
Provides DIGEST-MD5 SASL authentication for a server.
Functions [hide private]
str
_unquote(s)
Unquote quoted value from DIGEST-MD5 challenge or response.
source code
str
_quote(s)
Prepare a string for quoting for DIGEST-MD5 challenge or response.
source code
str
_h_value(s)
H function of the DIGEST-MD5 algorithm (MD5 sum).
source code
str
_kd_value(k, s)
KD function of the DIGEST-MD5 algorithm.
source code
str
_make_urp_hash(username, realm, passwd)
Compute MD5 sum of username:realm:password.
source code
str
_compute_response(urp_hash, nonce, cnonce, nonce_count, authzid, digest_uri)
Compute DIGEST-MD5 response value.
source code
str
_compute_response_auth(urp_hash, nonce, cnonce, nonce_count, authzid, digest_uri)
Compute DIGEST-MD5 rspauth value.
source code
Variables [hide private]
  quote_re = re.compile(r'(?<!\\)\\(.)')
  _param_re = re.compile(r'^(?P<var>[^=]+)=(?P<val>("(([^"\\]+)|...
  __package__ = 'pyxmpp.sasl'

Imports: b2a_hex, re, logging, hashlib, ClientAuthenticator, ServerAuthenticator, Response, Challenge, Success, Failure, to_utf8, from_utf8


Function Details [hide private]

_unquote(s)

source code 

Unquote quoted value from DIGEST-MD5 challenge or response.

If s doesn't start or doesn't end with '"' then return it unchanged, remove the quotes and escape backslashes otherwise.

Parameters:
  • s (: str) - : a quoted string.
Returns: str
the unquoted string.

_quote(s)

source code 

Prepare a string for quoting for DIGEST-MD5 challenge or response.

Don't add the quotes, only escape '"' and "" with backslashes.

Parameters:
  • s (: str) - : a raw string.
Returns: str
s with '"' and "" escaped using "".

_h_value(s)

source code 
H function of the DIGEST-MD5 algorithm (MD5 sum).
Parameters:
  • s (: str) - : a string.
Returns: str
MD5 sum of the string.

_kd_value(k, s)

source code 
KD function of the DIGEST-MD5 algorithm.
Parameters:
  • k (: str) - : a string.
  • s (: str) - : a string.
Returns: str
MD5 sum of the strings joined with ':'.

_make_urp_hash(username, realm, passwd)

source code 
Compute MD5 sum of username:realm:password.
Parameters:
  • username (: str) - : a username.
  • realm (: str) - : a realm.
  • passwd (: str) - : a password.
Returns: str
the MD5 sum of the parameters joined with ':'.

_compute_response(urp_hash, nonce, cnonce, nonce_count, authzid, digest_uri)

source code 
Compute DIGEST-MD5 response value.
Parameters:
  • urp_hash (: str) - : MD5 sum of username:realm:password.
  • nonce (: str) - : nonce value from a server challenge.
  • cnonce - : cnonce value from the client response.
  • nonce_count (: int) - : nonce count value.
  • authzid (: str) - : authorization id.
  • digest_uri (: str) - : digest-uri value.
Returns: str
the computed response value.

_compute_response_auth(urp_hash, nonce, cnonce, nonce_count, authzid, digest_uri)

source code 
Compute DIGEST-MD5 rspauth value.
Parameters:
  • urp_hash (: str) - : MD5 sum of username:realm:password.
  • nonce (: str) - : nonce value from a server challenge.
  • cnonce - : cnonce value from the client response.
  • nonce_count (: int) - : nonce count value.
  • authzid (: str) - : authorization id.
  • digest_uri (: str) - : digest-uri value.
Returns: str
the computed rspauth value.

Variables Details [hide private]

_param_re

Value:
re.compile(r'^(?P<var>[^=]+)=(?P<val>("(([^"\\]+)|(\\")|(\\\\))+")|([^\
",]+))(\s*,\s*(?P<rest>.*))?$')