X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=ipif%2Fblowfish.h;h=166c6721052fb1bb6951df3e1da871118c1316f7;hb=4e0661bfb8297ab900f85c2288a20d0c6dc0b29f;hp=8eb32752d7384117db433b13c3db3de952aa9b02;hpb=2dc682257fa1bb6a443c69c56ed724ec3b8dffd9;p=userv-utils.git diff --git a/ipif/blowfish.h b/ipif/blowfish.h index 8eb3275..166c672 100644 --- a/ipif/blowfish.h +++ b/ipif/blowfish.h @@ -1,42 +1,65 @@ -/**/ +/* + * Copyright (C) 1997,2000,2003 Ian Jackson + * This file is part of ipif, part of userv-utils + * + * This 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. + * + * This program 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 userv-utils; if not, write to the Free Software + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ #ifndef BLOWFISH__H_INCLUDED #define BLOWFISH__H_INCLUDED +#include + #define BLOWFISH_BLOCKBYTES 8 #define BLOWFISH_MAXKEYBYTES 56 #define BLOWFISH__N 16 #define BLOWFISH__PSIZE BLOWFISH__N+2 -typedef uint32 blowfish__p[BLOWFISH__PSIZE]; -typedef uint32 blowfish__s[4][256]; +typedef uint32_t blowfish__p[BLOWFISH__PSIZE]; +typedef uint32_t blowfish__s[4][256]; struct blowfish_expandedkey { blowfish__p p; blowfish__s s; }; +/* It's ok to pass the [_cbc]_(en|de)crypt functions the same + * input and output pointers. + */ + void blowfish_loadkey(struct blowfish_expandedkey *ek, - const uint8 *key, int keybytes); + const uint8_t *key, int keybytes); void blowfish_encrypt(const struct blowfish_expandedkey *ek, - const uint8 plain[BLOWFISH_BLOCKBYTES], - uint8 cipher[BLOWFISH_BLOCKBYTES]); + const uint8_t plain[BLOWFISH_BLOCKBYTES], + uint8_t cipher[BLOWFISH_BLOCKBYTES]); void blowfish_decrypt(const struct blowfish_expandedkey *ek, - const uint8 cipher[BLOWFISH_BLOCKBYTES], - uint8 plain[BLOWFISH_BLOCKBYTES]); + const uint8_t cipher[BLOWFISH_BLOCKBYTES], + uint8_t plain[BLOWFISH_BLOCKBYTES]); struct blowfish_cbc_state { struct blowfish_expandedkey ek; - uint32 chainl, chainr; + uint32_t chainl, chainr; }; void blowfish_cbc_setiv(struct blowfish_cbc_state *cs, - const uint8 iv[BLOWFISH_BLOCKBYTES]); + const uint8_t iv[BLOWFISH_BLOCKBYTES]); void blowfish_cbc_encrypt(struct blowfish_cbc_state *cs, - const uint8 plain[BLOWFISH_BLOCKBYTES], - uint8 cipher[BLOWFISH_BLOCKBYTES]); + const uint8_t plain[BLOWFISH_BLOCKBYTES], + uint8_t cipher[BLOWFISH_BLOCKBYTES]); void blowfish_cbc_decrypt(struct blowfish_cbc_state *cs, - const uint8 cipher[BLOWFISH_BLOCKBYTES], - uint8 plain[BLOWFISH_BLOCKBYTES]); + const uint8_t cipher[BLOWFISH_BLOCKBYTES], + uint8_t plain[BLOWFISH_BLOCKBYTES]); #endif