| BLOWFISH(3) | BLOWFISH(3)
| 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
| `/usr/local/plan9/src/libsec`
SEE ALSO
| mp(3), aes(3), des(3), dsa(3), elgamal(3), rc4(3), rsa(3), sechash(3), prime(3), rand(3)