1 /* This file is part of the KDE project
2 Copyright (C) 2001 George Staikos <staikos@kde.org>
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
23 #include <config-kwalletbackend.h>
28 #include <sys/types.h>
29 #ifdef HAVE_SYS_BITYPES_H
30 #include <sys/bitypes.h> /* For uintXX_t on Tru64 */
33 #include "blockcipher.h"
34 #include <kwallet_export.h>
38 class KWALLETBACKEND_EXPORT BlowFish
: public BlockCipher
{
43 virtual bool setKey(void *key
, int bitlength
);
45 virtual int keyLen() const;
47 virtual bool variableKeyLen() const;
49 virtual bool readyToGo() const;
51 virtual int encrypt(void *block
, int len
);
53 virtual int decrypt(void *block
, int len
);
60 int _keylen
; // in bits
65 uint32_t F(uint32_t x
);
66 void encipher(uint32_t *xl
, uint32_t *xr
);
67 void decipher(uint32_t *xl
, uint32_t *xr
);