+++ /dev/null
-/* -*-c-*-
- *
- * $Id: idea.h,v 1.2 1997/08/04 10:24:22 mdw Exp $
- *
- * IDEA encryption routines
- * Based on Straylight ARM assembler routines
- *
- * (c) 1996, 1997 Mark Wooding
- */
-
-/*----- Licensing notice --------------------------------------------------*
- *
- * This file is part of `become'
- *
- * `Become' is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * `Become' is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with `become'; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-/*----- Revision history --------------------------------------------------*
- *
- * $Log: idea.h,v $
- * Revision 1.2 1997/08/04 10:24:22 mdw
- * Sources placed under CVS control.
- *
- * Revision 1.1 1997/07/21 13:47:48 mdw
- * Initial revision
- *
- */
-
-#ifndef IDEA_H
-#define IDEA_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/*----- Required headers --------------------------------------------------*/
-
-#ifndef CONFIG_H
-# include "config.h"
-#endif
-
-/*----- Useful constants --------------------------------------------------*/
-
-#define IDEA_BLKSIZE (8u) /* Number of bytes in IDEA block */
-#define IDEA_KEYSIZE (16u) /* Number of bytes in IDEA key */
-#define IDEA_EXPKEYSIZE (52u) /* Number of ints in expanded key */
-
-/*----- Type definitions --------------------------------------------------*/
-
-typedef struct idea_key {
- int k[IDEA_EXPKEYSIZE]; /* Subkey array */
-} idea_key;
-
-/*----- Functions provided ------------------------------------------------*/
-
-/* --- @idea_ekeys@ --- *
- *
- * Arguments: @idea_key *k@ = the expanded key buffer
- * @const unsigned char *key@ = the user's key encryption key
- *
- * Returns: ---
- *
- * Use: Unpacks an encryption key.
- */
-
-extern void idea_ekeys(idea_key */*k*/, const unsigned char */*key*/);
-
-/* --- @idea_invertKey@ --- *
- *
- * Arguments: @const idea_key *in@ = pointer to input expanded key buffer
- * @idea_key *out@ = pointer to output expanded key buffer
- *
- * Returns: ---
- *
- * Use: Computes the inverse (decryption) key given an expanded
- * IDEA encryption key.
- */
-
-extern void idea_invertKey(const idea_key */*in*/, idea_key */*out*/);
-
-/* --- @idea_dkeys@ --- *
- *
- * Arguments: @idea_key *k@ = the expanded key buffer
- * @const unsigned char *key@ = the user's key encryption key
- *
- * Returns: ---
- *
- * Use: Unpacks a decryption key.
- */
-
-extern void idea_dkeys(idea_key */*k*/, const unsigned char */*key*/);
-
-/* --- @idea_encrypt@ --- *
- *
- * Arguments: @const idea_key *k@ = key to use
- * @const void *src@ = block to encrypt
- * @void *dest@ = where to store the result
- *
- *
- * Returns: ---
- *
- * Use: Encrypts (or decrypts) a block, using the IDEA cryptosystem.
- * Since the decryption operation is the same as encryption
- * except that a different key buffer is used, this is all we
- * need to complete the simple bits.
- */
-
-extern void idea_encrypt(const idea_key */*k*/,
- const void */*src*/, void */*dest*/);
-
-/*----- That's all, folks -------------------------------------------------*/
-
-#ifdef __cplusplus
- }
-#endif
-
-#endif