xref: /freebsd/share/man/man9/rijndael.9 (revision e229cfa536c703f15349cf499968c0cc509d6254)
1be6b96eaSMark Murray.\"
2be6b96eaSMark Murray.\" Copyright (c) 2002
3be6b96eaSMark Murray.\"	Mark R V Murray.  All rights reserved.
4be6b96eaSMark Murray.\"
5be6b96eaSMark Murray.\" All rights reserved.
6be6b96eaSMark Murray.\"
7be6b96eaSMark Murray.\" Redistribution and use in source and binary forms, with or without
8be6b96eaSMark Murray.\" modification, are permitted provided that the following conditions
9be6b96eaSMark Murray.\" are met:
10be6b96eaSMark Murray.\" 1. Redistributions of source code must retain the above copyright
11be6b96eaSMark Murray.\"    notice, this list of conditions and the following disclaimer.
12be6b96eaSMark Murray.\" 2. Redistributions in binary form must reproduce the above copyright
13be6b96eaSMark Murray.\"    notice, this list of conditions and the following disclaimer in the
14be6b96eaSMark Murray.\"    documentation and/or other materials provided with the distribution.
15be6b96eaSMark Murray.\"
16be6b96eaSMark Murray.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
17be6b96eaSMark Murray.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18be6b96eaSMark Murray.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19be6b96eaSMark Murray.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
20be6b96eaSMark Murray.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21be6b96eaSMark Murray.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22be6b96eaSMark Murray.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23be6b96eaSMark Murray.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24be6b96eaSMark Murray.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25be6b96eaSMark Murray.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26be6b96eaSMark Murray.\"
27be6b96eaSMark Murray.\" $FreeBSD$
28be6b96eaSMark Murray.\" "
29be6b96eaSMark Murray.Dd February 6, 2002
30be6b96eaSMark Murray.Os
31be6b96eaSMark Murray.Dt RIJNDAEL 9
32be6b96eaSMark Murray.Sh NAME
33be6b96eaSMark Murray.Nm rijndael_makeKey ,
34be6b96eaSMark Murray.Nm rijndael_cipherInit ,
35be6b96eaSMark Murray.Nm rijndael_blockEncrypt ,
36be6b96eaSMark Murray.Nm rijndael_padEncrypt ,
37be6b96eaSMark Murray.Nm rijndael_blockDecrypt ,
38be6b96eaSMark Murray.Nm rijndael_padDecrypt
39a689555cSRuslan Ermilov.Nd AES encryption
40be6b96eaSMark Murray.Sh SYNOPSIS
41e6f97cc4SChad David.In sys/types.h
42e229cfa5SHiten Pandya.In crypto/rijndael.h
43be6b96eaSMark Murray.Ft int
44be6b96eaSMark Murray.Fo rijndael_makeKey
45be6b96eaSMark Murray.Fa "keyInstance *key"
46be6b96eaSMark Murray.Fa "u_int8_t direction"
47be6b96eaSMark Murray.Fa "int keyLen"
48be6b96eaSMark Murray.Fa "char *keyMaterial"
49be6b96eaSMark Murray.Fc
50be6b96eaSMark Murray.Ft int
51be6b96eaSMark Murray.Fo rijndael_cipherInit
52be6b96eaSMark Murray.Fa "cipherInstance *cipher"
53be6b96eaSMark Murray.Fa "u_int8_t mode"
54be6b96eaSMark Murray.Fa "char *IV"
55be6b96eaSMark Murray.Fc
56be6b96eaSMark Murray.Ft int
57be6b96eaSMark Murray.Fo rijndael_blockEncrypt
58be6b96eaSMark Murray.Fa "cipherInstance *cipher"
59be6b96eaSMark Murray.Fa "keyInstance *key"
60be6b96eaSMark Murray.Fa "u_int8_t *input"
61be6b96eaSMark Murray.Fa "int inputLen"
62be6b96eaSMark Murray.Fa "u_int8_t *outBuffer"
63be6b96eaSMark Murray.Fc
64be6b96eaSMark Murray.Ft int
65be6b96eaSMark Murray.Fo rijndael_padEncrypt
66be6b96eaSMark Murray.Fa "cipherInstance *cipher"
67be6b96eaSMark Murray.Fa "keyInstance *key"
68be6b96eaSMark Murray.Fa "u_int8_t *input"
69be6b96eaSMark Murray.Fa "int inputOctets"
70be6b96eaSMark Murray.Fa "u_int8_t *outBuffer"
71be6b96eaSMark Murray.Fc
72be6b96eaSMark Murray.Ft int
73be6b96eaSMark Murray.Fo rijndael_blockDecrypt
74be6b96eaSMark Murray.Fa "cipherInstance *cipher"
75be6b96eaSMark Murray.Fa "keyInstance *key"
76be6b96eaSMark Murray.Fa "u_int8_t *input"
77be6b96eaSMark Murray.Fa "int inputLen"
78be6b96eaSMark Murray.Fa "u_int8_t *outBuffer"
79be6b96eaSMark Murray.Fc
80be6b96eaSMark Murray.Ft int
81be6b96eaSMark Murray.Fo rijndael_padDecrypt
82be6b96eaSMark Murray.Fa "cipherInstance *cipher"
83be6b96eaSMark Murray.Fa "keyInstance *key"
84be6b96eaSMark Murray.Fa "u_int8_t *input"
85be6b96eaSMark Murray.Fa "int inputOctets"
86be6b96eaSMark Murray.Fa "u_int8_t *outBuffer"
87be6b96eaSMark Murray.Fc
88be6b96eaSMark Murray.Sh DESCRIPTION
89be6b96eaSMark MurrayThe
90a689555cSRuslan Ermilov.Fn rijndael_makeKey
91be6b96eaSMark Murrayfunction is used to set up the key schedule in
92a689555cSRuslan Ermilov.Fa key .
93be6b96eaSMark MurrayThe
94a689555cSRuslan Ermilov.Fa direction
95be6b96eaSMark Murray(which may be
96be6b96eaSMark Murray.Dv DIR_ENCRYPT
97be6b96eaSMark Murrayor
98be6b96eaSMark Murray.Dv DIR_DECRYPT )
99be6b96eaSMark Murrayspecifies the intended use of the key.
100be6b96eaSMark MurrayThe length of the key (in bits) is given in
101a689555cSRuslan Ermilov.Fa keyLen ,
102be6b96eaSMark Murrayand must be 128, 192 or 256.
103be6b96eaSMark MurrayThe actual key is supplied in the buffer pointed to by
104a689555cSRuslan Ermilov.Fa keyMaterial .
105be6b96eaSMark MurrayThis material may be raw binary data,
106a689555cSRuslan Ermilovor an ASCII string containing a hexadecimal rendition
107be6b96eaSMark Murrayof the raw binary data,
108341229f5SJens Schweikhardtdependent on a compile-time option in the
109be6b96eaSMark Murray.Nm
110a689555cSRuslan Ermilovsources,
111be6b96eaSMark Murray.Dv BINARY_KEY_MATERIAL .
112be6b96eaSMark Murray.Sh RETURN VALUES
113be6b96eaSMark MurrayThe
114a689555cSRuslan Ermilov.Fn rijndael_makeKey
115be6b96eaSMark Murrayfunction will return
116be6b96eaSMark Murray.Dv BAD_KEY_INSTANCE
117a689555cSRuslan Ermilovif a
118a689555cSRuslan Ermilov.Dv NULL
119a689555cSRuslan Ermilov.Fa key
120be6b96eaSMark Murrayis passed,
121be6b96eaSMark Murray.Dv BAD_KEY_DIR
122be6b96eaSMark Murrayif
123a689555cSRuslan Ermilov.Fa direction
124be6b96eaSMark Murrayis not
125be6b96eaSMark Murray.Dv DIR_ENCRYPT
126be6b96eaSMark Murrayor
127be6b96eaSMark Murray.Dv DIR_DECRYPT ,
128be6b96eaSMark Murray.Dv BAD_KEY_MAT
129be6b96eaSMark Murrayif the key materials are not a hexadecimal string
130be6b96eaSMark Murray(and binary keys are not set),
131be6b96eaSMark Murrayand
132be6b96eaSMark Murray.Dv TRUE
133be6b96eaSMark Murrayotherwise.
134a689555cSRuslan Ermilov.Sh AUTHORS
135a689555cSRuslan Ermilov.An Mark R V Murray
136