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