OSDN Git Service

Update to 5b5ec56126af820b2d3c86e94ce4c056bf3b9904 about bug fixes.
[ffftp/ffftp.git] / contrib / openssl / include / openssl / camellia.h
index ce8d1c7..f4d6d03 100644 (file)
-/* crypto/camellia/camellia.h -*- mode:C; c-file-style: "eay" -*- */
-/* ====================================================================
- * Copyright (c) 2006 The OpenSSL Project.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    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
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- *    software must display the following acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- *    endorse or promote products derived from this software without
- *    prior written permission. For written permission, please contact
- *    openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- *    nor may "OpenSSL" appear in their names without prior written
- *    permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- *    acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- */
-
-#ifndef HEADER_CAMELLIA_H
-#define HEADER_CAMELLIA_H
-
-#include <openssl/opensslconf.h>
-
-#ifdef OPENSSL_NO_CAMELLIA
-#error CAMELLIA is disabled.
-#endif
-
-#include <stddef.h>
-
-#define CAMELLIA_ENCRYPT       1
-#define CAMELLIA_DECRYPT       0
-
-/* Because array size can't be a const in C, the following two are macros.
-   Both sizes are in bytes. */
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-/* This should be a hidden type, but EVP requires that the size be known */
-
-#define CAMELLIA_BLOCK_SIZE 16
-#define CAMELLIA_TABLE_BYTE_LEN 272
-#define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4)
-
-typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; /* to match with WORD */
-
-struct camellia_key_st
-       {
-       union   {
-               double d;       /* ensures 64-bit align */
-               KEY_TABLE_TYPE rd_key;
-               } u;
-       int grand_rounds;
-       };
-typedef struct camellia_key_st CAMELLIA_KEY;
-
-int Camellia_set_key(const unsigned char *userKey, const int bits,
-       CAMELLIA_KEY *key);
-
-void Camellia_encrypt(const unsigned char *in, unsigned char *out,
-       const CAMELLIA_KEY *key);
-void Camellia_decrypt(const unsigned char *in, unsigned char *out,
-       const CAMELLIA_KEY *key);
-
-void Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out,
-       const CAMELLIA_KEY *key, const int enc);
-void Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out,
-       size_t length, const CAMELLIA_KEY *key,
-       unsigned char *ivec, const int enc);
-void Camellia_cfb128_encrypt(const unsigned char *in, unsigned char *out,
-       size_t length, const CAMELLIA_KEY *key,
-       unsigned char *ivec, int *num, const int enc);
-void Camellia_cfb1_encrypt(const unsigned char *in, unsigned char *out,
-       size_t length, const CAMELLIA_KEY *key,
-       unsigned char *ivec, int *num, const int enc);
-void Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out,
-       size_t length, const CAMELLIA_KEY *key,
-       unsigned char *ivec, int *num, const int enc);
-void Camellia_ofb128_encrypt(const unsigned char *in, unsigned char *out,
-       size_t length, const CAMELLIA_KEY *key,
-       unsigned char *ivec, int *num);
-void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out,
-       size_t length, const CAMELLIA_KEY *key,
-       unsigned char ivec[CAMELLIA_BLOCK_SIZE],
-       unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE],
-       unsigned int *num);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif /* !HEADER_Camellia_H */
+/* crypto/camellia/camellia.h -*- mode:C; c-file-style: "eay" -*- */\r
+/* ====================================================================\r
+ * Copyright (c) 2006 The OpenSSL Project.  All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * 1. Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ * 2. Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in\r
+ *    the documentation and/or other materials provided with the\r
+ *    distribution.\r
+ *\r
+ * 3. All advertising materials mentioning features or use of this\r
+ *    software must display the following acknowledgment:\r
+ *    "This product includes software developed by the OpenSSL Project\r
+ *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"\r
+ *\r
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to\r
+ *    endorse or promote products derived from this software without\r
+ *    prior written permission. For written permission, please contact\r
+ *    openssl-core@openssl.org.\r
+ *\r
+ * 5. Products derived from this software may not be called "OpenSSL"\r
+ *    nor may "OpenSSL" appear in their names without prior written\r
+ *    permission of the OpenSSL Project.\r
+ *\r
+ * 6. Redistributions of any form whatsoever must retain the following\r
+ *    acknowledgment:\r
+ *    "This product includes software developed by the OpenSSL Project\r
+ *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY\r
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR\r
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\r
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\r
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\r
+ * OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ * ====================================================================\r
+ *\r
+ */\r
+\r
+#ifndef HEADER_CAMELLIA_H\r
+#define HEADER_CAMELLIA_H\r
+\r
+#include <openssl/opensslconf.h>\r
+\r
+#ifdef OPENSSL_NO_CAMELLIA\r
+#error CAMELLIA is disabled.\r
+#endif\r
+\r
+#include <stddef.h>\r
+\r
+#define CAMELLIA_ENCRYPT       1\r
+#define CAMELLIA_DECRYPT       0\r
+\r
+/* Because array size can't be a const in C, the following two are macros.\r
+   Both sizes are in bytes. */\r
+\r
+#ifdef  __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+/* This should be a hidden type, but EVP requires that the size be known */\r
+\r
+#define CAMELLIA_BLOCK_SIZE 16\r
+#define CAMELLIA_TABLE_BYTE_LEN 272\r
+#define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4)\r
+\r
+typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; /* to match with WORD */\r
+\r
+struct camellia_key_st\r
+       {\r
+       union   {\r
+               double d;       /* ensures 64-bit align */\r
+               KEY_TABLE_TYPE rd_key;\r
+               } u;\r
+       int grand_rounds;\r
+       };\r
+typedef struct camellia_key_st CAMELLIA_KEY;\r
+\r
+int Camellia_set_key(const unsigned char *userKey, const int bits,\r
+       CAMELLIA_KEY *key);\r
+\r
+void Camellia_encrypt(const unsigned char *in, unsigned char *out,\r
+       const CAMELLIA_KEY *key);\r
+void Camellia_decrypt(const unsigned char *in, unsigned char *out,\r
+       const CAMELLIA_KEY *key);\r
+\r
+void Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out,\r
+       const CAMELLIA_KEY *key, const int enc);\r
+void Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out,\r
+       size_t length, const CAMELLIA_KEY *key,\r
+       unsigned char *ivec, const int enc);\r
+void Camellia_cfb128_encrypt(const unsigned char *in, unsigned char *out,\r
+       size_t length, const CAMELLIA_KEY *key,\r
+       unsigned char *ivec, int *num, const int enc);\r
+void Camellia_cfb1_encrypt(const unsigned char *in, unsigned char *out,\r
+       size_t length, const CAMELLIA_KEY *key,\r
+       unsigned char *ivec, int *num, const int enc);\r
+void Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out,\r
+       size_t length, const CAMELLIA_KEY *key,\r
+       unsigned char *ivec, int *num, const int enc);\r
+void Camellia_ofb128_encrypt(const unsigned char *in, unsigned char *out,\r
+       size_t length, const CAMELLIA_KEY *key,\r
+       unsigned char *ivec, int *num);\r
+void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out,\r
+       size_t length, const CAMELLIA_KEY *key,\r
+       unsigned char ivec[CAMELLIA_BLOCK_SIZE],\r
+       unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE],\r
+       unsigned int *num);\r
+\r
+#ifdef  __cplusplus\r
+}\r
+#endif\r
+\r
+#endif /* !HEADER_Camellia_H */\r