summaryrefslogtreecommitdiff
path: root/ipif/mech-blowfish.c
diff options
context:
space:
mode:
authorian <ian>2000-05-31 00:58:53 +0000
committerian <ian>2000-05-31 00:58:53 +0000
commited509ebded419ce594b9c6a6942cf41033a7a16b (patch)
tree5f3f0ab483fc7a23fb527ace16d76a72e3c03926 /ipif/mech-blowfish.c
parentb18a1d7b97679cf304b8badd9d011dffd0e7bcdf (diff)
downloaduserv-utils-ed509ebded419ce594b9c6a6942cf41033a7a16b.tar.gz
New encrypting tunnel seems to work !
Diffstat (limited to 'ipif/mech-blowfish.c')
-rw-r--r--ipif/mech-blowfish.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/ipif/mech-blowfish.c b/ipif/mech-blowfish.c
index 7447cad..65e3311 100644
--- a/ipif/mech-blowfish.c
+++ b/ipif/mech-blowfish.c
@@ -13,13 +13,13 @@
#include "blowfish.h"
struct mechdata {
+ unsigned char iv[BLOWFISH_BLOCKBYTES];
struct blowfish_cbc_state cbc;
};
static void mds_blowfish(struct mechdata **md_r) {
struct mechdata *md;
unsigned long keysize;
- unsigned char iv[BLOWFISH_BLOCKBYTES];
unsigned char key[BLOWFISH_MAXKEYBYTES];
XMALLOC(md);
@@ -29,12 +29,10 @@ static void mds_blowfish(struct mechdata **md_r) {
keysize >>= 3;
arg_assert(keysize > 0 && keysize <= BLOWFISH_MAXKEYBYTES);
- random_key(iv,sizeof(iv));
+ random_key(md->iv,sizeof(md->iv));
random_key(key,keysize);
blowfish_loadkey(&md->cbc.ek, key,keysize);
- blowfish_cbc_setiv(&md->cbc, iv);
-
*md_r= md;
}
@@ -62,6 +60,7 @@ static void mes_bfmac(struct mechdata **md_r, int *maxprefix_io, int *maxsuffix_
#define FOREACH_BLOCK(func,inptr,outptr) \
{ \
unsigned char *ptr; \
+ blowfish_cbc_setiv(&md->cbc, md->iv); \
for (ptr= buf->start; \
ptr < buf->start + msgsize; \
ptr += BLOWFISH_BLOCKBYTES) { \