summaryrefslogtreecommitdiffhomepage
path: root/libtomcrypt/src/prngs/rc4.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2007-02-22 14:53:49 +0000
committerMatt Johnston <matt@ucc.asn.au>2007-02-22 14:53:49 +0000
commitb01a74a9d757ce2b83465214bde1fa07d3e2d3ea (patch)
tree092cac6797947f7b23fcdcc2c081b19c390c5bc4 /libtomcrypt/src/prngs/rc4.c
parent66643fa5c723da2dc781c5eeae2e008c280a7b1c (diff)
parent7f12251fbb2acefac04e13a7c6a95ca4dd4b5578 (diff)
merge of 'a9b0496634cdd25647b65e585cc3240f3fa699ee'
and 'c22be8b8f570b48e9662dac32c7b3e7148a42206' --HG-- extra : convert_revision : 066f6aef2791d54b9ec6a0c3033fd28fa946251f
Diffstat (limited to 'libtomcrypt/src/prngs/rc4.c')
-rw-r--r--libtomcrypt/src/prngs/rc4.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/libtomcrypt/src/prngs/rc4.c b/libtomcrypt/src/prngs/rc4.c
index 4d29d9a..cf118ad 100644
--- a/libtomcrypt/src/prngs/rc4.c
+++ b/libtomcrypt/src/prngs/rc4.c
@@ -6,7 +6,7 @@
* The library is free for all purposes without any express
* guarantee it works.
*
- * Tom St Denis, tomstdenis@gmail.com, http://libtomcrypt.org
+ * Tom St Denis, tomstdenis@gmail.com, http://libtomcrypt.com
*/
#include "tomcrypt.h"
@@ -130,6 +130,10 @@ unsigned long rc4_read(unsigned char *out, unsigned long outlen, prng_state *prn
LTC_ARGCHK(out != NULL);
LTC_ARGCHK(prng != NULL);
+#ifdef LTC_VALGRIND
+ zeromem(out, outlen);
+#endif
+
n = outlen;
x = prng->rc4.x;
y = prng->rc4.y;
@@ -171,6 +175,7 @@ int rc4_export(unsigned char *out, unsigned long *outlen, prng_state *prng)
LTC_ARGCHK(prng != NULL);
if (*outlen < 32) {
+ *outlen = 32;
return CRYPT_BUFFER_OVERFLOW;
}
@@ -211,7 +216,7 @@ int rc4_import(const unsigned char *in, unsigned long inlen, prng_state *prng)
*/
int rc4_test(void)
{
-#ifndef LTC_TEST
+#if !defined(LTC_TEST) || defined(LTC_VALGRIND)
return CRYPT_NOP;
#else
static const struct {
@@ -242,7 +247,7 @@ int rc4_test(void)
return CRYPT_ERROR_READPRNG;
}
rc4_done(&prng);
- if (memcmp(dst, tests[x].ct, 8)) {
+ if (XMEMCMP(dst, tests[x].ct, 8)) {
#if 0
int y;
printf("\n\nRC4 failed, I got:\n");
@@ -260,5 +265,5 @@ int rc4_test(void)
/* $Source: /cvs/libtom/libtomcrypt/src/prngs/rc4.c,v $ */
-/* $Revision: 1.3 $ */
-/* $Date: 2005/05/05 14:35:59 $ */
+/* $Revision: 1.9 $ */
+/* $Date: 2006/11/16 00:32:18 $ */