|
|
1.1 ! root 1: /* crypto/bf/bf_ecb.c */ ! 2: /* Copyright (C) 1995-1997 Eric Young ([email protected]) ! 3: * All rights reserved. ! 4: * ! 5: * This package is an SSL implementation written ! 6: * by Eric Young ([email protected]). ! 7: * The implementation was written so as to conform with Netscapes SSL. ! 8: * ! 9: * This library is free for commercial and non-commercial use as long as ! 10: * the following conditions are aheared to. The following conditions ! 11: * apply to all code found in this distribution, be it the RC4, RSA, ! 12: * lhash, DES, etc., code; not just the SSL code. The SSL documentation ! 13: * included with this distribution is covered by the same copyright terms ! 14: * except that the holder is Tim Hudson ([email protected]). ! 15: * ! 16: * Copyright remains Eric Young's, and as such any Copyright notices in ! 17: * the code are not to be removed. ! 18: * If this package is used in a product, Eric Young should be given attribution ! 19: * as the author of the parts of the library used. ! 20: * This can be in the form of a textual message at program startup or ! 21: * in documentation (online or textual) provided with the package. ! 22: * ! 23: * Redistribution and use in source and binary forms, with or without ! 24: * modification, are permitted provided that the following conditions ! 25: * are met: ! 26: * 1. Redistributions of source code must retain the copyright ! 27: * notice, this list of conditions and the following disclaimer. ! 28: * 2. Redistributions in binary form must reproduce the above copyright ! 29: * notice, this list of conditions and the following disclaimer in the ! 30: * documentation and/or other materials provided with the distribution. ! 31: * 3. All advertising materials mentioning features or use of this software ! 32: * must display the following acknowledgement: ! 33: * "This product includes cryptographic software written by ! 34: * Eric Young ([email protected])" ! 35: * The word 'cryptographic' can be left out if the rouines from the library ! 36: * being used are not cryptographic related :-). ! 37: * 4. If you include any Windows specific code (or a derivative thereof) from ! 38: * the apps directory (application code) you must include an acknowledgement: ! 39: * "This product includes software written by Tim Hudson ([email protected])" ! 40: * ! 41: * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND ! 42: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 43: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 44: * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE ! 45: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 46: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 47: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 48: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 49: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 50: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 51: * SUCH DAMAGE. ! 52: * ! 53: * The licence and distribution terms for any publically available version or ! 54: * derivative of this code cannot be changed. i.e. this code cannot simply be ! 55: * copied and put under another distribution licence ! 56: * [including the GNU Public Licence.] ! 57: */ ! 58: ! 59: #include "blowfish.h" ! 60: #include "bf_locl.h" ! 61: ! 62: #pragma warning( disable : 4131 ) ! 63: ! 64: /* Blowfish as implemented from 'Blowfish: Springer-Verlag paper' ! 65: * (From LECTURE NOTES IN COIMPUTER SCIENCE 809, FAST SOFTWARE ENCRYPTION, ! 66: * CAMBRIDGE SECURITY WORKSHOP, CAMBRIDGE, U.K., DECEMBER 9-11, 1993) ! 67: */ ! 68: ! 69: char *BF_version="BlowFish part of SSLeay 0.8.2b 08-Jan-1998"; ! 70: ! 71: char *BF_options() ! 72: { ! 73: #ifdef BF_PTR ! 74: return("blowfish(ptr)"); ! 75: #elif defined(BF_PTR2) ! 76: return("blowfish(ptr2)"); ! 77: #else ! 78: return("blowfish(idx)"); ! 79: #endif ! 80: } ! 81: ! 82: void BF_ecb_encrypt(in, out, ks, encrypt) ! 83: unsigned char *in; ! 84: unsigned char *out; ! 85: BF_KEY *ks; ! 86: int encrypt; ! 87: { ! 88: BF_LONG l,d[2]; ! 89: ! 90: n2l(in,l); d[0]=l; ! 91: n2l(in,l); d[1]=l; ! 92: if (encrypt) ! 93: BF_encrypt(d,ks); ! 94: else ! 95: BF_decrypt(d,ks); ! 96: l=d[0]; l2n(l,out); ! 97: l=d[1]; l2n(l,out); ! 98: l=d[0]=d[1]=0; ! 99: } ! 100:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.