/* -*-c-*-
*
- * $Id: icrypt.h,v 1.2 1997/08/04 10:24:22 mdw Exp $
+ * $Id: icrypt.h,v 1.3 1997/09/26 09:14:58 mdw Exp $
*
- * Higher level IDEA encryption
+ * Higher level encryption functions
*
* (c) 1997 Mark Wooding
*/
/*----- Revision history --------------------------------------------------*
*
* $Log: icrypt.h,v $
+ * Revision 1.3 1997/09/26 09:14:58 mdw
+ * Merged blowfish branch into trunk.
+ *
+ * Revision 1.2.2.1 1997/09/26 09:08:08 mdw
+ * Use the Blowfish encryption algorithm instead of IDEA. This is partly
+ * because I prefer Blowfish (without any particularly strong evidence) but
+ * mainly because IDEA is patented and Blowfish isn't.
+ *
* Revision 1.2 1997/08/04 10:24:22 mdw
* Sources placed under CVS control.
*
#include <stddef.h>
-#ifndef CONFIG_H
-# include "config.h"
+#ifndef BLOWFISH_H
+# include "blowfish.h"
#endif
-#ifndef IDEA_H
-# include "idea.h"
+#ifndef CONFIG_H
+# include "config.h"
#endif
/*----- Type definitions --------------------------------------------------*/
/* --- @icrypt_job@ --- */
typedef struct icrypt_job {
- idea_key k; /* IDEA key for en/decrypting */
+ blowfish_key k; /* Key for en/decrypting */
int i; /* Index into the IV buffer */
- char iv[IDEA_BLKSIZE]; /* IV bytes for encrypting */
+ unsigned char iv[BLOWFISH_BLKSIZE]; /* IV bytes for encrypting */
} icrypt_job;
/*----- Functions provided ------------------------------------------------*/
-/* --- @icrypt_init@ --- *
- *
- * Arguments: @icrypt_job *j@ = pointer to job context block
- * @unsigned char *k@ = pointer to key data
- * @const unsigned char *iv@ = pointer to IV
- *
- * Returns: ---
- *
- * Use: Primes the context block ready for encryption.
- */
-
extern void icrypt_init(icrypt_job */*j*/,
unsigned char */*k*/,
+ size_t /*sz*/,
const unsigned char */*iv*/);
/* --- @icrypt_encrypt@ --- *
* Arguments: @icrypt_job *j@ = pointer to job context block
* @unsigned char *k@ = pointer to key data, or zero for
* no change
+ * @size_t sz@ = size of the key in bytes
* @const unsigned char *iv@ = pointer to IV, or zero
*
* Returns: ---
extern void icrypt_reset(icrypt_job */*j*/,
unsigned char */*k*/,
+ size_t /*sz*/,
const unsigned char */*iv*/);
/* --- @icrypt_saveIV@ --- *