Properly own the duplicated string
[openssl.git] / crypto / camellia / cmll_locl.h
index 8ea3639a5b77d15a0f29f79e649e080a552fcecd..0cbcba29d330ca423aeffdf6d79de4410036d650 100644 (file)
@@ -1,6 +1,5 @@
-/* crypto/camellia/camellia_locl.h -*- mode:C; c-file-style: "eay" -*- */
 /* ====================================================================
 /* ====================================================================
- * Copyright 2006 NTT (Nippon Telegraph and Telephone Corporation) . 
+ * Copyright 2006 NTT (Nippon Telegraph and Telephone Corporation) .
  * ALL RIGHTS RESERVED.
  *
  * Intellectual Property information for Camellia:
  * ALL RIGHTS RESERVED.
  *
  * Intellectual Property information for Camellia:
@@ -24,7 +23,7 @@
  * are met:
  *
  * 1. Redistributions of source code must retain the above copyright
  * are met:
  *
  * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer. 
+ *    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
  *
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in
  */
 
 #ifndef HEADER_CAMELLIA_LOCL_H
  */
 
 #ifndef HEADER_CAMELLIA_LOCL_H
-#define HEADER_CAMELLIA_LOCL_H
-
-#include "openssl/e_os2.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#if defined(_MSC_VER)
-typedef unsigned char uint8_t;
-typedef unsigned int uint32_t;
-typedef unsigned __int64 uint64_t;
-#else
-#include <inttypes.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ALIGN 4
-#define UNITSIZE 4
-
-#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64))
-# define SWAP(x) ( _lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00 )
-# define GETU32(p) SWAP(*((uint32_t *)(p)))
-# define PUTU32(ct, st) { *((uint32_t *)(ct)) = SWAP((st)); }
-# define CAMELLIA_SWAP4(x) (x = ( _lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00) )
-
-
-#else /* not windows */
-# define GETU32(pt) (((uint32_t)(pt)[0] << 24) \
-       ^ ((uint32_t)(pt)[1] << 16) \
-       ^ ((uint32_t)(pt)[2] <<  8) \
-       ^ ((uint32_t)(pt)[3]))
-
-# define PUTU32(ct, st) { (ct)[0] = (uint8_t)((st) >> 24); \
-       (ct)[1] = (uint8_t)((st) >> 16); \
-       (ct)[2] = (uint8_t)((st) >>  8); \
-       (ct)[3] = (uint8_t)(st); }
-
-#ifdef L_ENDIAN
-#if (defined (__GNUC__) && !defined(i386))
-#define CAMELLIA_SWAP4(x) \
-  do{\
-    asm("bswap %1" : "+r" (x));\
-  }while(0)
-#else /* not gcc */
-#define CAMELLIA_SWAP4(x) \
-   do{\
-     x = ((uint32_t)x << 16) + ((uint32_t)x >> 16);\
-     x = (((uint32_t)x & 0xff00ff) << 8) + (((uint32_t)x >> 8) & 0xff00ff);\
-   } while(0)
-#endif /* not gcc */
-#else /* big endian */
-#define CAMELLIA_SWAP4(x)
-#endif /* L_ENDIAN */
-#endif
-
-#define COPY4WORD(dst, src)     \
-            do                  \
-                    {           \
-                    (dst)[0]=(src)[0];         \
-                    (dst)[1]=(src)[1];         \
-                    (dst)[2]=(src)[2];         \
-                    (dst)[3]=(src)[3];         \
-                    }while(0)
-
-#define SWAP4WORD(word)                                \
-   do                                          \
-          {                                    \
-          CAMELLIA_SWAP4((word)[0]);                   \
-          CAMELLIA_SWAP4((word)[1]);                   \
-          CAMELLIA_SWAP4((word)[2]);                   \
-          CAMELLIA_SWAP4((word)[3]);                   \
-          }while(0)
-
-#define XOR4WORD(a, b)/* a = a ^ b */          \
-   do                                          \
-       {                                       \
-       (a)[0]^=(b)[0];                         \
-       (a)[1]^=(b)[1];                         \
-       (a)[2]^=(b)[2];                         \
-       (a)[3]^=(b)[3];                         \
-       }while(0)
-
-#define XOR4WORD2(a, b, c)/* a = b ^ c */      \
-   do                                          \
-       {                                       \
-       (a)[0]=(b)[0]^(c)[0];                   \
-       (a)[1]=(b)[1]^(c)[1];                           \
-       (a)[2]=(b)[2]^(c)[2];                           \
-       (a)[3]=(b)[3]^(c)[3];                           \
-       }while(0)
-
-
-void camellia_setup128(const unsigned char *key, uint32_t *subkey);
-void camellia_setup192(const unsigned char *key, uint32_t *subkey);
-void camellia_setup256(const unsigned char *key, uint32_t *subkey);
-
-void camellia_encrypt128(const uint32_t *subkey, uint32_t *io);
-void camellia_decrypt128(const uint32_t *subkey, uint32_t *io);
-void camellia_encrypt256(const uint32_t *subkey, uint32_t *io);
-void camellia_decrypt256(const uint32_t *subkey, uint32_t *io);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* #ifndef HEADER_CAMELLIA_LOCL_H */
-
+# define HEADER_CAMELLIA_LOCL_H
+
+typedef unsigned int u32;
+typedef unsigned char u8;
+
+int Camellia_Ekeygen(int keyBitLength, const u8 *rawKey,
+                     KEY_TABLE_TYPE keyTable);
+void Camellia_EncryptBlock_Rounds(int grandRounds, const u8 plaintext[],
+                                  const KEY_TABLE_TYPE keyTable,
+                                  u8 ciphertext[]);
+void Camellia_DecryptBlock_Rounds(int grandRounds, const u8 ciphertext[],
+                                  const KEY_TABLE_TYPE keyTable,
+                                  u8 plaintext[]);
+void Camellia_EncryptBlock(int keyBitLength, const u8 plaintext[],
+                           const KEY_TABLE_TYPE keyTable, u8 ciphertext[]);
+void Camellia_DecryptBlock(int keyBitLength, const u8 ciphertext[],
+                           const KEY_TABLE_TYPE keyTable, u8 plaintext[]);
+#endif                          /* #ifndef HEADER_CAMELLIA_LOCL_H */