Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man3 / Crypt::Rijndael.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 "Rijndael 3"
132.TH Rijndael 3 "2001-09-17" "perl v5.8.0" "User Contributed Perl Documentation"
133.SH "NAME"
134Crypt::Rijndael \- Crypt::CBC compliant Rijndael encryption module
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 1
138\& use Crypt::Rijndael;
139.Ve
140.PP
141.Vb 2
142\& # keysize() is 32, but 24 and 16 are also possible
143\& # blocksize() is 16
144.Ve
145.PP
146.Vb 1
147\& $cipher = new Crypt::Rijndael "a" x 32, Crypt::Rijndael::MODE_CBC;
148.Ve
149.PP
150.Vb 4
151\& $cipher->set_iv($iv);
152\& $crypted = $cipher->encrypt($plaintext);
153\& # - OR -
154\& $plaintext = $cipher->decrypt($crypted);
155.Ve
156.SH "DESCRIPTION"
157.IX Header "DESCRIPTION"
158This module implements the Rijndael cipher, which has just been selected
159as the Advanced Encryption Standard.
160.IP "keysize" 4
161.IX Item "keysize"
162Returns the keysize, which is 32 (bytes). The Rijndael cipher
163actually supports keylengths of 16, 24 or 32 bytes, but there is no
164way to communicate this to \f(CW\*(C`Crypt::CBC\*(C'\fR.
165.IP "blocksize" 4
166.IX Item "blocksize"
167The blocksize for Rijndael is 16 bytes (128 bits), although the
168algorithm actually supports any blocksize that is any multiple of
169our bytes. 128 bits, is however, the AES-specified block size,
170so this is all we support.
171.ie n .IP "$cipher = new $key\fR [, \f(CW$mode]" 4
172.el .IP "$cipher = new \f(CW$key\fR [, \f(CW$mode\fR]" 4
173.IX Item "$cipher = new $key [, $mode]"
174Create a new \f(CW\*(C`Crypt::Rijndael\*(C'\fR cipher object with the given key
175(which must be 128, 192 or 256 bits long). The additional \f(CW$mode\fR
176argument is the encryption mode, either \f(CW\*(C`MODE_ECB\*(C'\fR (electronic
177codebook mode, the default), \f(CW\*(C`MODE_CBC\*(C'\fR (cipher block chaining, the
178same that \f(CW\*(C`Crypt::CBC\*(C'\fR does), \f(CW\*(C`MODE_CFB\*(C'\fR (128\-bit cipher feedback),
179\&\f(CW\*(C`MODE_OFB\*(C'\fR (128\-bit output feedback), or \f(CW\*(C`MODE_CTR\*(C'\fR (counter mode).
180.Sp
181\&\s-1ECB\s0 mode is very insecure (read a book on cryptography if you dont
182know why!), so you should probably use \s-1CBC\s0 mode.
183.IP "$cipher\->set_iv($iv)" 4
184.IX Item "$cipher->set_iv($iv)"
185This allows you to change the initial value vector used by the
186chaining modes. It is not relevant for \s-1ECB\s0 mode.
187.IP "$cipher\->encrypt($data)" 4
188.IX Item "$cipher->encrypt($data)"
189Encrypt data. The size of \f(CW$data\fR must be a multiple of \f(CW\*(C`blocksize\*(C'\fR
190(16 bytes), otherwise this function will croak. Apart from that, it
191can be of (almost) any length.
192.IP "$cipher\->decrypt($data)" 4
193.IX Item "$cipher->decrypt($data)"
194Decrypts \f(CW$data\fR.
195.SH "SEE ALSO"
196.IX Header "SEE ALSO"
197.Vb 1
198\& L<Crypt::CBC>, http://www.csrc.nist.gov/encryption/aes/
199.Ve
200.SH "BUGS"
201.IX Header "BUGS"
202Should \s-1EXPORT\s0 or \s-1EXPORT_OK\s0 the \s-1MODE\s0 constants.
203.SH "AUTHOR"
204.IX Header "AUTHOR"
205.Vb 1
206\& Rafael R. Sevilla <sevillar@team.ph.inter.net>
207.Ve
208.PP
209.Vb 2
210\& The Rijndael Algorithm was developed by Vincent Rijmen and Joan Daemen,
211\& and has been selected as the US Government's Advanced Encryption Standard.
212.Ve