Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man3 / MIME::Base64.3
CommitLineData
86530b38
AT
1.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "MIME::Base64 3"
132.TH MIME::Base64 3 "2002-06-01" "perl v5.8.0" "Perl Programmers Reference Guide"
133.SH "NAME"
134MIME::Base64 \- Encoding and decoding of base64 strings
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 1
138\& use MIME::Base64;
139.Ve
140.PP
141.Vb 2
142\& $encoded = encode_base64('Aladdin:open sesame');
143\& $decoded = decode_base64($encoded);
144.Ve
145.SH "DESCRIPTION"
146.IX Header "DESCRIPTION"
147This module provides functions to encode and decode strings into the
148Base64 encoding specified in \s-1RFC\s0 2045 \- \fI\s-1MIME\s0 (Multipurpose Internet
149Mail Extensions)\fR. The Base64 encoding is designed to represent
150arbitrary sequences of octets in a form that need not be humanly
151readable. A 65\-character subset ([A\-Za\-z0\-9+/=]) of US-ASCII is used,
152enabling 6 bits to be represented per printable character.
153.PP
154The following functions are provided:
155.IP "encode_base64($str, [$eol])" 4
156.IX Item "encode_base64($str, [$eol])"
157Encode data by calling the \fIencode_base64()\fR function. The first
158argument is the string to encode. The second argument is the line
159ending sequence to use (it is optional and defaults to \f(CW"\en"\fR). The
160returned encoded string is broken into lines of no more than 76
161characters each and it will end with \f(CW$eol\fR unless it is empty. Pass an
162empty string as second argument if you do not want the encoded string
163broken into lines.
164.IP "decode_base64($str)" 4
165.IX Item "decode_base64($str)"
166Decode a base64 string by calling the \fIdecode_base64()\fR function. This
167function takes a single argument which is the string to decode and
168returns the decoded data.
169.Sp
170Any character not part of the 65\-character base64 subset set is
171silently ignored. Characters occuring after a '=' padding character
172are never decoded.
173.Sp
174If the length of the string to decode (after ignoring
175non\-base64 chars) is not a multiple of 4 or padding occurs too early,
176then a warning is generated if perl is running under \f(CW\*(C`\-w\*(C'\fR.
177.PP
178If you prefer not to import these routines into your namespace you can
179call them as:
180.PP
181.Vb 3
182\& use MIME::Base64 ();
183\& $encoded = MIME::Base64::encode($decoded);
184\& $decoded = MIME::Base64::decode($encoded);
185.Ve
186.SH "DIAGNOSTICS"
187.IX Header "DIAGNOSTICS"
188The following warnings might be generated if perl is invoked with the
189\&\f(CW\*(C`\-w\*(C'\fR switch:
190.IP "Premature end of base64 data" 4
191.IX Item "Premature end of base64 data"
192The number of characters to decode is not a multiple of 4. Legal
193base64 data should be padded with one or two \*(L"=\*(R" characters to make
194its length a multiple of 4. The decoded result will anyway be as if
195the padding was there.
196.IP "Premature padding of base64 data" 4
197.IX Item "Premature padding of base64 data"
198The '=' padding character occurs as the first or second character
199in a base64 quartet.
200.SH "EXAMPLES"
201.IX Header "EXAMPLES"
202If you want to encode a large file, you should encode it in chunks
203that are a multiple of 57 bytes. This ensures that the base64 lines
204line up and that you do not end up with padding in the middle. 57
205bytes of data fills one complete base64 line (76 == 57*4/3):
206.PP
207.Vb 1
208\& use MIME::Base64 qw(encode_base64);
209.Ve
210.PP
211.Vb 4
212\& open(FILE, "/var/log/wtmp") or die "$!";
213\& while (read(FILE, $buf, 60*57)) {
214\& print encode_base64($buf);
215\& }
216.Ve
217.PP
218or if you know you have enough memory
219.PP
220.Vb 3
221\& use MIME::Base64 qw(encode_base64);
222\& local($/) = undef; # slurp
223\& print encode_base64(<STDIN>);
224.Ve
225.PP
226The same approach as a command line:
227.PP
228.Vb 1
229\& perl -MMIME::Base64 -0777 -ne 'print encode_base64($_)' <file
230.Ve
231.PP
232Decoding does not need slurp mode if all the lines contains a multiple
233of 4 base64 chars:
234.PP
235.Vb 1
236\& perl -MMIME::Base64 -ne 'print decode_base64($_)' <file
237.Ve
238.SH "COPYRIGHT"
239.IX Header "COPYRIGHT"
240Copyright 1995\-1999, 2001 Gisle Aas.
241.PP
242This library is free software; you can redistribute it and/or
243modify it under the same terms as Perl itself.
244.PP
245Distantly based on LWP::Base64 written by Martijn Koster
246<m.koster@nexor.co.uk> and Joerg Reichelt <j.reichelt@nexor.co.uk> and
247code posted to comp.lang.perl <3pd2lp$6gf@wsinti07.win.tue.nl> by Hans
248Mulder <hansm@wsinti07.win.tue.nl>
249.PP
250The \s-1XS\s0 implementation use code from metamail. Copyright 1991 Bell
251Communications Research, Inc. (Bellcore)