rc4_utl.c revision 392aa7cc7d2b122614c5393c3e357da07fd07af3
1392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom/* crypto/rc4/rc4_utl.c -*- mode:C; c-file-style: "eay" -*- */
2392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom/* ====================================================================
3392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * Copyright (c) 2011 The OpenSSL Project.  All rights reserved.
4392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *
5392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * Redistribution and use in source and binary forms, with or without
6392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * modification, are permitted provided that the following conditions
7392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * are met:
8392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *
9392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * 1. Redistributions of source code must retain the above copyright
10392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    notice, this list of conditions and the following disclaimer.
11392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *
12392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * 2. Redistributions in binary form must reproduce the above copyright
13392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    notice, this list of conditions and the following disclaimer in
14392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    the documentation and/or other materials provided with the
15392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    distribution.
16392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *
17392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * 3. All advertising materials mentioning features or use of this
18392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    software must display the following acknowledgment:
19392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    "This product includes software developed by the OpenSSL Project
20392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
21392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *
22392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
23392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    endorse or promote products derived from this software without
24392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    prior written permission. For written permission, please contact
25392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    openssl-core@openssl.org.
26392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *
27392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * 5. Products derived from this software may not be called "OpenSSL"
28392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    nor may "OpenSSL" appear in their names without prior written
29392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    permission of the OpenSSL Project.
30392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *
31392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * 6. Redistributions of any form whatsoever must retain the following
32392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    acknowledgment:
33392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    "This product includes software developed by the OpenSSL Project
34392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
35392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *
36392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
37392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
40392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
42392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
43392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
44392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
45392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
46392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
47392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * OF THE POSSIBILITY OF SUCH DAMAGE.
48392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom * ====================================================================
49392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom *
50392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom */
51392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom
52392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#include <openssl/opensslv.h>
53392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#include <openssl/crypto.h>
54392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#include <openssl/rc4.h>
55392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom
56392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstromvoid RC4_set_key(RC4_KEY *key, int len, const unsigned char *data)
57392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom	{
58392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#ifdef OPENSSL_FIPS
59392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom	fips_cipher_abort(RC4);
60392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif
61392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom	private_RC4_set_key(key, len, data);
62392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom	}
63