#include "bu/blowfish.h" #include "bu/sio.h" using Bu::sio; #define F(x) \ (((SB[0][x.byte.zero] + SB[1][x.byte.one]) ^ SB[2][x.byte.two]) + \ SB[3][x.byte.three]) Bu::Blowfish::Blowfish( Bu::Stream &rNext ) : Bu::Filter( rNext ) { } Bu::Blowfish::~Blowfish() { reset(); } #define revBytes( x ) x = (((x&0xff)<<24)|((x&0xff00)<<8)|((x&0xff0000)>>8)|((x&0xff000000)>>24)) void Bu::Blowfish::setPassword( const Bu::String &sPass ) { reset(); uint32_t i,j,len=sPass.getSize(); Word Work,null0,null1; if (len > 0) { j = 0; for (i=0;i