From 15554342c27fe718a18dd62c08904df23173272b Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Mon, 5 Jan 2015 14:59:48 -0700 Subject: [PATCH] change of some header file macros --- wolfssl/wolfcrypt/aes.h | 151 +++++++++++++++++++------------------ wolfssl/wolfcrypt/des3.h | 1 + wolfssl/wolfcrypt/hmac.h | 1 + wolfssl/wolfcrypt/sha.h | 1 + wolfssl/wolfcrypt/sha256.h | 1 + wolfssl/wolfcrypt/sha512.h | 1 + 6 files changed, 81 insertions(+), 75 deletions(-) diff --git a/wolfssl/wolfcrypt/aes.h b/wolfssl/wolfcrypt/aes.h index 23b67ecf7..fef623597 100644 --- a/wolfssl/wolfcrypt/aes.h +++ b/wolfssl/wolfcrypt/aes.h @@ -29,8 +29,8 @@ #include /* included for fips @wc_fips */ -#include #ifdef HAVE_FIPS +#include #if defined(CYASSL_AES_COUNTER) && !defined(WOLFSSL_AES_COUNTER) #define WOLFSSL_AES_COUNTER #endif @@ -40,99 +40,100 @@ #endif #ifndef HAVE_FIPS +#define CTAO_CRYPT_AES_H #ifdef HAVE_CAVIUM #include #include "cavium_common.h" #endif -//#ifdef WOLFSSL_AESNI -// -//#include -// -//#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 + +#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 extern "C" { #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 */ +#ifndef HAVE_FIPS +#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, int dir); -WOLFSSL_API int wc_AesSetIV(Aes* aes, const byte* iv); + WOLFSSL_API int wc_AesSetIV(Aes* aes, const byte* iv); WOLFSSL_API int wc_AesCbcEncrypt(Aes* aes, byte* out, const byte* in, word32 sz); WOLFSSL_API int wc_AesCbcDecrypt(Aes* aes, byte* out, const byte* in, word32 sz); WOLFSSL_API int wc_AesCbcDecryptWithKey(byte* out, const byte* in, word32 inSz, const byte* key, word32 keySz, const byte* iv); - + /* AES-CTR */ #ifdef WOLFSSL_AES_COUNTER WOLFSSL_API void wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz); diff --git a/wolfssl/wolfcrypt/des3.h b/wolfssl/wolfcrypt/des3.h index aa887c3f6..416763212 100644 --- a/wolfssl/wolfcrypt/des3.h +++ b/wolfssl/wolfcrypt/des3.h @@ -38,6 +38,7 @@ #endif #ifndef HAVE_FIPS +#define CTAO_CRYPT_DES3_H #define WOLFSSL_3DES_CAVIUM_MAGIC 0xBEEF0003 enum { diff --git a/wolfssl/wolfcrypt/hmac.h b/wolfssl/wolfcrypt/hmac.h index d4c1b7aff..2042766c9 100644 --- a/wolfssl/wolfcrypt/hmac.h +++ b/wolfssl/wolfcrypt/hmac.h @@ -62,6 +62,7 @@ extern "C" { #endif #ifndef HAVE_FIPS +#define CTAO_CRYPT_HMAC_H #define WOLFSSL_HMAC_CAVIUM_MAGIC 0xBEEF0005 enum { diff --git a/wolfssl/wolfcrypt/sha.h b/wolfssl/wolfcrypt/sha.h index 99b012626..c1bcf687e 100644 --- a/wolfssl/wolfcrypt/sha.h +++ b/wolfssl/wolfcrypt/sha.h @@ -37,6 +37,7 @@ extern "C" { #endif #ifndef HAVE_FIPS +#define CTAO_CRYPT_SHA_H /* in bytes */ enum { diff --git a/wolfssl/wolfcrypt/sha256.h b/wolfssl/wolfcrypt/sha256.h index 8df852de6..65b3ac654 100644 --- a/wolfssl/wolfcrypt/sha256.h +++ b/wolfssl/wolfcrypt/sha256.h @@ -38,6 +38,7 @@ #endif #ifndef HAVE_FIPS +#define CTAO_CRYPT_SHA256_H #ifdef WOLFSSL_PIC32MZ_HASH #include "port/pic32/pic32mz-crypt.h" #endif diff --git a/wolfssl/wolfcrypt/sha512.h b/wolfssl/wolfcrypt/sha512.h index e05bce546..4f89db69e 100644 --- a/wolfssl/wolfcrypt/sha512.h +++ b/wolfssl/wolfcrypt/sha512.h @@ -37,6 +37,7 @@ #endif #ifndef HAVE_FIPS +#define CTAO_CRYPT_SHA512_H /* in bytes */ enum { SHA512 = 4, /* hash type unique */