diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-03 11:25:13 +0000 |
commit | 458120dd40db6b4df55a4e96b650e16798ef06a0 (patch) | |
tree | 8f82685be24fef97e715c6f5ca4c68d34d5074ee /sys/src/cmd/python/Doc/lib/libbase64.tex | |
parent | 3a742c699f6806c1145aea5149bf15de15a0afd7 (diff) |
add hg and python
Diffstat (limited to 'sys/src/cmd/python/Doc/lib/libbase64.tex')
-rw-r--r-- | sys/src/cmd/python/Doc/lib/libbase64.tex | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/sys/src/cmd/python/Doc/lib/libbase64.tex b/sys/src/cmd/python/Doc/lib/libbase64.tex new file mode 100644 index 000000000..d7eccbdb1 --- /dev/null +++ b/sys/src/cmd/python/Doc/lib/libbase64.tex @@ -0,0 +1,169 @@ +\section{\module{base64} --- + RFC 3548: Base16, Base32, Base64 Data Encodings} + +\declaremodule{standard}{base64} +\modulesynopsis{RFC 3548: Base16, Base32, Base64 Data Encodings} + + +\indexii{base64}{encoding} +\index{MIME!base64 encoding} + +This module provides data encoding and decoding as specified in +\rfc{3548}. This standard defines the Base16, Base32, and Base64 +algorithms for encoding and decoding arbitrary binary strings into +text strings that can be safely sent by email, used as parts of URLs, +or included as part of an HTTP POST request. The encoding algorithm is +not the same as the \program{uuencode} program. + +There are two interfaces provided by this module. The modern +interface supports encoding and decoding string objects using all +three alphabets. The legacy interface provides for encoding and +decoding to and from file-like objects as well as strings, but only +using the Base64 standard alphabet. + +The modern interface, which was introduced in Python 2.4, provides: + +\begin{funcdesc}{b64encode}{s\optional{, altchars}} +Encode a string use Base64. + +\var{s} is the string to encode. Optional \var{altchars} must be a +string of at least length 2 (additional characters are ignored) which +specifies an alternative alphabet for the \code{+} and \code{/} +characters. This allows an application to e.g. generate URL or +filesystem safe Base64 strings. The default is \code{None}, for which +the standard Base64 alphabet is used. + +The encoded string is returned. +\end{funcdesc} + +\begin{funcdesc}{b64decode}{s\optional{, altchars}} +Decode a Base64 encoded string. + +\var{s} is the string to decode. Optional \var{altchars} must be a +string of at least length 2 (additional characters are ignored) which +specifies the alternative alphabet used instead of the \code{+} and +\code{/} characters. + +The decoded string is returned. A \exception{TypeError} is raised if +\var{s} were incorrectly padded or if there are non-alphabet +characters present in the string. +\end{funcdesc} + +\begin{funcdesc}{standard_b64encode}{s} +Encode string \var{s} using the standard Base64 alphabet. +\end{funcdesc} + +\begin{funcdesc}{standard_b64decode}{s} +Decode string \var{s} using the standard Base64 alphabet. +\end{funcdesc} + +\begin{funcdesc}{urlsafe_b64encode}{s} +Encode string \var{s} using a URL-safe alphabet, which substitutes +\code{-} instead of \code{+} and \code{_} instead of \code{/} in the +standard Base64 alphabet. +\end{funcdesc} + +\begin{funcdesc}{urlsafe_b64decode}{s} +Decode string \var{s} using a URL-safe alphabet, which substitutes +\code{-} instead of \code{+} and \code{_} instead of \code{/} in the +standard Base64 alphabet. +\end{funcdesc} + +\begin{funcdesc}{b32encode}{s} +Encode a string using Base32. \var{s} is the string to encode. The +encoded string is returned. +\end{funcdesc} + +\begin{funcdesc}{b32decode}{s\optional{, casefold\optional{, map01}}} +Decode a Base32 encoded string. + +\var{s} is the string to decode. Optional \var{casefold} is a flag +specifying whether a lowercase alphabet is acceptable as input. For +security purposes, the default is \code{False}. + +\rfc{3548} allows for optional mapping of the digit 0 (zero) to the +letter O (oh), and for optional mapping of the digit 1 (one) to either +the letter I (eye) or letter L (el). The optional argument +\var{map01} when not \code{None}, specifies which letter the digit 1 should +be mapped to (when map01 is not \var{None}, the digit 0 is always +mapped to the letter O). For security purposes the default is +\code{None}, so that 0 and 1 are not allowed in the input. + +The decoded string is returned. A \exception{TypeError} is raised if +\var{s} were incorrectly padded or if there are non-alphabet characters +present in the string. +\end{funcdesc} + +\begin{funcdesc}{b16encode}{s} +Encode a string using Base16. + +\var{s} is the string to encode. The encoded string is returned. +\end{funcdesc} + +\begin{funcdesc}{b16decode}{s\optional{, casefold}} +Decode a Base16 encoded string. + +\var{s} is the string to decode. Optional \var{casefold} is a flag +specifying whether a lowercase alphabet is acceptable as input. For +security purposes, the default is \code{False}. + +The decoded string is returned. A \exception{TypeError} is raised if +\var{s} were incorrectly padded or if there are non-alphabet +characters present in the string. +\end{funcdesc} + +The legacy interface: + +\begin{funcdesc}{decode}{input, output} +Decode the contents of the \var{input} file and write the resulting +binary data to the \var{output} file. +\var{input} and \var{output} must either be file objects or objects that +mimic the file object interface. \var{input} will be read until +\code{\var{input}.read()} returns an empty string. +\end{funcdesc} + +\begin{funcdesc}{decodestring}{s} +Decode the string \var{s}, which must contain one or more lines of +base64 encoded data, and return a string containing the resulting +binary data. +\end{funcdesc} + +\begin{funcdesc}{encode}{input, output} +Encode the contents of the \var{input} file and write the resulting +base64 encoded data to the \var{output} file. +\var{input} and \var{output} must either be file objects or objects that +mimic the file object interface. \var{input} will be read until +\code{\var{input}.read()} returns an empty string. \function{encode()} +returns the encoded data plus a trailing newline character +(\code{'\e n'}). +\end{funcdesc} + +\begin{funcdesc}{encodestring}{s} +Encode the string \var{s}, which can contain arbitrary binary data, +and return a string containing one or more lines of +base64-encoded data. \function{encodestring()} returns a +string containing one or more lines of base64-encoded data +always including an extra trailing newline (\code{'\e n'}). +\end{funcdesc} + +An example usage of the module: + +\begin{verbatim} +>>> import base64 +>>> encoded = base64.b64encode('data to be encoded') +>>> encoded +'ZGF0YSB0byBiZSBlbmNvZGVk' +>>> data = base64.b64decode(encoded) +>>> data +'data to be encoded' +\end{verbatim} + +\begin{seealso} + \seemodule{binascii}{Support module containing \ASCII-to-binary + and binary-to-\ASCII{} conversions.} + \seerfc{1521}{MIME (Multipurpose Internet Mail Extensions) Part One: + Mechanisms for Specifying and Describing the Format of + Internet Message Bodies}{Section 5.2, ``Base64 + Content-Transfer-Encoding,'' provides the definition of the + base64 encoding.} +\end{seealso} |