xref: /plan9/sys/man/2/blowfish (revision 3ff48bf5ed603850fcd251ddf13025d23d693782)
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 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
/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)