|  | 
 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
    variable 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     
 SEE ALSO    
 |  |