blowfish.3 (1288B)
1 .TH BLOWFISH 3 2 .SH NAME 3 setupBFstate, bfCBCencrypt, bfCBCdecrypt, bfECBencrypt, bfECBdecrypt - blowfish encryption 4 .SH SYNOPSIS 5 .B #include <u.h> 6 .br 7 .B #include <libc.h> 8 .br 9 .B #include <mp.h> 10 .br 11 .B #include <libsec.h> 12 .PP 13 .B 14 void setupBFstate(BFstate *s, uchar key[], int keybytes, 15 .B 16 uchar *ivec) 17 .PP 18 .B 19 void bfCBCencrypt(uchar *data, int len, BFstate *s) 20 .PP 21 .B 22 void bfCBCdecrypt(uchar *data, int len, BFstate *s) 23 .PP 24 .B 25 void bfECBencrypt(uchar *data, int len, BFstate *s) 26 .PP 27 .B 28 void bfECBdecrypt(uchar *data, int len, BFstate *s) 29 .SH DESCRIPTION 30 .PP 31 Blowfish is Bruce Schneier's symmetric block cipher. It supports 32 variable length keys from 32 to 448 bits and has a block size of 64 33 bits. Both CBC and ECB modes are supported. 34 .PP 35 setupBFstate takes a BFstate structure, a key of at most 56 bytes, the 36 length of the key in bytes, and an initialization vector of 8 bytes 37 (set to all zeroes if argument is nil). The encryption and decryption 38 functions take a BFstate structure, a data buffer, and a length, which 39 must be a multiple of eight bytes as padding is currently unsupported. 40 .SH SOURCE 41 .B \*9/src/libsec 42 .SH SEE ALSO 43 .MR mp (3) , 44 .MR aes (3) , 45 .MR des (3) , 46 .MR dsa (3) , 47 .MR elgamal (3) , 48 .MR rc4 (3) , 49 .MR rsa (3) , 50 .MR sechash (3) , 51 .MR prime (3) , 52 .MR rand (3)