diff options
author | ian <ian> | 2000-05-31 00:58:53 +0000 |
---|---|---|
committer | ian <ian> | 2000-05-31 00:58:53 +0000 |
commit | ed509ebded419ce594b9c6a6942cf41033a7a16b (patch) | |
tree | 5f3f0ab483fc7a23fb527ace16d76a72e3c03926 /ipif/mech-blowfish.c | |
parent | b18a1d7b97679cf304b8badd9d011dffd0e7bcdf (diff) | |
download | userv-utils-ed509ebded419ce594b9c6a6942cf41033a7a16b.tar.gz |
New encrypting tunnel seems to work !
Diffstat (limited to 'ipif/mech-blowfish.c')
-rw-r--r-- | ipif/mech-blowfish.c | 7 |
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) { \ |