X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Farcfour.c;h=66efb58669d71e8ccf106d448f30da2857234d19;hb=66f5e6513c46dffcb40b216e3709b84ab5fbc392;hp=61b851127c9d6aa7382d338c4edf8cfabb163762;hpb=13083d5caa5989dab4238adce19a2fa55efc4201;p=gnulib.git
diff --git a/lib/arcfour.c b/lib/arcfour.c
index 61b851127..66efb5866 100644
--- a/lib/arcfour.c
+++ b/lib/arcfour.c
@@ -1,5 +1,5 @@
/* arcfour.c --- The arcfour stream cipher
- * Copyright (C) 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+ * Copyright (C) 2000-2003, 2005-2006, 2009-2012 Free Software Foundation, Inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
@@ -12,9 +12,7 @@
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this file; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
+ * along with this file; if not, see .
*
*/
@@ -26,31 +24,29 @@
* ISBN 0-471-11709-9. Pages 397 ff.
*/
-#ifdef HAVE_CONFIG_H
-# include
-#endif
+#include
#include "arcfour.h"
void
arcfour_stream (arcfour_context * context, const char *inbuf, char *outbuf,
- size_t length)
+ size_t length)
{
- size_t i = context->idx_i;
- size_t j = context->idx_j;
+ uint8_t i = context->idx_i;
+ uint8_t j = context->idx_j;
char *sbox = context->sbox;
for (; length > 0; length--)
{
char t;
- i = (i + 1) % ARCFOUR_SBOX_SIZE;
- j = (j + sbox[i]) % ARCFOUR_SBOX_SIZE;
+ i++;
+ j += sbox[i];
t = sbox[i];
sbox[i] = sbox[j];
sbox[j] = t;
*outbuf++ = (*inbuf++
- ^ sbox[(0U + sbox[i] + sbox[j]) % ARCFOUR_SBOX_SIZE]);
+ ^ sbox[(0U + sbox[i] + sbox[j]) % ARCFOUR_SBOX_SIZE]);
}
context->idx_i = i;
@@ -74,6 +70,6 @@ arcfour_setkey (arcfour_context * context, const char *key, size_t keylen)
sbox[i] = sbox[j];
sbox[j] = t;
if (++k == keylen)
- k = 0;
+ k = 0;
}
}