Mercurial > dropbear
comparison src/modes/cfb/cfb_decrypt.c @ 381:999a5eb4ed10 libtomcrypt-dropbear
propagate from branch 'au.asn.ucc.matt.ltc.orig' (head 52840647ac7f5c707c3bd158d119a15734a7ef28)
to branch 'au.asn.ucc.matt.ltc.dropbear' (head 20dccfc09627970a312d77fb41dc2970b62689c3)
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Thu, 11 Jan 2007 02:39:21 +0000 |
parents | d5faf4814ddb |
children |
comparison
equal
deleted
inserted
replaced
281:997e6f7dc01e | 381:999a5eb4ed10 |
---|---|
4 * algorithms in a highly modular and flexible manner. | 4 * algorithms in a highly modular and flexible manner. |
5 * | 5 * |
6 * The library is free for all purposes without any express | 6 * The library is free for all purposes without any express |
7 * guarantee it works. | 7 * guarantee it works. |
8 * | 8 * |
9 * Tom St Denis, [email protected], http://libtomcrypt.org | 9 * Tom St Denis, [email protected], http://libtomcrypt.com |
10 */ | 10 */ |
11 #include "tomcrypt.h" | 11 #include "tomcrypt.h" |
12 | 12 |
13 /** | 13 /** |
14 @file cfb_decrypt.c | 14 @file cfb_decrypt.c |
15 CFB implementation, decrypt data, Tom St Denis | 15 CFB implementation, decrypt data, Tom St Denis |
16 */ | 16 */ |
17 | 17 |
18 #ifdef CFB | 18 #ifdef LTC_CFB_MODE |
19 | 19 |
20 /** | 20 /** |
21 CFB decrypt | 21 CFB decrypt |
22 @param ct Ciphertext | 22 @param ct Ciphertext |
23 @param pt [out] Plaintext | 23 @param pt [out] Plaintext |
43 return CRYPT_INVALID_ARG; | 43 return CRYPT_INVALID_ARG; |
44 } | 44 } |
45 | 45 |
46 while (len-- > 0) { | 46 while (len-- > 0) { |
47 if (cfb->padlen == cfb->blocklen) { | 47 if (cfb->padlen == cfb->blocklen) { |
48 cipher_descriptor[cfb->cipher].ecb_encrypt(cfb->pad, cfb->IV, &cfb->key); | 48 if ((err = cipher_descriptor[cfb->cipher].ecb_encrypt(cfb->pad, cfb->IV, &cfb->key)) != CRYPT_OK) { |
49 return err; | |
50 } | |
49 cfb->padlen = 0; | 51 cfb->padlen = 0; |
50 } | 52 } |
51 cfb->pad[cfb->padlen] = *ct; | 53 cfb->pad[cfb->padlen] = *ct; |
52 *pt = *ct ^ cfb->IV[cfb->padlen]; | 54 *pt = *ct ^ cfb->IV[cfb->padlen]; |
53 ++pt; | 55 ++pt; |
54 ++ct; | 56 ++ct; |
55 ++cfb->padlen; | 57 ++(cfb->padlen); |
56 } | 58 } |
57 return CRYPT_OK; | 59 return CRYPT_OK; |
58 } | 60 } |
59 | 61 |
60 #endif | 62 #endif |
61 | 63 |
62 | 64 |
63 /* $Source: /cvs/libtom/libtomcrypt/src/modes/cfb/cfb_decrypt.c,v $ */ | 65 /* $Source: /cvs/libtom/libtomcrypt/src/modes/cfb/cfb_decrypt.c,v $ */ |
64 /* $Revision: 1.3 $ */ | 66 /* $Revision: 1.7 $ */ |
65 /* $Date: 2005/05/05 14:35:59 $ */ | 67 /* $Date: 2006/11/26 01:45:14 $ */ |