skalibs
Software
www.skarnet.org
The stdcrypto library interface
stdcrypto is a small collection of standard,
public-domain cryptographic primitives. Currently, the following
operations are provided:
Compiling
- Add /package/prog/skalibs/include to your header directory list
- Use #include "stdcrypto.h"
Linking
- Define a global variable PROG of type char const *
that contains the name of your executable.
- Link against /package/prog/skalibs/library/libstdcrypto.a and
/package/prog/skalibs/library/libstddjb.a.
Programming
You should refer to the stdcrypto.h header and included headers
for the exact function prototypes.
RC4
RC4Schedule ctx ;
unsigned char const *key ;
unsigned int keylen ;
unsigned char const *in ;
unsigned char *out ;
unsigned int len ;
rc4_init(&ctx, key, keylen) ;
rc4(&ctx, in, out, len) ;
- rc4_init() initializes a RC4Schedule structure with a key key,
of length keylen. It then computes and throws away the first RC4_THROWAWAY
bytes, usually 100
- rc4() encrypts len bytes of in with the RC4 flow, and
stores the results into out
MD5
MD5Schedule ctx ;
char const *message ;
unsigned int messagelen ;
char digest[16] ;
md5_init(&ctx) ;
md5_update(&ctx, message, messagelen) ;
md5_final(&ctx, digest) ;
- md5_init() prepares a MD5Schedule structure for computation
- md5_update() adds message to the message to be digested
- md5_final() computes the digest
SHA1
SHA1Schedule ctx ;
char const *message ;
unsigned int messagelen ;
unsigned char digest[20] ;
sha1_init(&ctx) ;
sha1_update(&ctx, message, messagelen) ;
sha1_final(&ctx, digest) ;
- sha1_init() prepares a SHA1Schedule structure for computation
- sha1_update() adds message to the message to be digested
- sha1_final() computes the digest