diff options
Diffstat (limited to 'fitz/crypt_arc4.c')
-rw-r--r-- | fitz/crypt_arc4.c | 98 |
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; - } -} |