Mercurial > dropbear
view cfb_start.c @ 50:c61e66431001 libtomcrypt
Merge of the normal Dropbear makefile:
- Don't include mpi.o, since it does Bad Things (tm) (wrt LTM)
- Don't try to make clean in tests if it doesn't exist (infinite looping
makefiles, mmmmm)
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Sat, 07 Aug 2004 16:33:31 +0000 |
parents | d7da3b1e1540 |
children |
line wrap: on
line source
/* LibTomCrypt, modular cryptographic library -- Tom St Denis * * LibTomCrypt is a library that provides various cryptographic * algorithms in a highly modular and flexible manner. * * The library is free for all purposes without any express * guarantee it works. * * Tom St Denis, [email protected], http://libtomcrypt.org */ #include "mycrypt.h" #ifdef CFB int cfb_start(int cipher, const unsigned char *IV, const unsigned char *key, int keylen, int num_rounds, symmetric_CFB *cfb) { int x, err; _ARGCHK(IV != NULL); _ARGCHK(key != NULL); _ARGCHK(cfb != NULL); if ((err = cipher_is_valid(cipher)) != CRYPT_OK) { return err; } /* copy data */ cfb->cipher = cipher; cfb->blocklen = cipher_descriptor[cipher].block_length; for (x = 0; x < cfb->blocklen; x++) cfb->IV[x] = IV[x]; /* init the cipher */ if ((err = cipher_descriptor[cipher].setup(key, keylen, num_rounds, &cfb->key)) != CRYPT_OK) { return err; } /* encrypt the IV */ cipher_descriptor[cfb->cipher].ecb_encrypt(cfb->IV, cfb->IV, &cfb->key); cfb->padlen = 0; return CRYPT_OK; } #endif