term% cat index.txt BLOWFISH(2)                   System Calls Manual                  BLOWFISH(2)
NAME
       setupBFstate, bfCBCencrypt, bfCBCdecrypt, bfECBencrypt, bfECBdecrypt  -
       blowfish encryption
SYNOPSIS
       #include <u.h>
       #include <libc.h>
       #include <mp.h>
       #include <libsec.h>
       void   setupBFstate(BFstate   *s,   uchar    key[],    int    keybytes,
                       uchar *ivec)
       void bfCBCencrypt(uchar *data, int len, BFstate *s)
       void bfCBCdecrypt(uchar *data, int len, BFstate *s)
       void bfECBencrypt(uchar *data, int len, BFstate *s)
       void bfECBdecrypt(uchar *data, int len, BFstate *s)
DESCRIPTION
       Blowfish is Bruce Schneier's symmetric block cipher.  It supports vari‐
       able length keys from 32 to 448 bits and has a block size of  64  bits.
       Both CBC and ECB modes are supported.
       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.
SOURCE
       /sys/src/libsec
SEE ALSO
       mp(2),  aes(2), des(2), dsa(2), elgamal(2), rc4(2), rsa(2), sechash(2),
       prime(2), rand(2)
                                                                   BLOWFISH(2)