summaryrefslogtreecommitdiff
path: root/fitz/crypt_arc4.c
diff options
context:
space:
mode:
Diffstat (limited to 'fitz/crypt_arc4.c')
-rw-r--r--fitz/crypt_arc4.c98
1 files changed, 0 insertions, 98 deletions
diff --git a/fitz/crypt_arc4.c b/fitz/crypt_arc4.c
deleted file mode 100644
index 9c54fbae..00000000
--- a/fitz/crypt_arc4.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* This code illustrates a sample implementation
- * of the Arcfour algorithm
- * Copyright (c) April 29, 1997 Kalle Kaukonen.
- * All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that this copyright
- * notice and disclaimer are retained.
- *
- * THIS SOFTWARE IS PROVIDED BY KALLE KAUKONEN AND CONTRIBUTORS ``AS
- * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KALLE
- * KAUKONEN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "mupdf/fitz.h"
-
-void
-fz_arc4_init(fz_arc4 *arc4, const unsigned char *key, unsigned keylen)
-{
- unsigned int t, u;
- unsigned int keyindex;
- unsigned int stateindex;
- unsigned char *state;
- unsigned int counter;
-
- state = arc4->state;
-
- arc4->x = 0;
- arc4->y = 0;
-
- for (counter = 0; counter < 256; counter++)
- {
- state[counter] = counter;
- }
-
- keyindex = 0;
- stateindex = 0;
-
- for (counter = 0; counter < 256; counter++)
- {
- t = state[counter];
- stateindex = (stateindex + key[keyindex] + t) & 0xff;
- u = state[stateindex];
-
- state[stateindex] = t;
- state[counter] = u;
-
- if (++keyindex >= keylen)
- {
- keyindex = 0;
- }
- }
-}
-
-static unsigned char
-fz_arc4_next(fz_arc4 *arc4)
-{
- unsigned int x;
- unsigned int y;
- unsigned int sx, sy;
- unsigned char *state;
-
- state = arc4->state;
-
- x = (arc4->x + 1) & 0xff;
- sx = state[x];
- y = (sx + arc4->y) & 0xff;
- sy = state[y];
-
- arc4->x = x;
- arc4->y = y;
-
- state[y] = sx;
- state[x] = sy;
-
- return state[(sx + sy) & 0xff];
-}
-
-void
-fz_arc4_encrypt(fz_arc4 *arc4, unsigned char *dest, const unsigned char *src, unsigned len)
-{
- unsigned int i;
- for (i = 0; i < len; i++)
- {
- unsigned char x;
- x = fz_arc4_next(arc4);
- dest[i] = src[i] ^ x;
- }
-}