| Index: openssl/crypto/camellia/cmll_misc.c
 | 
| ===================================================================
 | 
| --- openssl/crypto/camellia/cmll_misc.c	(revision 105093)
 | 
| +++ openssl/crypto/camellia/cmll_misc.c	(working copy)
 | 
| @@ -52,78 +52,28 @@
 | 
|  #include <openssl/opensslv.h>
 | 
|  #include <openssl/camellia.h>
 | 
|  #include "cmll_locl.h"
 | 
| -#include <openssl/crypto.h>
 | 
| -#ifdef OPENSSL_FIPS
 | 
| -#include <openssl/fips.h>
 | 
| -#endif
 | 
|  
 | 
|  const char CAMELLIA_version[]="CAMELLIA" OPENSSL_VERSION_PTEXT;
 | 
|  
 | 
|  int Camellia_set_key(const unsigned char *userKey, const int bits,
 | 
|  	CAMELLIA_KEY *key)
 | 
| -#ifdef OPENSSL_FIPS
 | 
|  	{
 | 
| -	if (FIPS_mode())
 | 
| -		FIPS_BAD_ABORT(CAMELLIA)
 | 
| -	return private_Camellia_set_key(userKey, bits, key);
 | 
| -	}
 | 
| -int private_Camellia_set_key(const unsigned char *userKey, const int bits,
 | 
| -	CAMELLIA_KEY *key)
 | 
| -#endif
 | 
| -	{
 | 
| -	if (!userKey || !key)
 | 
| -		{
 | 
| +	if(!userKey || !key)
 | 
|  		return -1;
 | 
| -		}
 | 
| -	
 | 
| -	switch(bits)
 | 
| -		{
 | 
| -	case 128:
 | 
| -		camellia_setup128(userKey, (unsigned int *)key->rd_key);
 | 
| -		key->enc = camellia_encrypt128;
 | 
| -		key->dec = camellia_decrypt128;
 | 
| -		break;
 | 
| -	case 192:
 | 
| -		camellia_setup192(userKey, (unsigned int *)key->rd_key);
 | 
| -		key->enc = camellia_encrypt256;
 | 
| -		key->dec = camellia_decrypt256;
 | 
| -		break;
 | 
| -	case 256:
 | 
| -		camellia_setup256(userKey, (unsigned int *)key->rd_key);
 | 
| -		key->enc = camellia_encrypt256;
 | 
| -		key->dec = camellia_decrypt256;
 | 
| -		break;
 | 
| -	default:
 | 
| +	if(bits != 128 && bits != 192 && bits != 256)
 | 
|  		return -2;
 | 
| -		}
 | 
| -	
 | 
| -	key->bitLength = bits;
 | 
| +	key->grand_rounds = Camellia_Ekeygen(bits , userKey, key->u.rd_key);
 | 
|  	return 0;
 | 
|  	}
 | 
|  
 | 
|  void Camellia_encrypt(const unsigned char *in, unsigned char *out,
 | 
|  	const CAMELLIA_KEY *key)
 | 
|  	{
 | 
| -	u32 tmp[CAMELLIA_BLOCK_SIZE/sizeof(u32)];
 | 
| -	const union { long one; char little; } camellia_endian = {1};
 | 
| -
 | 
| -	memcpy(tmp, in, CAMELLIA_BLOCK_SIZE);
 | 
| -	if (camellia_endian.little) SWAP4WORD(tmp);
 | 
| -	key->enc(key->rd_key, tmp);
 | 
| -	if (camellia_endian.little) SWAP4WORD(tmp);
 | 
| -	memcpy(out, tmp, CAMELLIA_BLOCK_SIZE);
 | 
| +	Camellia_EncryptBlock_Rounds(key->grand_rounds, in , key->u.rd_key , out);
 | 
|  	}
 | 
|  
 | 
|  void Camellia_decrypt(const unsigned char *in, unsigned char *out,
 | 
|  	const CAMELLIA_KEY *key)
 | 
|  	{
 | 
| -	u32 tmp[CAMELLIA_BLOCK_SIZE/sizeof(u32)];
 | 
| -	const union { long one; char little; } camellia_endian = {1};
 | 
| -
 | 
| -	memcpy(tmp, in, CAMELLIA_BLOCK_SIZE);
 | 
| -	if (camellia_endian.little) SWAP4WORD(tmp);
 | 
| -	key->dec(key->rd_key, tmp);
 | 
| -	if (camellia_endian.little) SWAP4WORD(tmp);
 | 
| -	memcpy(out, tmp, CAMELLIA_BLOCK_SIZE);
 | 
| +	Camellia_DecryptBlock_Rounds(key->grand_rounds, in , key->u.rd_key , out);
 | 
|  	}
 | 
| -
 | 
| 
 |