ref: 5513dae7d9eee46f7e1843c8eeeaf9066d0ec632
dir: /sys/src/cmd/python/Doc/lib/libhmac.tex/
\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 constructor or module for the HMAC object to use. It defaults to the \code{\refmodule{hashlib}.md5} constructor. \note{The md5 hash has known weaknesses but remains the default for backwards compatibility. Choose a better one for your application.} \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 string will be the same length as the \var{digest_size} of the digest given to the constructor. It 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 twice the length 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} \begin{seealso} \seemodule{hashlib}{The python module providing secure hash functions.} \end{seealso}