Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man3 / Crypt::Blowfish.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 "Blowfish 3"
132.TH Blowfish 3 "2001-11-12" "perl v5.8.0" "User Contributed Perl Documentation"
133.SH "NAME"
134Crypt::Blowfish \- Perl Blowfish encryption module
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 4
138\& use Crypt::Blowfish;
139\& my $cipher = new Crypt::Blowfish $key;
140\& my $ciphertext = $cipher->encrypt($plaintext);
141\& my $plaintext = $cipher->decrypt($ciphertext);
142.Ve
143.SH "DESCRIPTION"
144.IX Header "DESCRIPTION"
145Blowfish is capable of strong encryption and can use key sizes up
146to 56 bytes (a 448 bit key). You're encouraged to take advantage
147of the full key size to ensure the strongest encryption possible
148from this module.
149.PP
150Crypt::Blowfish has the following methods:
151.Sp
152.Vb 4
153\& blocksize()
154\& keysize()
155\& encrypt()
156\& decrypt()
157.Ve
158.SH "FUNCTIONS"
159.IX Header "FUNCTIONS"
160.IP "blocksize" 4
161.IX Item "blocksize"
162Returns the size (in bytes) of the block cipher.
163.Sp
164Crypt::Blowfish doesn't return a key size due to its ability
165to use variable-length keys. (well, more accurately, it won't
166as of 2.09 .. for now, it does. expect that to change)
167.IP "new" 4
168.IX Item "new"
169.Vb 1
170\& my $cipher = new Crypt::Blowfish $key;
171.Ve
172.Sp
173This creates a new Crypt::Blowfish BlockCipher object, using \f(CW$key\fR,
174where \f(CW$key\fR is a key of \f(CW\*(C`keysize()\*(C'\fR bytes (minimum of eight bytes).
175.IP "encrypt" 4
176.IX Item "encrypt"
177.Vb 2
178\& my $cipher = new Crypt::Blowfish $key;
179\& my $ciphertext = $cipher->encrypt($plaintext);
180.Ve
181.Sp
182This function encrypts \f(CW$plaintext\fR and returns the \f(CW$ciphertext\fR
183where \f(CW$plaintext\fR and \f(CW$ciphertext\fR must be of \f(CW\*(C`blocksize()\*(C'\fR bytes.
184(hint: Blowfish is an 8 byte block cipher)
185.IP "decrypt" 4
186.IX Item "decrypt"
187.Vb 2
188\& my $cipher = new Crypt::Blowfish $key;
189\& my $plaintext = $cipher->decrypt($ciphertext);
190.Ve
191.Sp
192This function decrypts \f(CW$ciphertext\fR and returns the \f(CW$plaintext\fR
193where \f(CW$plaintext\fR and \f(CW$ciphertext\fR must be of \f(CW\*(C`blocksize()\*(C'\fR bytes.
194(hint: see previous hint)
195.SH "EXAMPLE"
196.IX Header "EXAMPLE"
197.Vb 4
198\& my $key = pack("H16", "0123456789ABCDEF"); # min. 8 bytes
199\& my $cipher = new Crypt::Blowfish $key;
200\& my $ciphertext = $cipher->encrypt("plaintex"); # SEE NOTES
201\& print unpack("H16", $ciphertext), "\en";
202.Ve
203.SH "PLATFORMS"
204.IX Header "PLATFORMS"
205.Vb 2
206\& Please see the README document for platforms and performance
207\& tests.
208.Ve
209.SH "NOTES"
210.IX Header "NOTES"
211The module is capable of being used with Crypt::CBC. You're
212encouraged to read the perldoc for Crypt::CBC if you intend to
213use this module for Cipher Block Chaining modes. In fact, if
214you have any intentions of encrypting more than eight bytes of
215data with this, or any other block cipher, you're going to need
216\&\fBsome\fR type of block chaining help. Crypt::CBC tends to be
217very good at this. If you're not going to encrypt more than
218eight bytes, your data \fBmust\fR be \fBexactly\fR eight bytes long.
219If need be, do your own padding. \*(L"\e0\*(R" as a null byte is perfectly
220valid to use for this. Additionally, the current maintainer for
221Crypt::Blowfish may or may not release Crypt::CBC_R which
222replaces the default 'RandomIV' initialization vector in
223Crypt::CBC with a random initialization vector. (to the limits
224of /dev/urandom and associates) In either case, please email
225amused@pobox.com for Crypt::CBC_R.
226.SH "SEE ALSO"
227.IX Header "SEE ALSO"
228Crypt::CBC,
229Crypt::DES,
230Crypt::IDEA
231.PP
232Bruce Schneier, \fIApplied Cryptography\fR, 1995, Second Edition,
233published by John Wiley & Sons, Inc.
234.SH "COPYRIGHT"
235.IX Header "COPYRIGHT"
236The implementation of the Blowfish algorithm was developed by,
237and is copyright of, A.M. Kuchling.
238.PP
239Other parts of the perl extension and module are
240copyright of Systemics Ltd ( http://www.systemics.com/ ).
241.PP
242Code revisions, updates, and standalone release are copyright
2431999\-2001 W3Works, \s-1LLC\s0.
244.SH "AUTHOR"
245.IX Header "AUTHOR"
246Original algorithm, Bruce Shneier. Original implementation, A.M.
247Kuchling. Original Perl implementation, Systemics Ltd. Current
248maintenance by W3Works, \s-1LLC\s0.
249.PP
250Current revision and maintainer: Dave Paris <amused@pobox.com>