1bbb763dca
MFC after: 3 days
136 lines
3.4 KiB
Groff
136 lines
3.4 KiB
Groff
.\"
|
|
.\" Copyright (c) 2002
|
|
.\" Mark R V Murray. All rights reserved.
|
|
.\"
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
|
|
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\" "
|
|
.Dd February 6, 2002
|
|
.Os
|
|
.Dt RIJNDAEL 9
|
|
.Sh NAME
|
|
.Nm rijndael_makeKey ,
|
|
.Nm rijndael_cipherInit ,
|
|
.Nm rijndael_blockEncrypt ,
|
|
.Nm rijndael_padEncrypt ,
|
|
.Nm rijndael_blockDecrypt ,
|
|
.Nm rijndael_padDecrypt
|
|
.Nd AES encryption.
|
|
.Sh SYNOPSIS
|
|
.Fd #include <crypto/rijndael/rijndael.h>
|
|
.Ft int
|
|
.Fo rijndael_makeKey
|
|
.Fa "keyInstance *key"
|
|
.Fa "u_int8_t direction"
|
|
.Fa "int keyLen"
|
|
.Fa "char *keyMaterial"
|
|
.Fc
|
|
.Ft int
|
|
.Fo rijndael_cipherInit
|
|
.Fa "cipherInstance *cipher"
|
|
.Fa "u_int8_t mode"
|
|
.Fa "char *IV"
|
|
.Fc
|
|
.Ft int
|
|
.Fo rijndael_blockEncrypt
|
|
.Fa "cipherInstance *cipher"
|
|
.Fa "keyInstance *key"
|
|
.Fa "u_int8_t *input"
|
|
.Fa "int inputLen"
|
|
.Fa "u_int8_t *outBuffer"
|
|
.Fc
|
|
.Ft int
|
|
.Fo rijndael_padEncrypt
|
|
.Fa "cipherInstance *cipher"
|
|
.Fa "keyInstance *key"
|
|
.Fa "u_int8_t *input"
|
|
.Fa "int inputOctets"
|
|
.Fa "u_int8_t *outBuffer"
|
|
.Fc
|
|
.Ft int
|
|
.Fo rijndael_blockDecrypt
|
|
.Fa "cipherInstance *cipher"
|
|
.Fa "keyInstance *key"
|
|
.Fa "u_int8_t *input"
|
|
.Fa "int inputLen"
|
|
.Fa "u_int8_t *outBuffer"
|
|
.Fc
|
|
.Ft int
|
|
.Fo rijndael_padDecrypt
|
|
.Fa "cipherInstance *cipher"
|
|
.Fa "keyInstance *key"
|
|
.Fa "u_int8_t *input"
|
|
.Fa "int inputOctets"
|
|
.Fa "u_int8_t *outBuffer"
|
|
.Fc
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm rijndael_makeKey
|
|
function is used to set up the key schedule in
|
|
.Ar key .
|
|
The
|
|
.Ar direction
|
|
(which may be
|
|
.Dv DIR_ENCRYPT
|
|
or
|
|
.Dv DIR_DECRYPT )
|
|
specifies the intended use of the key.
|
|
The length of the key (in bits) is given in
|
|
.Ar keyLen ,
|
|
and must be 128, 192 or 256.
|
|
The actual key is supplied in the buffer pointed to by
|
|
.Ar keyMaterial .
|
|
This material may be raw binary data,
|
|
or an ascii string containing a hexadecimal rendition
|
|
of the raw binary data,
|
|
dependent on a compile-time option in the
|
|
.Nm
|
|
sources -
|
|
.Dv BINARY_KEY_MATERIAL .
|
|
.Pp
|
|
.Sh RETURN VALUES
|
|
The
|
|
.Nm rijndael_makeKey
|
|
function will return
|
|
.Dv BAD_KEY_INSTANCE
|
|
if a null
|
|
.Ar key
|
|
is passed,
|
|
.Dv BAD_KEY_DIR
|
|
if
|
|
.Ar direction
|
|
is not
|
|
.Dv DIR_ENCRYPT
|
|
or
|
|
.Dv DIR_DECRYPT ,
|
|
.Dv BAD_KEY_MAT
|
|
if the key materials are not a hexadecimal string
|
|
(and binary keys are not set),
|
|
and
|
|
.Dv TRUE
|
|
otherwise.
|
|
.Pp
|
|
.Sh AUTHOR
|
|
.An Mark R V Murray .
|