Index of Section 3 Manual Pages
| Interix / SUA | blf_key.3 | Interix / SUA |
blf_key(3) blf_key(3)
Blowfish
NAME
blf_key(), blf_enc(), blf_dec(), blf_ecb_encrypt(), blf_ecb_decrypt(),
blf_cbc_encrypt(), blf_cbc_decrypt() - Blowfish encryption
SYNOPSIS
#include
void blf_key (blf_ctx *state, const u_int8_t *key, u_int16_t keylen)
void blf_enc (blf_ctx *state, u_int32_t *data, u_int16_t datalen)
void blf_dec (blf_ctx *state, u_int32_t *data, u_int16_t datalen)
void blf_ecb_encrypt (blf_ctx *state, u_int8_t *data, u_int32_t datalen)
void blf_ecb_decrypt (blf_ctx *state, u_int8_t *data, u_int32_t datalen)
void blf_cbc_encrypt (blf_ctx *state, u_int8_t *iv, u_int8_t *data,
u_int32_t datalen)
void blf_cbc_decrypt (blf_ctx *state, u_int8_t *iv, u_int8_t *data,
u_int32_t datalen)
DESCRIPTION
Blowfish is a fast unpatented block cipher designed by Bruce Schneier. It
basically consists of a 16 times iterated Feistel network. The block size
is 64 bit and the key size is maximal 448 bit. The blf_key function
initializes the 4 8-bit S-boxes and the 18 Subkeys with the hexadecimal
digits of Pi. The key is used for further randomization. The first
argument to blf_enc is the initialized state derived from blf_key. The
stream of 32-bit words is encrypted in Electronic Codebook Mode (ECB) and
datalen must be even. blf_dec is used for decrypting Blowfish encrypted
blocks.
The functions blf_ecb_encrypt and blf_ecb_decrypt are used for encrypting
and decrypting octet streams in ECB mode. The functions blf_cbc_encrypt
and blf_cbc_decrypt are used for encrypting and decrypting octet streams
in Cipherblock Chaining Mode (CBC).
SEE ALSO
passwd(1)
crypt(3)
AUTHORS
Niels Provos
USAGE NOTES
None of these functions are thread safe.
None of these functions are async-signal safe.