Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 1 | |
| 2 | INSTALLATION ON THE WIN32 PLATFORM |
| 3 | ---------------------------------- |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 4 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 5 | Heres a few comments about building OpenSSL in Windows environments. Most of |
| 6 | this is tested on Win32 but it may also work in Win 3.1 with some |
| 7 | modification. See the end of this file for Eric's original comments. |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 8 | |
Dr. Stephen Henson | 982baa7 | 1999-05-24 13:20:21 +0000 | [diff] [blame] | 9 | You need Perl for Win32 (available from http://www.activestate.com/ActivePerl) |
Ulf Möller | 31a674d | 1999-05-06 00:46:34 +0000 | [diff] [blame] | 10 | and one of the following C compilers: |
Dr. Stephen Henson | 06c6849 | 1999-03-03 02:01:26 +0000 | [diff] [blame] | 11 | |
Ulf Möller | 31a674d | 1999-05-06 00:46:34 +0000 | [diff] [blame] | 12 | * Visual C++ |
| 13 | * Borland C |
| 14 | * GNU C (Mingw32 or Cygwin32) |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 15 | |
Dr. Stephen Henson | b617a5b | 1999-07-12 23:35:10 +0000 | [diff] [blame] | 16 | If you want to compile in the assembly language routines with Visual C++ then |
| 17 | you will need an assembler. This is worth doing because it will result in |
| 18 | faster code: for example it will typically result in a 2 times speedup in the |
| 19 | RSA routines. Currently the following assemblers are supported: |
| 20 | |
| 21 | * Microsoft MASM (aka "ml") |
| 22 | * Free Netwide Assembler NASM. |
| 23 | |
| 24 | MASM was I believe distributed in the past with VC++ and it is also part of |
| 25 | the MSDN SDKs. It is no longer distributed as part of VC++ and can be hard |
| 26 | to get hold of. It can be purchased: see Microsoft's site for details at: |
| 27 | http://www.microsoft.com/ |
| 28 | |
| 29 | NASM is freely available. Version 0.98 was used during testing: other versions |
| 30 | may also work. It is available from many places, see for example: |
| 31 | http://www.kernel.org/pub/software/devel/nasm/binaries/win32/ |
| 32 | The NASM binary nasmw.exe needs to be installed anywhere on your PATH. |
| 33 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 34 | If you are compiling from a tarball or a CVS snapshot then the Win32 files |
| 35 | may well be not up to date. This may mean that some "tweaking" is required to |
| 36 | get it all to work. See the trouble shooting section later on for if (when?) |
| 37 | it goes wrong. |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 38 | |
Ulf Möller | 31a674d | 1999-05-06 00:46:34 +0000 | [diff] [blame] | 39 | Visual C++ |
| 40 | ---------- |
| 41 | |
Dr. Stephen Henson | b617a5b | 1999-07-12 23:35:10 +0000 | [diff] [blame] | 42 | Firstly you should run Configure: |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 43 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 44 | > perl Configure VC-WIN32 |
Dr. Stephen Henson | b617a5b | 1999-07-12 23:35:10 +0000 | [diff] [blame] | 45 | |
| 46 | Next you need to build the Makefiles and optionally the assembly language |
Bodo Möller | 5067cce | 1999-08-03 20:19:04 +0000 | [diff] [blame] | 47 | files: |
Dr. Stephen Henson | b617a5b | 1999-07-12 23:35:10 +0000 | [diff] [blame] | 48 | |
Bodo Möller | 5067cce | 1999-08-03 20:19:04 +0000 | [diff] [blame] | 49 | - If you are using MASM then run: |
Dr. Stephen Henson | b617a5b | 1999-07-12 23:35:10 +0000 | [diff] [blame] | 50 | |
Bodo Möller | 5067cce | 1999-08-03 20:19:04 +0000 | [diff] [blame] | 51 | > ms\do_masm |
Dr. Stephen Henson | b617a5b | 1999-07-12 23:35:10 +0000 | [diff] [blame] | 52 | |
Bodo Möller | 5067cce | 1999-08-03 20:19:04 +0000 | [diff] [blame] | 53 | - If you are using NASM then run: |
Dr. Stephen Henson | b617a5b | 1999-07-12 23:35:10 +0000 | [diff] [blame] | 54 | |
Bodo Möller | 5067cce | 1999-08-03 20:19:04 +0000 | [diff] [blame] | 55 | > ms\do_nasm |
Dr. Stephen Henson | b617a5b | 1999-07-12 23:35:10 +0000 | [diff] [blame] | 56 | |
Bodo Möller | 5067cce | 1999-08-03 20:19:04 +0000 | [diff] [blame] | 57 | - If you don't want to use the assembly language files at all then run: |
Dr. Stephen Henson | b617a5b | 1999-07-12 23:35:10 +0000 | [diff] [blame] | 58 | |
Bodo Möller | 5067cce | 1999-08-03 20:19:04 +0000 | [diff] [blame] | 59 | > ms\do_ms |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 60 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 61 | If you get errors about things not having numbers assigned then check the |
| 62 | troubleshooting section: you probably wont be able to compile it as it |
| 63 | stands. |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 64 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 65 | Then from the VC++ environment at a prompt do: |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 66 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 67 | > nmake -f ms\ntdll.mak |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 68 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 69 | If all is well it should compile and you will have some DLLs and executables |
| 70 | in out32dll. If you want to try the tests then do: |
| 71 | |
| 72 | > cd out32dll |
| 73 | > ..\ms\test |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 74 | |
Ulf Möller | 31a674d | 1999-05-06 00:46:34 +0000 | [diff] [blame] | 75 | Tweaks: |
| 76 | |
Dr. Stephen Henson | b617a5b | 1999-07-12 23:35:10 +0000 | [diff] [blame] | 77 | There are various changes you can make to the Win32 compile environment. By |
| 78 | default the library is not compiled with debugging symbols. If you add 'debug' |
| 79 | to the mk1mk.pl lines in the do_* batch file then debugging symbols will be |
| 80 | compiled in. |
Ulf Möller | 31a674d | 1999-05-06 00:46:34 +0000 | [diff] [blame] | 81 | |
| 82 | The default Win32 environment is to leave out any Windows NT specific |
| 83 | features. |
| 84 | |
| 85 | If you want to enable the NT specific features of OpenSSL (currently only the |
| 86 | logging BIO) follow the instructions above but call the batch file do_nt.bat |
| 87 | instead of do_ms.bat. |
| 88 | |
| 89 | You can also build a static version of the library using the Makefile |
| 90 | ms\nt.mak |
| 91 | |
| 92 | Borland C++ builder 3 and 4 |
| 93 | --------------------------- |
| 94 | |
| 95 | * Setup PATH. First must be GNU make then bcb4/bin |
| 96 | |
| 97 | * Run ms\bcb4.bat |
| 98 | |
| 99 | * Run make: |
| 100 | > make -f bcb.mak |
| 101 | |
| 102 | GNU C (Mingw32) |
| 103 | --------------- |
| 104 | |
| 105 | To build OpenSSL, you need the Mingw32 package and GNU make. |
| 106 | |
Ulf Möller | 7d5d27b | 1999-05-07 22:55:27 +0000 | [diff] [blame] | 107 | * Compiler installation: |
Ulf Möller | fb3214f | 1999-05-06 01:29:57 +0000 | [diff] [blame] | 108 | |
Ulf Möller | 7d5d27b | 1999-05-07 22:55:27 +0000 | [diff] [blame] | 109 | Mingw32 is available from <ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/ |
| 110 | mingw32/egcs-1.1.2/egcs-1.1.2-mingw32.zip>. GNU make is at |
| 111 | <ftp://agnes.dida.physik.uni-essen.de/home/janjaap/mingw32/binaries/ |
| 112 | make-3.76.1.zip>. Install both of them in C:\egcs-1.1.2 and run |
| 113 | C:\egcs-1.1.2\mingw32.bat to set the PATH. |
Ulf Möller | 31a674d | 1999-05-06 00:46:34 +0000 | [diff] [blame] | 114 | |
Ulf Möller | 7d5d27b | 1999-05-07 22:55:27 +0000 | [diff] [blame] | 115 | * Compile OpenSSL: |
Ulf Möller | 31a674d | 1999-05-06 00:46:34 +0000 | [diff] [blame] | 116 | |
Ulf Möller | 31ff97b | 1999-05-13 10:28:14 +0000 | [diff] [blame] | 117 | > perl Configure Mingw32 |
| 118 | > ms\mw.bat |
Ulf Möller | 31a674d | 1999-05-06 00:46:34 +0000 | [diff] [blame] | 119 | |
Ulf Möller | 7d5d27b | 1999-05-07 22:55:27 +0000 | [diff] [blame] | 120 | This will create the library and binaries in out. |
Ulf Möller | 31a674d | 1999-05-06 00:46:34 +0000 | [diff] [blame] | 121 | |
Ulf Möller | 7d5d27b | 1999-05-07 22:55:27 +0000 | [diff] [blame] | 122 | libcrypto.a and libssl.a are the static libraries. To use the DLLs, |
| 123 | link with libeay32.a and libssl32.a instead. |
Ulf Möller | 31a674d | 1999-05-06 00:46:34 +0000 | [diff] [blame] | 124 | |
Ulf Möller | 7d5d27b | 1999-05-07 22:55:27 +0000 | [diff] [blame] | 125 | See troubleshooting if you get error messages about functions not having |
| 126 | a number assigned. |
Ulf Möller | 31a674d | 1999-05-06 00:46:34 +0000 | [diff] [blame] | 127 | |
Ulf Möller | 7d5d27b | 1999-05-07 22:55:27 +0000 | [diff] [blame] | 128 | * You can now try the tests: |
Ulf Möller | 31a674d | 1999-05-06 00:46:34 +0000 | [diff] [blame] | 129 | |
| 130 | > cd out |
| 131 | > ..\ms\test |
| 132 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 133 | Troubleshooting |
| 134 | --------------- |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 135 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 136 | Since the Win32 build is only occasionally tested it may not always compile |
| 137 | cleanly. If you get an error about functions not having numbers assigned |
| 138 | when you run ms\do_ms then this means the Win32 ordinal files are not up to |
| 139 | date. You can do: |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 140 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 141 | > perl util\mkdef.pl crypto ssl update |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 142 | |
Dr. Stephen Henson | b617a5b | 1999-07-12 23:35:10 +0000 | [diff] [blame] | 143 | then ms\do_XXX should not give a warning any more. However the numbers that |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 144 | get assigned by this technique may not match those that eventually get |
| 145 | assigned in the CVS tree: so anything linked against this version of the |
| 146 | library may need to be recompiled. |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 147 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 148 | If you get errors about unresolved externals then this means that either you |
| 149 | didn't read the note above about functions not having numbers assigned or |
| 150 | someone forgot to add a function to the header file. |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 151 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 152 | In this latter case check out the header file to see if the function is |
Dr. Stephen Henson | a5ab053 | 1999-05-08 22:46:51 +0000 | [diff] [blame] | 153 | defined in the header file. |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 154 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 155 | If you get warnings in the code then the compilation will halt. |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 156 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 157 | The default Makefile for Win32 halts whenever any warnings occur. Since VC++ |
| 158 | has its own ideas about warnings which don't always match up to other |
| 159 | environments this can happen. The best fix is to edit the file with the |
| 160 | warning in and fix it. Alternatively you can turn off the halt on warnings by |
| 161 | editing the CFLAG line in the Makefile and deleting the /WX option. |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 162 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 163 | You might get compilation errors. Again you will have to fix these or report |
| 164 | them. |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 165 | |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 166 | One final comment about compiling applications linked to the OpenSSL library. |
| 167 | If you don't use the multithreaded DLL runtime library (/MD option) your |
| 168 | program will almost certainly crash: see the original SSLeay description |
| 169 | below for more details. |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 170 | |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 171 | -------------------------------------------------------------------------------- |
Ralf S. Engelschall | 4109b97 | 1999-03-22 15:36:37 +0000 | [diff] [blame] | 172 | The orignal Windows build instructions from SSLeay follow. |
Dr. Stephen Henson | a5ab053 | 1999-05-08 22:46:51 +0000 | [diff] [blame] | 173 | Note: some of this may be out of date and no longer applicable. In particular |
| 174 | the Crypto_malloc_init() comment appears to be wrong: you always need to use |
| 175 | the same runtime library as the DLL itself. |
Dr. Stephen Henson | 5c00879 | 1999-02-14 00:40:13 +0000 | [diff] [blame] | 176 | -------------------------------------------------------------------------------- |
| 177 | |
Ralf S. Engelschall | d02b48c | 1998-12-21 10:52:47 +0000 | [diff] [blame] | 178 | The Microsoft World. |
| 179 | |
| 180 | The good news, to build SSLeay for the Microsft World |
| 181 | |
| 182 | Windows 3.1 DLL's |
| 183 | perl Configure VC-WIN16 |
| 184 | nmake -f ms\w31dll.mak |
| 185 | |
| 186 | Windows NT/95 DLL's |
| 187 | perl Configure VC-WIN32 |
| 188 | nmake -f ms\ntdll.mak |
| 189 | |
| 190 | Now the bad news |
| 191 | All builds were done using Microsofts Visual C++ 1.52c and [45].x. |
| 192 | If you are a borland person, you are probably going to have to help me |
| 193 | finish the stuff in util/pl/BC*pl |
| 194 | |
| 195 | All builds were made under Windows NT - this means long filenames, so |
| 196 | you may have problems under Windows 3.1 but probably not under 95. |
| 197 | |
| 198 | Because file pointers don't work in DLL's under Windows 3.1 (well at |
| 199 | least stdin/stdout don't and I don't like having to differentiate |
| 200 | between these and other file pointers), I now use the BIO file-pointer |
| 201 | module, which needs to be linked into your application. You can either |
| 202 | use the memory buffer BIO for IO, or compile bss_file.c into your |
| 203 | application, it is in the apps directory and is just a copy of |
| 204 | crypto/buffer/bss_file.c with #define APPS_WIN16 added. |
| 205 | I have not yet automated the makefile to automatically copy it into 'out' |
| 206 | for a win 3.1 build.... |
| 207 | |
| 208 | All callbacks passed into SSLeay for Windows 3.1 need to be of type |
| 209 | _far _loadds. |
| 210 | |
| 211 | I don't support building with the pascal calling convention. |
| 212 | |
| 213 | The DLL and static builds are large memory model. |
| 214 | |
| 215 | To build static libraries for NT/95 or win 3.1 |
| 216 | |
| 217 | perl util/mk1mf.pl VC-WIN32 > mf-stat.nt |
| 218 | perl util/mk1mf.pl VC-WIN16 > mf-stat.w31 |
| 219 | for DLL's |
| 220 | perl util/mk1mf.pl dll VC-WIN32 > mf-dll.nt |
| 221 | perl util/mk1mf.pl dll VC-WIN16 > mf-dll.w31 |
| 222 | |
| 223 | Again you will notice that if you dont have perl, you cannot do this. |
| 224 | |
| 225 | Now the next importaint issue. Running Configure! |
| 226 | I have small assember code files for critical big number library operation |
| 227 | in crypto/bn/asm. There is, asm code, object files and uuencode |
| 228 | object files. They are |
| 229 | x86nt32.asm - 32bit flat memory model assember - suitable Win32 |
| 230 | x86w16.asm - 16bit assember - used in the msdos build. |
| 231 | x86w32.asm - 32bit assember, win 3.1 segments, used for win16 build. |
| 232 | |
| 233 | If you feel compelled to build the 16bit maths routines in the windows 3.1 |
| 234 | build, |
| 235 | perl Configure VC-W31-16 |
| 236 | perl util/mk1mf.pl dll VC-W31-16 > mf-dll.w31 |
| 237 | |
| 238 | If you hate assember and don't want anything to do with it, |
| 239 | perl util/mk1mf.pl no-asm VC-WIN16 > mf-dll.w31 |
| 240 | will work for any of the makefile generations. |
| 241 | |
| 242 | There are more options to mk1mf.pl but these all leave the temporary |
| 243 | files in 'tmp' and the output files in 'out' by default. |
| 244 | |
| 245 | The NT build is done for console mode. |
| 246 | |
| 247 | The Windows 3.1 version of SSLeay uses quickwin, the interface is ugly |
| 248 | but it is better than nothing. If you want ugly, try doing anything |
| 249 | that involves getting a password. I decided to be ugly instead of |
| 250 | echoing characters. For Windows 3.1 I would just sugest using the |
| 251 | msdos version of the ssleay application for command line work. |
| 252 | The QuickWin build is primarily for testing. |
| 253 | |
| 254 | For both NT and Windows 3.1, I have not written the code so that |
| 255 | s_client, s_server can take input from the keyboard. You can happily |
| 256 | start applications up in separate windows, watch them handshake, and then sit |
| 257 | there for-ever. I have not had the time to get this working, and I've |
| 258 | been able to test things from a unix box to the NT box :-). |
| 259 | Try running ssleay s_server on the windows box |
| 260 | (with either -cert ../apps/server.pem -www) |
| 261 | and run ssleay s_time from another window. |
| 262 | This often stuffs up on Windows 3.1, but I'm not worried since this is |
| 263 | probably a problem with my demo applications, not the libraries. |
| 264 | |
| 265 | After a build of one of the version of microsoft SSLeay, |
| 266 | 'cd ms' and then run 'test'. This should check everything out and |
| 267 | even does a trial run of generating certificates. |
| 268 | 'test.bat' requires that perl be install, you be in the ms directory |
| 269 | (not the test directory, thats for unix so stay out :-) and that the |
| 270 | build output directory be ../out |
| 271 | |
| 272 | On a last note, you will probably get division by zero errors and |
| 273 | stuff after a build. This is due to your own inability to follow |
| 274 | instructions :-). |
| 275 | |
| 276 | The reasons for the problem is probably one of the following. |
| 277 | |
| 278 | 1) You did not run Configure. This is critical for windows 3.1 when |
| 279 | using assember. The values in crypto/bn/bn.h must match the |
| 280 | ones requred for the assember code. (remember that if you |
| 281 | edit crypto/bn/bn.h by hand, it will be clobered the next time |
| 282 | you run Configure by the contents of crypto/bn/bn.org). |
| 283 | SSLeay version -o will list the compile options. |
| 284 | For VC-WIN32 you need bn(64,32) or bn(32,32) |
| 285 | For VC-W31-32/VC-WIN16 you need bn(32,32) |
| 286 | For VC-W31-16 you need bn(32,16) or bn(16,16) |
| 287 | For VC-MSDOS you need bn(32,16) or bn(16,16). |
| 288 | |
| 289 | The first number will be 2 times bigger than the second if |
| 290 | BN_LLONG is defined in bn.h and the size of the second number |
| 291 | depends on the 'bits' defined at the start of bn.h. Have a |
| 292 | look, it's all reasonably clear. |
| 293 | If you want to start messing with 8 bit builds and things like |
| 294 | that, build without the assember by re-generating a makefile |
| 295 | via 'perl util/mk1mf.pl no-asm'. |
| 296 | 2) You tried to build under MS-DOS or Windows 3.1 using the /G3 |
| 297 | option. Don't. It is buggy (thats why you just got that |
| 298 | error) and unless you want to work out which optimising flag |
| 299 | to turn off, I'm not going to help you :-). I also noticed |
| 300 | that code often ran slower when compiled with /G3. |
| 301 | 3) Under NT/95, malloc goes stupid. You are probably linking with |
| 302 | the wrong library, there are problems if you mix the threaded |
| 303 | and non-threaded libraries (due to the DLL being staticly |
| 304 | linked with one and the applicaion using another. |
| 305 | |
| 306 | Well hopefully thats most of the MS issues handled, see you in ssl-users :-). |
| 307 | |
| 308 | eric 30-Aug-1996 |
| 309 | |
| 310 | SSLeay 0.6.5 |
| 311 | For Windows 95/NT, add CRYPTO_malloc_init() to your program before any |
| 312 | calls to the SSLeay libraries. This function will insert callbacks so that |
| 313 | the SSLeay libraries will use the same malloc(), free() and realloc() as |
| 314 | your application so 'problem 3)' mentioned above will go away. |
| 315 | |
| 316 | There is now DES assember for Windows NT/95. The file is |
| 317 | crypto/des/asm/win32.asm and replaces crypto/des/des_enc.c in the build. |
| 318 | |
| 319 | There is also Blowfish assember for Windows NT/95. The file is |
| 320 | crypto/bf/asm/win32.asm and replaces crypto/bf/bf_enc.c in the build. |
| 321 | |
| 322 | eric 25-Jun-1997 |
| 323 | |