1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* crypto/des/des_opts.c */ 2656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * All rights reserved. 4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This package is an SSL implementation written 6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * by Eric Young (eay@cryptsoft.com). 7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * The implementation was written so as to conform with Netscapes SSL. 8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This library is free for commercial and non-commercial use as long as 10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the following conditions are aheared to. The following conditions 11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * apply to all code found in this distribution, be it the RC4, RSA, 12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * lhash, DES, etc., code; not just the SSL code. The SSL documentation 13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * included with this distribution is covered by the same copyright terms 14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * except that the holder is Tim Hudson (tjh@cryptsoft.com). 15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Copyright remains Eric Young's, and as such any Copyright notices in 17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the code are not to be removed. 18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * If this package is used in a product, Eric Young should be given attribution 19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * as the author of the parts of the library used. 20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This can be in the form of a textual message at program startup or 21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * in documentation (online or textual) provided with the package. 22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Redistribution and use in source and binary forms, with or without 24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * modification, are permitted provided that the following conditions 25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * are met: 26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 1. Redistributions of source code must retain the copyright 27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer. 28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer in the 30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * documentation and/or other materials provided with the distribution. 31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 3. All advertising materials mentioning features or use of this software 32656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * must display the following acknowledgement: 33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes cryptographic software written by 34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Eric Young (eay@cryptsoft.com)" 35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * The word 'cryptographic' can be left out if the rouines from the library 36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * being used are not cryptographic related :-). 37656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 4. If you include any Windows specific code (or a derivative thereof) from 38656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the apps directory (application code) you must include an acknowledgement: 39656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 47656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 49656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * SUCH DAMAGE. 52656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 53656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * The licence and distribution terms for any publically available version or 54656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * derivative of this code cannot be changed. i.e. this code cannot simply be 55656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * copied and put under another distribution licence 56656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * [including the GNU Public Licence.] 57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 58656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 59656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* define PART1, PART2, PART3 or PART4 to build only with a few of the options. 60656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This is for machines with 64k code segment size restrictions. */ 61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 62656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if !defined(OPENSSL_SYS_MSDOS) && (!defined(OPENSSL_SYS_VMS) || defined(__DECC)) && !defined(OPENSSL_SYS_MACOSX) 63656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define TIMES 64656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 65656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 66656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <stdio.h> 67656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_SYS_MSDOS 68656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/e_os2.h> 69656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include OPENSSL_UNISTD 70656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 71656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <io.h> 72656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectextern void exit(); 73656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 74656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 75656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_SYS_NETWARE 76656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <signal.h> 77656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 78656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 79656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef _IRIX 80656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <time.h> 81656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 82656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef TIMES 83656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <sys/types.h> 84656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <sys/times.h> 85656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 86656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 87656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Depending on the VMS version, the tms structure is perhaps defined. 88656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project The __TMS macro will show if it was. If it wasn't defined, we should 89656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project undefine TIMES, since that tells the rest of the program how things 90656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project should be handled. -- Richard Levitte */ 91656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(OPENSSL_SYS_VMS_DECC) && !defined(__TMS) 92656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef TIMES 93656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 94656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 95656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef TIMES 96656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <sys/timeb.h> 97656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 98656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 99656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(sun) || defined(__ultrix) 101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define _POSIX_SOURCE 102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <limits.h> 103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <sys/param.h> 104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/des.h> 107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "spr.h" 108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_DEFAULT_OPTIONS 110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if !defined(PART1) && !defined(PART2) && !defined(PART3) && !defined(PART4) 112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PART1 113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PART2 114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PART3 115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PART4 116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef PART1 119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_UNROLL 121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC1 122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC2 123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_PTR 124656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef D_ENCRYPT 125656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt1 des_encrypt_u4_cisc_idx 126656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt2 des_encrypt2_u4_cisc_idx 127656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt3 des_encrypt3_u4_cisc_idx 128656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_decrypt3 des_decrypt3_u4_cisc_idx 129656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef HEADER_DES_LOCL_H 130656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "des_enc.c" 131656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_UNROLL 133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC1 134656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC2 135656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_PTR 136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef D_ENCRYPT 137656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt1 138656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt2 139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt3 140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_decrypt3 141656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt1 des_encrypt_u16_cisc_idx 142656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt2 des_encrypt2_u16_cisc_idx 143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt3 des_encrypt3_u16_cisc_idx 144656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_decrypt3 des_decrypt3_u16_cisc_idx 145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef HEADER_DES_LOCL_H 146656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "des_enc.c" 147656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_UNROLL 149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_RISC1 150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC2 151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_PTR 152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef D_ENCRYPT 153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt1 154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt2 155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt3 156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_decrypt3 157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt1 des_encrypt_u4_risc1_idx 158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt2 des_encrypt2_u4_risc1_idx 159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt3 des_encrypt3_u4_risc1_idx 160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_decrypt3 des_decrypt3_u4_risc1_idx 161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef HEADER_DES_LOCL_H 162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "des_enc.c" 163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef PART2 167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_UNROLL 169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC1 170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_RISC2 171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_PTR 172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef D_ENCRYPT 173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt1 174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt2 175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt3 176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_decrypt3 177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt1 des_encrypt_u4_risc2_idx 178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt2 des_encrypt2_u4_risc2_idx 179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt3 des_encrypt3_u4_risc2_idx 180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_decrypt3 des_decrypt3_u4_risc2_idx 181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef HEADER_DES_LOCL_H 182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "des_enc.c" 183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_UNROLL 185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_RISC1 186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC2 187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_PTR 188656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef D_ENCRYPT 189656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt1 190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt2 191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt3 192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_decrypt3 193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt1 des_encrypt_u16_risc1_idx 194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt2 des_encrypt2_u16_risc1_idx 195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt3 des_encrypt3_u16_risc1_idx 196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_decrypt3 des_decrypt3_u16_risc1_idx 197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef HEADER_DES_LOCL_H 198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "des_enc.c" 199656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_UNROLL 201656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC1 202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_RISC2 203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_PTR 204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef D_ENCRYPT 205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt1 206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt2 207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt3 208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_decrypt3 209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt1 des_encrypt_u16_risc2_idx 210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt2 des_encrypt2_u16_risc2_idx 211656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt3 des_encrypt3_u16_risc2_idx 212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_decrypt3 des_decrypt3_u16_risc2_idx 213656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef HEADER_DES_LOCL_H 214656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "des_enc.c" 215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 216656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef PART3 219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_UNROLL 221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC1 222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC2 223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_PTR 224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef D_ENCRYPT 225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt1 226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt2 227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt3 228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_decrypt3 229656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt1 des_encrypt_u4_cisc_ptr 230656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt2 des_encrypt2_u4_cisc_ptr 231656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt3 des_encrypt3_u4_cisc_ptr 232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_decrypt3 des_decrypt3_u4_cisc_ptr 233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef HEADER_DES_LOCL_H 234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "des_enc.c" 235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_UNROLL 237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC1 238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC2 239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_PTR 240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef D_ENCRYPT 241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt1 242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt2 243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt3 244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_decrypt3 245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt1 des_encrypt_u16_cisc_ptr 246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt2 des_encrypt2_u16_cisc_ptr 247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt3 des_encrypt3_u16_cisc_ptr 248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_decrypt3 des_decrypt3_u16_cisc_ptr 249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef HEADER_DES_LOCL_H 250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "des_enc.c" 251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_UNROLL 253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_RISC1 254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC2 255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_PTR 256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef D_ENCRYPT 257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt1 258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt2 259656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt3 260656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_decrypt3 261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt1 des_encrypt_u4_risc1_ptr 262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt2 des_encrypt2_u4_risc1_ptr 263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt3 des_encrypt3_u4_risc1_ptr 264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_decrypt3 des_decrypt3_u4_risc1_ptr 265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef HEADER_DES_LOCL_H 266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "des_enc.c" 267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef PART4 271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_UNROLL 273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC1 274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_RISC2 275656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_PTR 276656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef D_ENCRYPT 277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt1 278656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt2 279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt3 280656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_decrypt3 281656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt1 des_encrypt_u4_risc2_ptr 282656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt2 des_encrypt2_u4_risc2_ptr 283656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt3 des_encrypt3_u4_risc2_ptr 284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_decrypt3 des_decrypt3_u4_risc2_ptr 285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef HEADER_DES_LOCL_H 286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "des_enc.c" 287656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_UNROLL 289656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_RISC1 290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC2 291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_PTR 292656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef D_ENCRYPT 293656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt1 294656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt2 295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt3 296656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_decrypt3 297656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt1 des_encrypt_u16_risc1_ptr 298656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt2 des_encrypt2_u16_risc1_ptr 299656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt3 des_encrypt3_u16_risc1_ptr 300656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_decrypt3 des_decrypt3_u16_risc1_ptr 301656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef HEADER_DES_LOCL_H 302656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "des_enc.c" 303656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_UNROLL 305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_RISC1 306656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_RISC2 307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_PTR 308656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef D_ENCRYPT 309656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt1 310656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt2 311656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_encrypt3 312656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef DES_decrypt3 313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt1 des_encrypt_u16_risc2_ptr 314656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt2 des_encrypt2_u16_risc2_ptr 315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_encrypt3 des_encrypt3_u16_risc2_ptr 316656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DES_decrypt3 des_decrypt3_u16_risc2_ptr 317656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#undef HEADER_DES_LOCL_H 318656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "des_enc.c" 319656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 320656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 321656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 322656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* The following if from times(3) man page. It may need to be changed */ 323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef HZ 324656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifndef CLK_TCK 325656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifndef _BSD_CLK_TCK_ /* FreeBSD fix */ 326656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define HZ 100.0 327656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# else /* _BSD_CLK_TCK_ */ 328656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define HZ ((double)_BSD_CLK_TCK_) 329656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 330656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# else /* CLK_TCK */ 331656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define HZ ((double)CLK_TCK) 332656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 333656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 334656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 335656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define BUFSIZE ((long)1024) 336656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectlong run=0; 337656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectdouble Time_F(int s); 339656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef SIGALRM 340656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(__STDC__) || defined(sgi) 341656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define SIGRETTYPE void 342656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 343656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define SIGRETTYPE int 344656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 345656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 346656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSIGRETTYPE sig_done(int sig); 347656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSIGRETTYPE sig_done(int sig) 348656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 349656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project signal(SIGALRM,sig_done); 350656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project run=0; 351656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef LINT 352656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project sig=sig; 353656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 354656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 355656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 356656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 357656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define START 0 358656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define STOP 1 359656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 360656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectdouble Time_F(int s) 361656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 362656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project double ret; 363656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef TIMES 364656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project static struct tms tstart,tend; 365656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 366656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s == START) 367656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 368656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project times(&tstart); 369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 370656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 372656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 373656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project times(&tend); 374656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret=((double)(tend.tms_utime-tstart.tms_utime))/HZ; 375656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return((ret == 0.0)?1e-6:ret); 376656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 377656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else /* !times() */ 378656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project static struct timeb tstart,tend; 379656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project long i; 380656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 381656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (s == START) 382656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 383656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ftime(&tstart); 384656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 385656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 386656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project else 387656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 388656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ftime(&tend); 389656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project i=(long)tend.millitm-(long)tstart.millitm; 390656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret=((double)(tend.time-tstart.time))+((double)i)/1000.0; 391656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return((ret == 0.0)?1e-6:ret); 392656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 393656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 394656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 395656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 396656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef SIGALRM 397656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define print_name(name) fprintf(stderr,"Doing %s's for 10 seconds\n",name); alarm(10); 398656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 399656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define print_name(name) fprintf(stderr,"Doing %s %ld times\n",name,cb); 400656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 401656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 402656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define time_it(func,name,index) \ 403656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project print_name(name); \ 404656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project Time_F(START); \ 405656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project for (count=0,run=1; COND(cb); count++) \ 406656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { \ 407656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned long d[2]; \ 408656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project func(d,&sch,DES_ENCRYPT); \ 409656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } \ 410656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tm[index]=Time_F(STOP); \ 411656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project fprintf(stderr,"%ld %s's in %.2f second\n",count,name,tm[index]); \ 412656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tm[index]=((double)COUNT(cb))/tm[index]; 413656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 414656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define print_it(name,index) \ 415656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project fprintf(stderr,"%s bytes per sec = %12.2f (%5.1fuS)\n",name, \ 416656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tm[index]*8,1.0e6/tm[index]); 417656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 418656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint main(int argc, char **argv) 419656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 420656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project long count; 421656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project static unsigned char buf[BUFSIZE]; 422656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project static DES_cblock key ={0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0}; 423656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project static DES_cblock key2={0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12}; 424656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project static DES_cblock key3={0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34}; 425656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DES_key_schedule sch,sch2,sch3; 426656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project double d,tm[16],max=0; 427656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int rank[16]; 428656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *str[16]; 429656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int max_idx=0,i,num=0,j; 430656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef SIGALARM 431656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project long ca,cb,cc,cd,ce; 432656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 433656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 434656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project for (i=0; i<12; i++) 435656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 436656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tm[i]=0.0; 437656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rank[i]=0; 438656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 439656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 440656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef TIMES 441656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project fprintf(stderr,"To get the most accurate results, try to run this\n"); 442656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project fprintf(stderr,"program when this computer is idle.\n"); 443656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 444656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 445656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DES_set_key_unchecked(&key,&sch); 446656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DES_set_key_unchecked(&key2,&sch2); 447656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DES_set_key_unchecked(&key3,&sch3); 448656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 449656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef SIGALRM 450656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project fprintf(stderr,"First we calculate the approximate speed ...\n"); 451656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DES_set_key_unchecked(&key,sch); 452656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project count=10; 453656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project do { 454656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project long i; 455656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project unsigned long data[2]; 456656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 457656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project count*=2; 458656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project Time_F(START); 459656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project for (i=count; i; i--) 460656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DES_encrypt1(data,&(sch[0]),DES_ENCRYPT); 461656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project d=Time_F(STOP); 462656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } while (d < 3.0); 463656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ca=count; 464656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cb=count*3; 465656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cc=count*3*8/BUFSIZE+1; 466656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cd=count*8/BUFSIZE+1; 467656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 468656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ce=count/20+1; 469656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define COND(d) (count != (d)) 470656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define COUNT(d) (d) 471656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 472656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define COND(c) (run) 473656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define COUNT(d) (count) 474656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project signal(SIGALRM,sig_done); 475656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project alarm(10); 476656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 477656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 478656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef PART1 479656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project time_it(des_encrypt_u4_cisc_idx, "des_encrypt_u4_cisc_idx ", 0); 480656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project time_it(des_encrypt_u16_cisc_idx, "des_encrypt_u16_cisc_idx ", 1); 481656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project time_it(des_encrypt_u4_risc1_idx, "des_encrypt_u4_risc1_idx ", 2); 482656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project num+=3; 483656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 484656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef PART2 485656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project time_it(des_encrypt_u16_risc1_idx,"des_encrypt_u16_risc1_idx", 3); 486656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project time_it(des_encrypt_u4_risc2_idx, "des_encrypt_u4_risc2_idx ", 4); 487656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project time_it(des_encrypt_u16_risc2_idx,"des_encrypt_u16_risc2_idx", 5); 488656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project num+=3; 489656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 490656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef PART3 491656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project time_it(des_encrypt_u4_cisc_ptr, "des_encrypt_u4_cisc_ptr ", 6); 492656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project time_it(des_encrypt_u16_cisc_ptr, "des_encrypt_u16_cisc_ptr ", 7); 493656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project time_it(des_encrypt_u4_risc1_ptr, "des_encrypt_u4_risc1_ptr ", 8); 494656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project num+=3; 495656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 496656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef PART4 497656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project time_it(des_encrypt_u16_risc1_ptr,"des_encrypt_u16_risc1_ptr", 9); 498656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project time_it(des_encrypt_u4_risc2_ptr, "des_encrypt_u4_risc2_ptr ",10); 499656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project time_it(des_encrypt_u16_risc2_ptr,"des_encrypt_u16_risc2_ptr",11); 500656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project num+=3; 501656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 502656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 503656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef PART1 504656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str[0]=" 4 c i"; 505656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project print_it("des_encrypt_u4_cisc_idx ",0); 506656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project max=tm[0]; 507656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project max_idx=0; 508656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str[1]="16 c i"; 509656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project print_it("des_encrypt_u16_cisc_idx ",1); 510656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (max < tm[1]) { max=tm[1]; max_idx=1; } 511656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str[2]=" 4 r1 i"; 512656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project print_it("des_encrypt_u4_risc1_idx ",2); 513656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (max < tm[2]) { max=tm[2]; max_idx=2; } 514656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 515656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef PART2 516656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str[3]="16 r1 i"; 517656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project print_it("des_encrypt_u16_risc1_idx",3); 518656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (max < tm[3]) { max=tm[3]; max_idx=3; } 519656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str[4]=" 4 r2 i"; 520656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project print_it("des_encrypt_u4_risc2_idx ",4); 521656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (max < tm[4]) { max=tm[4]; max_idx=4; } 522656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str[5]="16 r2 i"; 523656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project print_it("des_encrypt_u16_risc2_idx",5); 524656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (max < tm[5]) { max=tm[5]; max_idx=5; } 525656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 526656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef PART3 527656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str[6]=" 4 c p"; 528656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project print_it("des_encrypt_u4_cisc_ptr ",6); 529656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (max < tm[6]) { max=tm[6]; max_idx=6; } 530656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str[7]="16 c p"; 531656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project print_it("des_encrypt_u16_cisc_ptr ",7); 532656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (max < tm[7]) { max=tm[7]; max_idx=7; } 533656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str[8]=" 4 r1 p"; 534656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project print_it("des_encrypt_u4_risc1_ptr ",8); 535656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (max < tm[8]) { max=tm[8]; max_idx=8; } 536656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 537656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef PART4 538656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str[9]="16 r1 p"; 539656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project print_it("des_encrypt_u16_risc1_ptr",9); 540656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (max < tm[9]) { max=tm[9]; max_idx=9; } 541656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str[10]=" 4 r2 p"; 542656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project print_it("des_encrypt_u4_risc2_ptr ",10); 543656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (max < tm[10]) { max=tm[10]; max_idx=10; } 544656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project str[11]="16 r2 p"; 545656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project print_it("des_encrypt_u16_risc2_ptr",11); 546656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (max < tm[11]) { max=tm[11]; max_idx=11; } 547656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 548656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("options des ecb/s\n"); 549656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("%s %12.2f 100.0%%\n",str[max_idx],tm[max_idx]); 550656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project d=tm[max_idx]; 551656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tm[max_idx]= -2.0; 552656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project max= -1.0; 553656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project for (;;) 554656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 555656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project for (i=0; i<12; i++) 556656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 557656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (max < tm[i]) { max=tm[i]; j=i; } 558656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 559656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project if (max < 0.0) break; 560656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("%s %12.2f %4.1f%%\n",str[j],tm[j],tm[j]/d*100.0); 561656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tm[j]= -2.0; 562656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project max= -1.0; 563656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 564656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 565656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project switch (max_idx) 566656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 567656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case 0: 568656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("-DDES_DEFAULT_OPTIONS\n"); 569656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 570656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case 1: 571656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("-DDES_UNROLL\n"); 572656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 573656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case 2: 574656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("-DDES_RISC1\n"); 575656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 576656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case 3: 577656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("-DDES_UNROLL -DDES_RISC1\n"); 578656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 579656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case 4: 580656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("-DDES_RISC2\n"); 581656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 582656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case 5: 583656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("-DDES_UNROLL -DDES_RISC2\n"); 584656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 585656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case 6: 586656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("-DDES_PTR\n"); 587656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 588656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case 7: 589656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("-DDES_UNROLL -DDES_PTR\n"); 590656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 591656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case 8: 592656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("-DDES_RISC1 -DDES_PTR\n"); 593656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 594656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case 9: 595656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("-DDES_UNROLL -DDES_RISC1 -DDES_PTR\n"); 596656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 597656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case 10: 598656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("-DDES_RISC2 -DDES_PTR\n"); 599656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 600656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project case 11: 601656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project printf("-DDES_UNROLL -DDES_RISC2 -DDES_PTR\n"); 602656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project break; 603656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 604656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project exit(0); 605656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(LINT) || defined(OPENSSL_SYS_MSDOS) 606656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project return(0); 607656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 608656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } 609