aes reverse compat.

This commit is contained in:
Jacob Barthelmeh 2015-01-05 14:16:28 -07:00
parent e204c41768
commit 37deb65371
2 changed files with 73 additions and 74 deletions

View File

@ -56,7 +56,6 @@
#ifndef NO_AES
#include <wolfssl/wolfcrypt/aes.h>
#define CTAO_CRYPT_AES_H WOLF_CRYPT_AES_H
#define AesSetKey wc_AesSetKey
#define AesSetIV wc_AesSetIV
#define AesCbcEncrypt wc_AesCbcEncrypt

View File

@ -29,13 +29,13 @@
#include <wolfssl/wolfcrypt/types.h>
/* included for fips @wc_fips */
#ifdef HAVE_FIPS
#include <cyassl/ctaocrypt/aes.h>
#ifdef HAVE_FIPS
#if defined(CYASSL_AES_COUNTER) && !defined(WOLFSSL_AES_COUNTER)
#define WOLFSSL_AES_COUNTER
#endif
#if !defined(WOLFSSL_AES_DIRECT) && defined(CYASSL_AES_DIRECT)
#define WOLFSSL_AES_DIRECT
#define WOLFSSL_AES_DIRECT
#endif
#endif
@ -45,27 +45,27 @@
#include "cavium_common.h"
#endif
#ifdef WOLFSSL_AESNI
#include <wmmintrin.h>
#if !defined (ALIGN16)
#if defined (__GNUC__)
#define ALIGN16 __attribute__ ( (aligned (16)))
#elif defined(_MSC_VER)
/* disable align warning, we want alignment ! */
#pragma warning(disable: 4324)
#define ALIGN16 __declspec (align (16))
#else
#define ALIGN16
#endif
#endif
#endif /* WOLFSSL_AESNI */
#if !defined (ALIGN16)
#define ALIGN16
#endif
//#ifdef WOLFSSL_AESNI
//
//#include <wmmintrin.h>
//
//#if !defined (ALIGN16)
// #if defined (__GNUC__)
// #define ALIGN16 __attribute__ ( (aligned (16)))
// #elif defined(_MSC_VER)
// /* disable align warning, we want alignment ! */
// #pragma warning(disable: 4324)
// #define ALIGN16 __declspec (align (16))
// #else
// #define ALIGN16
// #endif
//#endif
//
//#endif /* WOLFSSL_AESNI */
//
//#if !defined (ALIGN16)
// #define ALIGN16
//#endif
#endif /* HAVE_FIPS */
#ifdef __cplusplus
@ -73,56 +73,56 @@
#endif
#if !defined(HAVE_FIPS) && !defined(CTAO_CRYPT_AES_H)
#define WOLFSSL_AES_CAVIUM_MAGIC 0xBEEF0002
enum {
AES_ENC_TYPE = 1, /* cipher unique type */
AES_ENCRYPTION = 0,
AES_DECRYPTION = 1,
AES_BLOCK_SIZE = 16
};
typedef struct Aes {
/* AESNI needs key first, rounds 2nd, not sure why yet */
ALIGN16 word32 key[60];
word32 rounds;
ALIGN16 word32 reg[AES_BLOCK_SIZE / sizeof(word32)]; /* for CBC mode */
ALIGN16 word32 tmp[AES_BLOCK_SIZE / sizeof(word32)]; /* same */
#ifdef HAVE_AESGCM
ALIGN16 byte H[AES_BLOCK_SIZE];
#ifdef GCM_TABLE
/* key-based fast multiplication table. */
ALIGN16 byte M0[256][AES_BLOCK_SIZE];
#endif /* GCM_TABLE */
#endif /* HAVE_AESGCM */
#ifdef WOLFSSL_AESNI
byte use_aesni;
#endif /* WOLFSSL_AESNI */
#ifdef HAVE_CAVIUM
AesType type; /* aes key type */
int devId; /* nitrox device id */
word32 magic; /* using cavium magic */
word64 contextHandle; /* nitrox context memory handle */
#endif
#ifdef WOLFSSL_AES_COUNTER
word32 left; /* unsued bytes left from last call */
#endif
#ifdef WOLFSSL_PIC32MZ_CRYPT
word32 key_ce[AES_BLOCK_SIZE*2/sizeof(word32)] ;
word32 iv_ce [AES_BLOCK_SIZE /sizeof(word32)] ;
int keylen ;
#endif
} Aes;
#ifdef HAVE_AESGCM
typedef struct Gmac {
Aes aes;
} Gmac;
#endif /* HAVE_AESGCM */
//#define WOLFSSL_AES_CAVIUM_MAGIC 0xBEEF0002
//
//enum {
// AES_ENC_TYPE = 1, /* cipher unique type */
// AES_ENCRYPTION = 0,
// AES_DECRYPTION = 1,
// AES_BLOCK_SIZE = 16
//};
//
//
//typedef struct Aes {
// /* AESNI needs key first, rounds 2nd, not sure why yet */
// ALIGN16 word32 key[60];
// word32 rounds;
//
// ALIGN16 word32 reg[AES_BLOCK_SIZE / sizeof(word32)]; /* for CBC mode */
// ALIGN16 word32 tmp[AES_BLOCK_SIZE / sizeof(word32)]; /* same */
//
//#ifdef HAVE_AESGCM
// ALIGN16 byte H[AES_BLOCK_SIZE];
//#ifdef GCM_TABLE
// /* key-based fast multiplication table. */
// ALIGN16 byte M0[256][AES_BLOCK_SIZE];
//#endif /* GCM_TABLE */
//#endif /* HAVE_AESGCM */
//#ifdef WOLFSSL_AESNI
// byte use_aesni;
//#endif /* WOLFSSL_AESNI */
//#ifdef HAVE_CAVIUM
// AesType type; /* aes key type */
// int devId; /* nitrox device id */
// word32 magic; /* using cavium magic */
// word64 contextHandle; /* nitrox context memory handle */
//#endif
//#ifdef WOLFSSL_AES_COUNTER
// word32 left; /* unsued bytes left from last call */
//#endif
//#ifdef WOLFSSL_PIC32MZ_CRYPT
// word32 key_ce[AES_BLOCK_SIZE*2/sizeof(word32)] ;
// word32 iv_ce [AES_BLOCK_SIZE /sizeof(word32)] ;
// int keylen ;
//#endif
//} Aes;
//
//
//#ifdef HAVE_AESGCM
//typedef struct Gmac {
// Aes aes;
//} Gmac;
//#endif /* HAVE_AESGCM */
#endif /* HAVE_FIPS */
WOLFSSL_API int wc_AesSetKey(Aes* aes, const byte* key, word32 len, const byte* iv,