Main Page Modules Data Structures File List Data Fields Globals Related Pages

# beecrypt/aesopt.h

Go to the documentation of this file.

    00001 /*
    00002  * aesopt.h
    00003  *
    00004  * AES block cipher assembler-optimized routines, header
    00005  *
    00006  * Copyright (c) 2002 Bob Deblier
    00007  *
    00008  * This library is free software; you can redistribute it and/or
    00009  * modify it under the terms of the GNU Lesser General Public
    00010  * License as published by the Free Software Foundation; either
    00011  * version 2.1 of the License, or (at your option) any later version.
    00012  *
    00013  * This library is distributed in the hope that it will be useful,
    00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00016  * Lesser General Public License for more details.
    00017  *
    00018  * You should have received a copy of the GNU Lesser General Public
    00019  * License along with this library; if not, write to the Free Software
    00020  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    00021  *
    00022  */
    00023
    00024 #ifndef _AESOPT_H
    00025 #define _AESOPT_H
    00026
    00027 #ifdef __cplusplus
    00028 extern "C" {
    00029 #endif
    00030
    00031 #if WIN32
    00032 # if defined(_MSC_VER) && defined(_M_IX86)
    00033 #  define ASM_AESENCRYPT
    00034 #  define ASM_AESDECRYPT
    00035 # elif __INTEL__ && __MWERKS__
    00036 #  undef ASM_AESENCRYPT
    00037 #  undef ASM_AESDECRYPT
    00038 # endif
    00039 #endif
    00040
    00041 #if defined(__GNUC__)
    00042 # if defined(OPTIMIZE_I586) || defined(OPTIMIZE_I686)
    00043 #  define ASM_AESENCRYPT
    00044 #  define ASM_AESDECRYPT
    00045 #  define ASM_AESECBENCRYPT
    00046 #  define ASM_AESECBDECRYPT
    00047 # endif
    00048 # if defined(OPTIMIZE_POWERPC)
    00049 #  define ASM_AESENCRYPT
    00050 #  define ASM_AESDECRYPT
    00051 #  define ASM_AESECBENCRYPT
    00052 #  define ASM_AESECBDECRYPT
    00053 # endif
    00054 #endif
    00055
    00056 #if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
    00057 #if defined(OPTIMIZE_I586) || defined(OPTIMIZE_I686)
    00058 #define ASM_AESENCRYPT
    00059 #define ASM_AESDECRYPT
    00060 #endif
    00061 #endif
    00062
    00063 #ifdef __cplusplus
    00064 }
    00065 #endif
    00066
    00067 #endif