.TH BLOWFISH 3 .SH NAME setupBFstate, bfCBCencrypt, bfCBCdecrypt, bfECBencrypt, bfECBdecrypt - blowfish encryption .SH SYNOPSIS .B #include .br .B #include .br .B #include .br .B #include .PP .B void setupBFstate(BFstate *s, uchar key[], int keybytes, .B uchar *ivec) .PP .B void bfCBCencrypt(uchar *data, int len, BFstate *s) .PP .B void bfCBCdecrypt(uchar *data, int len, BFstate *s) .PP .B void bfECBencrypt(uchar *data, int len, BFstate *s) .PP .B void bfECBdecrypt(uchar *data, int len, BFstate *s) .SH DESCRIPTION .PP Blowfish is Bruce Schneier's symmetric block cipher. It supports variable length keys from 32 to 448 bits and has a block size of 64 bits. Both CBC and ECB modes are supported. .PP setupBFstate takes a BFstate structure, a key of at most 56 bytes, the length of the key in bytes, and an initialization vector of 8 bytes (set to all zeroes if argument is nil). The encryption and decryption functions take a BFstate structure, a data buffer, and a length, which must be a multiple of eight bytes as padding is currently unsupported. .SH SOURCE .B \*9/src/libsec .SH SEE ALSO .MR mp (3) , .MR aes (3) , .MR des (3) , .MR dsa (3) , .MR elgamal (3) , .MR rc4 (3) , .MR rsa (3) , .MR sechash (3) , .MR prime (3) , .MR rand (3)