Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (2) — Plan9 4th Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

mp(2)

aes(2)

des(2)

dsa(2)

elgamal(2)

rc4(2)

rsa(2)

sechash(2)

prime(2)

rand(2)

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)

Plan 9  —  September 14, 2002

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026