/*
For general Scribus (>=1.3.2) copyright and licensing information please refer
to the COPYING file provided with the program. Following this notice may exist
a copyright and/or license notice that predates the release of Scribus 1.3.2
for which a new license (GPL+exception) is in place.
*/
/*
 * RC4 functions for HTMLDOC.
 *
 *   Original code by Rob Earhart
 *   Copyright 1999 by Carnegie Mellon University, All Rights Reserved
 *
 *   Permission to use, copy, modify, and distribute this software and its
 *   documentation for any purpose and without fee is hereby granted,
 *   provided that the above copyright notice appear in all copies and that
 *   both that copyright notice and this permission notice appear in
 *   supporting documentation, and that the name of Carnegie Mellon
 *   University not be used in advertising or publicity pertaining to
 *   distribution of the software without specific, written prior
 *   permission.
 *
 *   CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
 *   THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
 *   FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE FOR
 *   ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 *   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 *   ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
 *   OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#ifndef _RC4_H_
#  define _RC4_H_

#include "scribusapi.h"

#  ifdef __cplusplus
extern "C" {
#  endif /* __cplusplus */


/*
 * RC4 context...
 */

typedef struct
{
  unsigned char	sbox[256];	/* S boxes for encryption */
  int		i, j;		/* Current indices into S boxes */
} rc4_context_t;


/*
 * Prototypes...
 */

extern void	SCRIBUS_API rc4_init(rc4_context_t *context, const unsigned char *key,
			 unsigned keylen);
extern void	SCRIBUS_API rc4_encrypt(rc4_context_t *context, const unsigned char *input,
			    unsigned char *output, unsigned len);

#  ifdef __cplusplus
}
#  endif /* __cplusplus */

#endif /* !_RC4_H_ */

