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