\section{\module{hmac} --- Keyed-Hashing for Message Authentication} \declaremodule{standard}{hmac} \modulesynopsis{Keyed-Hashing for Message Authentication (HMAC) implementation for Python.} \moduleauthor{Gerhard H{\"a}ring}{ghaering@users.sourceforge.net} \sectionauthor{Gerhard H{\"a}ring}{ghaering@users.sourceforge.net} \versionadded{2.2} This module implements the HMAC algorithm as described by \rfc{2104}. \begin{funcdesc}{new}{key\optional{, msg\optional{, digestmod}}} Return a new hmac object. If \var{msg} is present, the method call \code{update(\var{msg})} is made. \var{digestmod} is the digest module for the HMAC object to use. It defaults to the \refmodule{md5} module. \end{funcdesc} An HMAC object has the following methods: \begin{methoddesc}[hmac]{update}{msg} Update the hmac object with the string \var{msg}. Repeated calls are equivalent to a single call with the concatenation of all the arguments: \code{m.update(a); m.update(b)} is equivalent to \code{m.update(a + b)}. \end{methoddesc} \begin{methoddesc}[hmac]{digest}{} Return the digest of the strings passed to the \method{update()} method so far. This is a 16-byte string (for \refmodule{md5}) or a 20-byte string (for \refmodule{sha}) which may contain non-\ASCII{} characters, including NUL bytes. \end{methoddesc} \begin{methoddesc}[hmac]{hexdigest}{} Like \method{digest()} except the digest is returned as a string of length 32 for \refmodule{md5} (40 for \refmodule{sha}), containing only hexadecimal digits. This may be used to exchange the value safely in email or other non-binary environments. \end{methoddesc} \begin{methoddesc}[hmac]{copy}{} Return a copy (``clone'') of the hmac object. This can be used to efficiently compute the digests of strings that share a common initial substring. \end{methoddesc}