1*ebfedea0SLionel SambucThis file contains the changes for the SSLeay library up to version 2*ebfedea0SLionel Sambuc0.9.0b. For later changes, see the file "CHANGES". 3*ebfedea0SLionel Sambuc 4*ebfedea0SLionel Sambuc SSLeay CHANGES 5*ebfedea0SLionel Sambuc ______________ 6*ebfedea0SLionel Sambuc 7*ebfedea0SLionel SambucChanges between 0.8.x and 0.9.0b 8*ebfedea0SLionel Sambuc 9*ebfedea0SLionel Sambuc10-Apr-1998 10*ebfedea0SLionel Sambuc 11*ebfedea0SLionel SambucI said the next version would go out at easter, and so it shall. 12*ebfedea0SLionel SambucI expect a 0.9.1 will follow with portability fixes in the next few weeks. 13*ebfedea0SLionel Sambuc 14*ebfedea0SLionel SambucThis is a quick, meet the deadline. Look to ssl-users for comments on what 15*ebfedea0SLionel Sambucis new etc. 16*ebfedea0SLionel Sambuc 17*ebfedea0SLionel Sambuceric (about to go bushwalking for the 4 day easter break :-) 18*ebfedea0SLionel Sambuc 19*ebfedea0SLionel Sambuc16-Mar-98 20*ebfedea0SLionel Sambuc - Patch for Cray T90 from Wayne Schroeder <schroede@SDSC.EDU> 21*ebfedea0SLionel Sambuc - Lots and lots of changes 22*ebfedea0SLionel Sambuc 23*ebfedea0SLionel Sambuc29-Jan-98 24*ebfedea0SLionel Sambuc - ASN1_BIT_STRING_set_bit()/ASN1_BIT_STRING_get_bit() from 25*ebfedea0SLionel Sambuc Goetz Babin-Ebell <babinebell@trustcenter.de>. 26*ebfedea0SLionel Sambuc - SSL_version() now returns SSL2_VERSION, SSL3_VERSION or 27*ebfedea0SLionel Sambuc TLS1_VERSION. 28*ebfedea0SLionel Sambuc 29*ebfedea0SLionel Sambuc7-Jan-98 30*ebfedea0SLionel Sambuc - Finally reworked the cipher string to ciphers again, so it 31*ebfedea0SLionel Sambuc works correctly 32*ebfedea0SLionel Sambuc - All the app_data stuff is now ex_data with funcion calls to access. 33*ebfedea0SLionel Sambuc The index is supplied by a function and 'methods' can be setup 34*ebfedea0SLionel Sambuc for the types that are called on XXX_new/XXX_free. This lets 35*ebfedea0SLionel Sambuc applications get notified on creation and destruction. Some of 36*ebfedea0SLionel Sambuc the RSA methods could be implemented this way and I may do so. 37*ebfedea0SLionel Sambuc - Oh yes, SSL under perl5 is working at the basic level. 38*ebfedea0SLionel Sambuc 39*ebfedea0SLionel Sambuc15-Dec-97 40*ebfedea0SLionel Sambuc - Warning - the gethostbyname cache is not fully thread safe, 41*ebfedea0SLionel Sambuc but it should work well enough. 42*ebfedea0SLionel Sambuc - Major internal reworking of the app_data stuff. More functions 43*ebfedea0SLionel Sambuc but if you were accessing ->app_data directly, things will 44*ebfedea0SLionel Sambuc stop working. 45*ebfedea0SLionel Sambuc - The perlv5 stuff is working. Currently on message digests, 46*ebfedea0SLionel Sambuc ciphers and the bignum library. 47*ebfedea0SLionel Sambuc 48*ebfedea0SLionel Sambuc9-Dec-97 49*ebfedea0SLionel Sambuc - Modified re-negotiation so that server initated re-neg 50*ebfedea0SLionel Sambuc will cause a SSL_read() to return -1 should retry. 51*ebfedea0SLionel Sambuc The danger otherwise was that the server and the 52*ebfedea0SLionel Sambuc client could end up both trying to read when using non-blocking 53*ebfedea0SLionel Sambuc sockets. 54*ebfedea0SLionel Sambuc 55*ebfedea0SLionel Sambuc4-Dec-97 56*ebfedea0SLionel Sambuc - Lots of small changes 57*ebfedea0SLionel Sambuc - Fix for binaray mode in Windows for the FILE BIO, thanks to 58*ebfedea0SLionel Sambuc Bob Denny <rdenny@dc3.com> 59*ebfedea0SLionel Sambuc 60*ebfedea0SLionel Sambuc17-Nov-97 61*ebfedea0SLionel Sambuc - Quite a few internal cleanups, (removal of errno, and using macros 62*ebfedea0SLionel Sambuc defined in e_os.h). 63*ebfedea0SLionel Sambuc - A bug in ca.c, pointed out by yasuyuki-ito@d-cruise.co.jp, where 64*ebfedea0SLionel Sambuc the automactic naming out output files was being stuffed up. 65*ebfedea0SLionel Sambuc 66*ebfedea0SLionel Sambuc29-Oct-97 67*ebfedea0SLionel Sambuc - The Cast5 cipher has been added. MD5 and SHA-1 are now in assember 68*ebfedea0SLionel Sambuc for x86. 69*ebfedea0SLionel Sambuc 70*ebfedea0SLionel Sambuc21-Oct-97 71*ebfedea0SLionel Sambuc - Fixed a bug in the BIO_gethostbyname() cache. 72*ebfedea0SLionel Sambuc 73*ebfedea0SLionel Sambuc15-Oct-97 74*ebfedea0SLionel Sambuc - cbc mode for blowfish/des/3des is now in assember. Blowfish asm 75*ebfedea0SLionel Sambuc has also been improved. At this point in time, on the pentium, 76*ebfedea0SLionel Sambuc md5 is %80 faster, the unoptimesed sha-1 is %79 faster, 77*ebfedea0SLionel Sambuc des-cbc is %28 faster, des-ede3-cbc is %9 faster and blowfish-cbc 78*ebfedea0SLionel Sambuc is %62 faster. 79*ebfedea0SLionel Sambuc 80*ebfedea0SLionel Sambuc12-Oct-97 81*ebfedea0SLionel Sambuc - MEM_BUF_grow() has been fixed so that it always sets the buf->length 82*ebfedea0SLionel Sambuc to the value we are 'growing' to. Think of MEM_BUF_grow() as the 83*ebfedea0SLionel Sambuc way to set the length value correctly. 84*ebfedea0SLionel Sambuc 85*ebfedea0SLionel Sambuc10-Oct-97 86*ebfedea0SLionel Sambuc - I now hash for certificate lookup on the raw DER encoded RDN (md5). 87*ebfedea0SLionel Sambuc This breaks things again :-(. This is efficent since I cache 88*ebfedea0SLionel Sambuc the DER encoding of the RDN. 89*ebfedea0SLionel Sambuc - The text DN now puts in the numeric OID instead of UNKNOWN. 90*ebfedea0SLionel Sambuc - req can now process arbitary OIDs in the config file. 91*ebfedea0SLionel Sambuc - I've been implementing md5 in x86 asm, much faster :-). 92*ebfedea0SLionel Sambuc - Started sha1 in x86 asm, needs more work. 93*ebfedea0SLionel Sambuc - Quite a few speedups in the BN stuff. RSA public operation 94*ebfedea0SLionel Sambuc has been made faster by caching the BN_MONT_CTX structure. 95*ebfedea0SLionel Sambuc The calulating of the Ai where A*Ai === 1 mod m was rather 96*ebfedea0SLionel Sambuc expensive. Basically a 40-50% speedup on public operations. 97*ebfedea0SLionel Sambuc The RSA speedup is now 15% on pentiums and %20 on pentium 98*ebfedea0SLionel Sambuc pro. 99*ebfedea0SLionel Sambuc 100*ebfedea0SLionel Sambuc30-Sep-97 101*ebfedea0SLionel Sambuc - After doing some profiling, I added x86 adm for bn_add_words(), 102*ebfedea0SLionel Sambuc which just adds 2 arrays of longs together. A %10 speedup 103*ebfedea0SLionel Sambuc for 512 and 1024 bit RSA on the pentium pro. 104*ebfedea0SLionel Sambuc 105*ebfedea0SLionel Sambuc29-Sep-97 106*ebfedea0SLionel Sambuc - Converted the x86 bignum assembler to us the perl scripts 107*ebfedea0SLionel Sambuc for generation. 108*ebfedea0SLionel Sambuc 109*ebfedea0SLionel Sambuc23-Sep-97 110*ebfedea0SLionel Sambuc - If SSL_set_session() is passed a NULL session, it now clears the 111*ebfedea0SLionel Sambuc current session-id. 112*ebfedea0SLionel Sambuc 113*ebfedea0SLionel Sambuc22-Sep-97 114*ebfedea0SLionel Sambuc - Added a '-ss_cert file' to apps/ca.c. This will sign selfsigned 115*ebfedea0SLionel Sambuc certificates. 116*ebfedea0SLionel Sambuc - Bug in crypto/evp/encode.c where by decoding of 65 base64 117*ebfedea0SLionel Sambuc encoded lines, one line at a time (via a memory BIO) would report 118*ebfedea0SLionel Sambuc EOF after the first line was decoded. 119*ebfedea0SLionel Sambuc - Fix in X509_find_by_issuer_and_serial() from 120*ebfedea0SLionel Sambuc Dr Stephen Henson <shenson@bigfoot.com> 121*ebfedea0SLionel Sambuc 122*ebfedea0SLionel Sambuc19-Sep-97 123*ebfedea0SLionel Sambuc - NO_FP_API and NO_STDIO added. 124*ebfedea0SLionel Sambuc - Put in sh config command. It auto runs Configure with the correct 125*ebfedea0SLionel Sambuc parameters. 126*ebfedea0SLionel Sambuc 127*ebfedea0SLionel Sambuc18-Sep-97 128*ebfedea0SLionel Sambuc - Fix x509.c so if a DSA cert has different parameters to its parent, 129*ebfedea0SLionel Sambuc they are left in place. Not tested yet. 130*ebfedea0SLionel Sambuc 131*ebfedea0SLionel Sambuc16-Sep-97 132*ebfedea0SLionel Sambuc - ssl_create_cipher_list() had some bugs, fixes from 133*ebfedea0SLionel Sambuc Patrick Eisenacher <eisenach@stud.uni-frankfurt.de> 134*ebfedea0SLionel Sambuc - Fixed a bug in the Base64 BIO, where it would return 1 instead 135*ebfedea0SLionel Sambuc of -1 when end of input was encountered but should retry. 136*ebfedea0SLionel Sambuc Basically a Base64/Memory BIO interaction problem. 137*ebfedea0SLionel Sambuc - Added a HMAC set of functions in preporarion for TLS work. 138*ebfedea0SLionel Sambuc 139*ebfedea0SLionel Sambuc15-Sep-97 140*ebfedea0SLionel Sambuc - Top level makefile tweak - Cameron Simpson <cs@zip.com.au> 141*ebfedea0SLionel Sambuc - Prime generation spead up %25 (512 bit prime, pentium pro linux) 142*ebfedea0SLionel Sambuc by using montgomery multiplication in the prime number test. 143*ebfedea0SLionel Sambuc 144*ebfedea0SLionel Sambuc11-Sep-97 145*ebfedea0SLionel Sambuc - Ugly bug in ssl3_write_bytes(). Basically if application land 146*ebfedea0SLionel Sambuc does a SSL_write(ssl,buf,len) where len > 16k, the SSLv3 write code 147*ebfedea0SLionel Sambuc did not check the size and tried to copy the entire buffer. 148*ebfedea0SLionel Sambuc This would tend to cause memory overwrites since SSLv3 has 149*ebfedea0SLionel Sambuc a maximum packet size of 16k. If your program uses 150*ebfedea0SLionel Sambuc buffers <= 16k, you would probably never see this problem. 151*ebfedea0SLionel Sambuc - Fixed a few errors that were cause by malloc() not returning 152*ebfedea0SLionel Sambuc 0 initialised memory.. 153*ebfedea0SLionel Sambuc - SSL_OP_NETSCAPE_CA_DN_BUG was being switched on when using 154*ebfedea0SLionel Sambuc SSL_CTX_set_options(ssl_ctx,SSL_OP_ALL); which was a bad thing 155*ebfedea0SLionel Sambuc since this flags stops SSLeay being able to handle client 156*ebfedea0SLionel Sambuc cert requests correctly. 157*ebfedea0SLionel Sambuc 158*ebfedea0SLionel Sambuc08-Sep-97 159*ebfedea0SLionel Sambuc - SSL_SESS_CACHE_NO_INTERNAL_LOOKUP option added. When switched 160*ebfedea0SLionel Sambuc on, the SSL server routines will not use a SSL_SESSION that is 161*ebfedea0SLionel Sambuc held in it's cache. This in intended to be used with the session-id 162*ebfedea0SLionel Sambuc callbacks so that while the session-ids are still stored in the 163*ebfedea0SLionel Sambuc cache, the decision to use them and how to look them up can be 164*ebfedea0SLionel Sambuc done by the callbacks. The are the 'new', 'get' and 'remove' 165*ebfedea0SLionel Sambuc callbacks. This can be used to determine the session-id 166*ebfedea0SLionel Sambuc to use depending on information like which port/host the connection 167*ebfedea0SLionel Sambuc is coming from. Since the are also SSL_SESSION_set_app_data() and 168*ebfedea0SLionel Sambuc SSL_SESSION_get_app_data() functions, the application can hold 169*ebfedea0SLionel Sambuc information against the session-id as well. 170*ebfedea0SLionel Sambuc 171*ebfedea0SLionel Sambuc03-Sep-97 172*ebfedea0SLionel Sambuc - Added lookup of CRLs to the by_dir method, 173*ebfedea0SLionel Sambuc X509_load_crl_file() also added. Basically it means you can 174*ebfedea0SLionel Sambuc lookup CRLs via the same system used to lookup certificates. 175*ebfedea0SLionel Sambuc - Changed things so that the X509_NAME structure can contain 176*ebfedea0SLionel Sambuc ASN.1 BIT_STRINGS which is required for the unique 177*ebfedea0SLionel Sambuc identifier OID. 178*ebfedea0SLionel Sambuc - Fixed some problems with the auto flushing of the session-id 179*ebfedea0SLionel Sambuc cache. It was not occuring on the server side. 180*ebfedea0SLionel Sambuc 181*ebfedea0SLionel Sambuc02-Sep-97 182*ebfedea0SLionel Sambuc - Added SSL_CTX_sess_cache_size(SSL_CTX *ctx,unsigned long size) 183*ebfedea0SLionel Sambuc which is the maximum number of entries allowed in the 184*ebfedea0SLionel Sambuc session-id cache. This is enforced with a simple FIFO list. 185*ebfedea0SLionel Sambuc The default size is 20*1024 entries which is rather large :-). 186*ebfedea0SLionel Sambuc The Timeout code is still always operating. 187*ebfedea0SLionel Sambuc 188*ebfedea0SLionel Sambuc01-Sep-97 189*ebfedea0SLionel Sambuc - Added an argument to all the 'generate private key/prime` 190*ebfedea0SLionel Sambuc callbacks. It is the last parameter so this should not 191*ebfedea0SLionel Sambuc break existing code but it is needed for C++. 192*ebfedea0SLionel Sambuc - Added the BIO_FLAGS_BASE64_NO_NL flag for the BIO_f_base64() 193*ebfedea0SLionel Sambuc BIO. This lets the BIO read and write base64 encoded data 194*ebfedea0SLionel Sambuc without inserting or looking for '\n' characters. The '-A' 195*ebfedea0SLionel Sambuc flag turns this on when using apps/enc.c. 196*ebfedea0SLionel Sambuc - RSA_NO_PADDING added to help BSAFE functionality. This is a 197*ebfedea0SLionel Sambuc very dangerous thing to use, since RSA private key 198*ebfedea0SLionel Sambuc operations without random padding bytes (as PKCS#1 adds) can 199*ebfedea0SLionel Sambuc be attacked such that the private key can be revealed. 200*ebfedea0SLionel Sambuc - ASN.1 bug and rc2-40-cbc and rc4-40 added by 201*ebfedea0SLionel Sambuc Dr Stephen Henson <shenson@bigfoot.com> 202*ebfedea0SLionel Sambuc 203*ebfedea0SLionel Sambuc31-Aug-97 (stuff added while I was away) 204*ebfedea0SLionel Sambuc - Linux pthreads by Tim Hudson (tjh@cryptsoft.com). 205*ebfedea0SLionel Sambuc - RSA_flags() added allowing bypass of pub/priv match check 206*ebfedea0SLionel Sambuc in ssl/ssl_rsa.c - Tim Hudson. 207*ebfedea0SLionel Sambuc - A few minor bugs. 208*ebfedea0SLionel Sambuc 209*ebfedea0SLionel SambucSSLeay 0.8.1 released. 210*ebfedea0SLionel Sambuc 211*ebfedea0SLionel Sambuc19-Jul-97 212*ebfedea0SLionel Sambuc - Server side initated dynamic renegotiation is broken. I will fix 213*ebfedea0SLionel Sambuc it when I get back from holidays. 214*ebfedea0SLionel Sambuc 215*ebfedea0SLionel Sambuc15-Jul-97 216*ebfedea0SLionel Sambuc - Quite a few small changes. 217*ebfedea0SLionel Sambuc - INVALID_SOCKET usage cleanups from Alex Kiernan <alex@hisoft.co.uk> 218*ebfedea0SLionel Sambuc 219*ebfedea0SLionel Sambuc09-Jul-97 220*ebfedea0SLionel Sambuc - Added 2 new values to the SSL info callback. 221*ebfedea0SLionel Sambuc SSL_CB_START which is passed when the SSL protocol is started 222*ebfedea0SLionel Sambuc and SSL_CB_DONE when it has finished sucsessfully. 223*ebfedea0SLionel Sambuc 224*ebfedea0SLionel Sambuc08-Jul-97 225*ebfedea0SLionel Sambuc - Fixed a few bugs problems in apps/req.c and crypto/asn1/x_pkey.c 226*ebfedea0SLionel Sambuc that related to DSA public/private keys. 227*ebfedea0SLionel Sambuc - Added all the relevent PEM and normal IO functions to support 228*ebfedea0SLionel Sambuc reading and writing RSAPublic keys. 229*ebfedea0SLionel Sambuc - Changed makefiles to use ${AR} instead of 'ar r' 230*ebfedea0SLionel Sambuc 231*ebfedea0SLionel Sambuc07-Jul-97 232*ebfedea0SLionel Sambuc - Error in ERR_remove_state() that would leave a dangling reference 233*ebfedea0SLionel Sambuc to a free()ed location - thanks to Alex Kiernan <alex@hisoft.co.uk> 234*ebfedea0SLionel Sambuc - s_client now prints the X509_NAMEs passed from the server 235*ebfedea0SLionel Sambuc when requesting a client cert. 236*ebfedea0SLionel Sambuc - Added a ssl->type, which is one of SSL_ST_CONNECT or 237*ebfedea0SLionel Sambuc SSL_ST_ACCEPT. I had to add it so I could tell if I was 238*ebfedea0SLionel Sambuc a connect or an accept after the handshake had finished. 239*ebfedea0SLionel Sambuc - SSL_get_client_CA_list(SSL *s) now returns the CA names 240*ebfedea0SLionel Sambuc passed by the server if called by a client side SSL. 241*ebfedea0SLionel Sambuc 242*ebfedea0SLionel Sambuc05-Jul-97 243*ebfedea0SLionel Sambuc - Bug in X509_NAME_get_text_by_OBJ(), looking starting at index 244*ebfedea0SLionel Sambuc 0, not -1 :-( Fix from Tim Hudson (tjh@cryptsoft.com). 245*ebfedea0SLionel Sambuc 246*ebfedea0SLionel Sambuc04-Jul-97 247*ebfedea0SLionel Sambuc - Fixed some things in X509_NAME_add_entry(), thanks to 248*ebfedea0SLionel Sambuc Matthew Donald <matthew@world.net>. 249*ebfedea0SLionel Sambuc - I had a look at the cipher section and though that it was a 250*ebfedea0SLionel Sambuc bit confused, so I've changed it. 251*ebfedea0SLionel Sambuc - I was not setting up the RC4-64-MD5 cipher correctly. It is 252*ebfedea0SLionel Sambuc a MS special that appears in exported MS Money. 253*ebfedea0SLionel Sambuc - Error in all my DH ciphers. Section 7.6.7.3 of the SSLv3 254*ebfedea0SLionel Sambuc spec. I was missing the two byte length header for the 255*ebfedea0SLionel Sambuc ClientDiffieHellmanPublic value. This is a packet sent from 256*ebfedea0SLionel Sambuc the client to the server. The SSL_OP_SSLEAY_080_CLIENT_DH_BUG 257*ebfedea0SLionel Sambuc option will enable SSLeay server side SSLv3 accept either 258*ebfedea0SLionel Sambuc the correct or my 080 packet format. 259*ebfedea0SLionel Sambuc - Fixed a few typos in crypto/pem.org. 260*ebfedea0SLionel Sambuc 261*ebfedea0SLionel Sambuc02-Jul-97 262*ebfedea0SLionel Sambuc - Alias mapping for EVP_get_(digest|cipher)byname is now 263*ebfedea0SLionel Sambuc performed before a lookup for actual cipher. This means 264*ebfedea0SLionel Sambuc that an alias can be used to 're-direct' a cipher or a 265*ebfedea0SLionel Sambuc digest. 266*ebfedea0SLionel Sambuc - ASN1_read_bio() had a bug that only showed up when using a 267*ebfedea0SLionel Sambuc memory BIO. When EOF is reached in the memory BIO, it is 268*ebfedea0SLionel Sambuc reported as a -1 with BIO_should_retry() set to true. 269*ebfedea0SLionel Sambuc 270*ebfedea0SLionel Sambuc01-Jul-97 271*ebfedea0SLionel Sambuc - Fixed an error in X509_verify_cert() caused by my 272*ebfedea0SLionel Sambuc miss-understanding how 'do { contine } while(0);' works. 273*ebfedea0SLionel Sambuc Thanks to Emil Sit <sit@mit.edu> for educating me :-) 274*ebfedea0SLionel Sambuc 275*ebfedea0SLionel Sambuc30-Jun-97 276*ebfedea0SLionel Sambuc - Base64 decoding error. If the last data line did not end with 277*ebfedea0SLionel Sambuc a '=', sometimes extra data would be returned. 278*ebfedea0SLionel Sambuc - Another 'cut and paste' bug in x509.c related to setting up the 279*ebfedea0SLionel Sambuc STDout BIO. 280*ebfedea0SLionel Sambuc 281*ebfedea0SLionel Sambuc27-Jun-97 282*ebfedea0SLionel Sambuc - apps/ciphers.c was not printing due to an editing error. 283*ebfedea0SLionel Sambuc - Alex Kiernan <alex@hisoft.co.uk> send in a nice fix for 284*ebfedea0SLionel Sambuc a library build error in util/mk1mf.pl 285*ebfedea0SLionel Sambuc 286*ebfedea0SLionel Sambuc26-Jun-97 287*ebfedea0SLionel Sambuc - Still did not have the auto 'experimental' code removal 288*ebfedea0SLionel Sambuc script correct. 289*ebfedea0SLionel Sambuc - A few header tweaks for Watcom 11.0 under Win32 from 290*ebfedea0SLionel Sambuc Rolf Lindemann <Lindemann@maz-hh.de> 291*ebfedea0SLionel Sambuc - 0 length OCTET_STRING bug in asn1_parse 292*ebfedea0SLionel Sambuc - A minor fix with an non-existent function in the MS .def files. 293*ebfedea0SLionel Sambuc - A few changes to the PKCS7 stuff. 294*ebfedea0SLionel Sambuc 295*ebfedea0SLionel Sambuc25-Jun-97 296*ebfedea0SLionel Sambuc SSLeay 0.8.0 finally it gets released. 297*ebfedea0SLionel Sambuc 298*ebfedea0SLionel Sambuc24-Jun-97 299*ebfedea0SLionel Sambuc Added a SSL_OP_EPHEMERAL_RSA option which causes all SSLv3 RSA keys to 300*ebfedea0SLionel Sambuc use a temporary RSA key. This is experimental and needs some more work. 301*ebfedea0SLionel Sambuc Fixed a few Win16 build problems. 302*ebfedea0SLionel Sambuc 303*ebfedea0SLionel Sambuc23-Jun-97 304*ebfedea0SLionel Sambuc SSLv3 bug. I was not doing the 'lookup' of the CERT structure 305*ebfedea0SLionel Sambuc correctly. I was taking the SSL->ctx->default_cert when I should 306*ebfedea0SLionel Sambuc have been using SSL->cert. The bug was in ssl/s3_srvr.c 307*ebfedea0SLionel Sambuc 308*ebfedea0SLionel Sambuc20-Jun-97 309*ebfedea0SLionel Sambuc X509_ATTRIBUTES were being encoded wrongly by apps/reg.c and the 310*ebfedea0SLionel Sambuc rest of the library. Even though I had the code required to do 311*ebfedea0SLionel Sambuc it correctly, apps/req.c was doing the wrong thing. I have fixed 312*ebfedea0SLionel Sambuc and tested everything. 313*ebfedea0SLionel Sambuc 314*ebfedea0SLionel Sambuc Missing a few #ifdef FIONBIO sections in crypto/bio/bss_acpt.c. 315*ebfedea0SLionel Sambuc 316*ebfedea0SLionel Sambuc19-Jun-97 317*ebfedea0SLionel Sambuc Fixed a bug in the SSLv2 server side first packet handling. When 318*ebfedea0SLionel Sambuc using the non-blocking test BIO, the ssl->s2->first_packet flag 319*ebfedea0SLionel Sambuc was being reset when a would-block failure occurred when reading 320*ebfedea0SLionel Sambuc the first 5 bytes of the first packet. This caused the checking 321*ebfedea0SLionel Sambuc logic to run at the wrong time and cause an error. 322*ebfedea0SLionel Sambuc 323*ebfedea0SLionel Sambuc Fixed a problem with specifying cipher. If RC4-MD5 were used, 324*ebfedea0SLionel Sambuc only the SSLv3 version would be picked up. Now this will pick 325*ebfedea0SLionel Sambuc up both SSLv2 and SSLv3 versions. This required changing the 326*ebfedea0SLionel Sambuc SSL_CIPHER->mask values so that they only mask the ciphers, 327*ebfedea0SLionel Sambuc digests, authentication, export type and key-exchange algorithms. 328*ebfedea0SLionel Sambuc 329*ebfedea0SLionel Sambuc I found that when a SSLv23 session is established, a reused 330*ebfedea0SLionel Sambuc session, of type SSLv3 was attempting to write the SSLv2 331*ebfedea0SLionel Sambuc ciphers, which were invalid. The SSL_METHOD->put_cipher_by_char 332*ebfedea0SLionel Sambuc method has been modified so it will only write out cipher which 333*ebfedea0SLionel Sambuc that method knows about. 334*ebfedea0SLionel Sambuc 335*ebfedea0SLionel Sambuc 336*ebfedea0SLionel Sambuc Changes between 0.8.0 and 0.8.1 337*ebfedea0SLionel Sambuc 338*ebfedea0SLionel Sambuc *) Mostly bug fixes. 339*ebfedea0SLionel Sambuc There is an Ephemeral DH cipher problem which is fixed. 340*ebfedea0SLionel Sambuc 341*ebfedea0SLionel Sambuc SSLeay 0.8.0 342*ebfedea0SLionel Sambuc 343*ebfedea0SLionel SambucThis version of SSLeay has quite a lot of things different from the 344*ebfedea0SLionel Sambucprevious version. 345*ebfedea0SLionel Sambuc 346*ebfedea0SLionel SambucBasically check all callback parameters, I will be producing documentation 347*ebfedea0SLionel Sambucabout how to use things in th future. Currently I'm just getting 080 out 348*ebfedea0SLionel Sambucthe door. Please not that there are several ways to do everything, and 349*ebfedea0SLionel Sambucmost of the applications in the apps directory are hybrids, some using old 350*ebfedea0SLionel Sambucmethods and some using new methods. 351*ebfedea0SLionel Sambuc 352*ebfedea0SLionel SambucHave a look in demos/bio for some very simple programs and 353*ebfedea0SLionel Sambucapps/s_client.c and apps/s_server.c for some more advanced versions. 354*ebfedea0SLionel SambucNotes are definitly needed but they are a week or so away. 355*ebfedea0SLionel Sambuc 356*ebfedea0SLionel SambucAnyway, some quick nots from Tim Hudson (tjh@cryptsoft.com) 357*ebfedea0SLionel Sambuc--- 358*ebfedea0SLionel SambucQuick porting notes for moving from SSLeay-0.6.x to SSLeay-0.8.x to 359*ebfedea0SLionel Sambucget those people that want to move to using the new code base off to 360*ebfedea0SLionel Sambuca quick start. 361*ebfedea0SLionel Sambuc 362*ebfedea0SLionel SambucNote that Eric has tidied up a lot of the areas of the API that were 363*ebfedea0SLionel Sambucless than desirable and renamed quite a few things (as he had to break 364*ebfedea0SLionel Sambucthe API in lots of places anyrate). There are a whole pile of additional 365*ebfedea0SLionel Sambucfunctions for making dealing with (and creating) certificates a lot 366*ebfedea0SLionel Sambuccleaner. 367*ebfedea0SLionel Sambuc 368*ebfedea0SLionel Sambuc01-Jul-97 369*ebfedea0SLionel SambucTim Hudson 370*ebfedea0SLionel Sambuctjh@cryptsoft.com 371*ebfedea0SLionel Sambuc 372*ebfedea0SLionel Sambuc---8<--- 373*ebfedea0SLionel Sambuc 374*ebfedea0SLionel SambucTo maintain code that uses both SSLeay-0.6.x and SSLeay-0.8.x you could 375*ebfedea0SLionel Sambucuse something like the following (assuming you #include "crypto.h" which 376*ebfedea0SLionel Sambucis something that you really should be doing). 377*ebfedea0SLionel Sambuc 378*ebfedea0SLionel Sambuc#if SSLEAY_VERSION_NUMBER >= 0x0800 379*ebfedea0SLionel Sambuc#define SSLEAY8 380*ebfedea0SLionel Sambuc#endif 381*ebfedea0SLionel Sambuc 382*ebfedea0SLionel Sambucbuffer.h -> splits into buffer.h and bio.h so you need to include bio.h 383*ebfedea0SLionel Sambuc too if you are working with BIO internal stuff (as distinct 384*ebfedea0SLionel Sambuc from simply using the interface in an opaque manner) 385*ebfedea0SLionel Sambuc 386*ebfedea0SLionel Sambuc#include "bio.h" - required along with "buffer.h" if you write 387*ebfedea0SLionel Sambuc your own BIO routines as the buffer and bio 388*ebfedea0SLionel Sambuc stuff that was intermixed has been separated 389*ebfedea0SLionel Sambuc out 390*ebfedea0SLionel Sambuc 391*ebfedea0SLionel Sambucenvelope.h -> evp.h (which should have been done ages ago) 392*ebfedea0SLionel Sambuc 393*ebfedea0SLionel SambucInitialisation ... don't forget these or you end up with code that 394*ebfedea0SLionel Sambucis missing the bits required to do useful things (like ciphers): 395*ebfedea0SLionel Sambuc 396*ebfedea0SLionel SambucSSLeay_add_ssl_algorithms() 397*ebfedea0SLionel Sambuc(probably also want SSL_load_error_strings() too but you should have 398*ebfedea0SLionel Sambuc already had that call in place) 399*ebfedea0SLionel Sambuc 400*ebfedea0SLionel SambucSSL_CTX_new() - requires an extra method parameter 401*ebfedea0SLionel Sambuc SSL_CTX_new(SSLv23_method()) 402*ebfedea0SLionel Sambuc SSL_CTX_new(SSLv2_method()) 403*ebfedea0SLionel Sambuc SSL_CTX_new(SSLv3_method()) 404*ebfedea0SLionel Sambuc 405*ebfedea0SLionel Sambuc OR to only have the server or the client code 406*ebfedea0SLionel Sambuc SSL_CTX_new(SSLv23_server_method()) 407*ebfedea0SLionel Sambuc SSL_CTX_new(SSLv2_server_method()) 408*ebfedea0SLionel Sambuc SSL_CTX_new(SSLv3_server_method()) 409*ebfedea0SLionel Sambuc or 410*ebfedea0SLionel Sambuc SSL_CTX_new(SSLv23_client_method()) 411*ebfedea0SLionel Sambuc SSL_CTX_new(SSLv2_client_method()) 412*ebfedea0SLionel Sambuc SSL_CTX_new(SSLv3_client_method()) 413*ebfedea0SLionel Sambuc 414*ebfedea0SLionel SambucSSL_set_default_verify_paths() ... renamed to the more appropriate 415*ebfedea0SLionel SambucSSL_CTX_set_default_verify_paths() 416*ebfedea0SLionel Sambuc 417*ebfedea0SLionel SambucIf you want to use client certificates then you have to add in a bit 418*ebfedea0SLionel Sambucof extra stuff in that a SSLv3 server sends a list of those CAs that 419*ebfedea0SLionel Sambucit will accept certificates from ... so you have to provide a list to 420*ebfedea0SLionel SambucSSLeay otherwise certain browsers will not send client certs. 421*ebfedea0SLionel Sambuc 422*ebfedea0SLionel SambucSSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(s_cert_file)); 423*ebfedea0SLionel Sambuc 424*ebfedea0SLionel Sambuc 425*ebfedea0SLionel SambucX509_NAME_oneline(X) -> X509_NAME_oneline(X,NULL,0) 426*ebfedea0SLionel Sambuc or provide a buffer and size to copy the 427*ebfedea0SLionel Sambuc result into 428*ebfedea0SLionel Sambuc 429*ebfedea0SLionel SambucX509_add_cert -> X509_STORE_add_cert (and you might want to read the 430*ebfedea0SLionel Sambuc notes on X509_NAME structure changes too) 431*ebfedea0SLionel Sambuc 432*ebfedea0SLionel Sambuc 433*ebfedea0SLionel SambucVERIFICATION CODE 434*ebfedea0SLionel Sambuc================= 435*ebfedea0SLionel Sambuc 436*ebfedea0SLionel SambucThe codes have all be renamed from VERIFY_ERR_* to X509_V_ERR_* to 437*ebfedea0SLionel Sambucmore accurately reflect things. 438*ebfedea0SLionel Sambuc 439*ebfedea0SLionel SambucThe verification callback args are now packaged differently so that 440*ebfedea0SLionel Sambucextra fields for verification can be added easily in future without 441*ebfedea0SLionel Sambuchaving to break things by adding extra parameters each release :-) 442*ebfedea0SLionel Sambuc 443*ebfedea0SLionel SambucX509_cert_verify_error_string -> X509_verify_cert_error_string 444*ebfedea0SLionel Sambuc 445*ebfedea0SLionel Sambuc 446*ebfedea0SLionel SambucBIO INTERNALS 447*ebfedea0SLionel Sambuc============= 448*ebfedea0SLionel Sambuc 449*ebfedea0SLionel SambucEric has fixed things so that extra flags can be introduced in 450*ebfedea0SLionel Sambucthe BIO layer in future without having to play with all the BIO 451*ebfedea0SLionel Sambucmodules by adding in some macros. 452*ebfedea0SLionel Sambuc 453*ebfedea0SLionel SambucThe ugly stuff using 454*ebfedea0SLionel Sambuc b->flags ~= (BIO_FLAGS_RW|BIO_FLAGS_SHOULD_RETRY) 455*ebfedea0SLionel Sambucbecomes 456*ebfedea0SLionel Sambuc BIO_clear_retry_flags(b) 457*ebfedea0SLionel Sambuc 458*ebfedea0SLionel Sambuc b->flags |= (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY) 459*ebfedea0SLionel Sambucbecomes 460*ebfedea0SLionel Sambuc BIO_set_retry_read(b) 461*ebfedea0SLionel Sambuc 462*ebfedea0SLionel SambucAlso ... BIO_get_retry_flags(b), BIO_set_flags(b) 463*ebfedea0SLionel Sambuc 464*ebfedea0SLionel Sambuc 465*ebfedea0SLionel Sambuc 466*ebfedea0SLionel SambucOTHER THINGS 467*ebfedea0SLionel Sambuc============ 468*ebfedea0SLionel Sambuc 469*ebfedea0SLionel SambucX509_NAME has been altered so that it isn't just a STACK ... the STACK 470*ebfedea0SLionel Sambucis now in the "entries" field ... and there are a pile of nice functions 471*ebfedea0SLionel Sambucfor getting at the details in a much cleaner manner. 472*ebfedea0SLionel Sambuc 473*ebfedea0SLionel SambucSSL_CTX has been altered ... "cert" is no longer a direct member of this 474*ebfedea0SLionel Sambucstructure ... things are now down under "cert_store" (see x509_vfy.h) and 475*ebfedea0SLionel Sambucthings are no longer in a CERTIFICATE_CTX but instead in a X509_STORE. 476*ebfedea0SLionel SambucIf your code "knows" about this level of detail then it will need some 477*ebfedea0SLionel Sambucsurgery. 478*ebfedea0SLionel Sambuc 479*ebfedea0SLionel SambucIf you depending on the incorrect spelling of a number of the error codes 480*ebfedea0SLionel Sambucthen you will have to change your code as these have been fixed. 481*ebfedea0SLionel Sambuc 482*ebfedea0SLionel SambucENV_CIPHER "type" got renamed to "nid" and as that is what it actually 483*ebfedea0SLionel Sambuchas been all along so this makes things clearer. 484*ebfedea0SLionel Sambucify_cert_error_string(ctx->error)); 485*ebfedea0SLionel Sambuc 486*ebfedea0SLionel SambucSSL_R_NO_CIPHER_WE_TRUST -> SSL_R_NO_CIPHER_LIST 487*ebfedea0SLionel Sambuc and SSL_R_REUSE_CIPHER_LIST_NOT_ZERO 488*ebfedea0SLionel Sambuc 489*ebfedea0SLionel Sambuc 490*ebfedea0SLionel Sambuc 491*ebfedea0SLionel Sambuc Changes between 0.7.x and 0.8.0 492*ebfedea0SLionel Sambuc 493*ebfedea0SLionel Sambuc *) There have been lots of changes, mostly the addition of SSLv3. 494*ebfedea0SLionel Sambuc There have been many additions from people and amongst 495*ebfedea0SLionel Sambuc others, C2Net has assisted greatly. 496*ebfedea0SLionel Sambuc 497*ebfedea0SLionel Sambuc Changes between 0.7.x and 0.7.x 498*ebfedea0SLionel Sambuc 499*ebfedea0SLionel Sambuc *) Internal development version only 500*ebfedea0SLionel Sambuc 501*ebfedea0SLionel SambucSSLeay 0.6.6 13-Jan-1997 502*ebfedea0SLionel Sambuc 503*ebfedea0SLionel SambucThe main additions are 504*ebfedea0SLionel Sambuc 505*ebfedea0SLionel Sambuc- assember for x86 DES improvments. 506*ebfedea0SLionel Sambuc From 191,000 per second on a pentium 100, I now get 281,000. The inner 507*ebfedea0SLionel Sambuc loop and the IP/FP modifications are from 508*ebfedea0SLionel Sambuc Svend Olaf Mikkelsen <svolaf@inet.uni-c.dk>. Many thanks for his 509*ebfedea0SLionel Sambuc contribution. 510*ebfedea0SLionel Sambuc- The 'DES macros' introduced in 0.6.5 now have 3 types. 511*ebfedea0SLionel Sambuc DES_PTR1, DES_PTR2 and 'normal'. As per before, des_opts reports which 512*ebfedea0SLionel Sambuc is best and there is a summery of mine in crypto/des/options.txt 513*ebfedea0SLionel Sambuc- A few bug fixes. 514*ebfedea0SLionel Sambuc- Added blowfish. It is not used by SSL but all the other stuff that 515*ebfedea0SLionel Sambuc deals with ciphers can use it in either ecb, cbc, cfb64 or ofb64 modes. 516*ebfedea0SLionel Sambuc There are 3 options for optimising Blowfish. BF_PTR, BF_PTR2 and 'normal'. 517*ebfedea0SLionel Sambuc BF_PTR2 is pentium/x86 specific. The correct option is setup in 518*ebfedea0SLionel Sambuc the 'Configure' script. 519*ebfedea0SLionel Sambuc- There is now a 'get client certificate' callback which can be 520*ebfedea0SLionel Sambuc 'non-blocking'. If more details are required, let me know. It will 521*ebfedea0SLionel Sambuc documented more in SSLv3 when I finish it. 522*ebfedea0SLionel Sambuc- Bug fixes from 0.6.5 including the infamous 'ca' bug. The 'make test' 523*ebfedea0SLionel Sambuc now tests the ca program. 524*ebfedea0SLionel Sambuc- Lots of little things modified and tweaked. 525*ebfedea0SLionel Sambuc 526*ebfedea0SLionel Sambuc SSLeay 0.6.5 527*ebfedea0SLionel Sambuc 528*ebfedea0SLionel SambucAfter quite some time (3 months), the new release. I have been very busy 529*ebfedea0SLionel Sambucfor the last few months and so this is mostly bug fixes and improvments. 530*ebfedea0SLionel Sambuc 531*ebfedea0SLionel SambucThe main additions are 532*ebfedea0SLionel Sambuc 533*ebfedea0SLionel Sambuc- assember for x86 DES. For all those gcc based systems, this is a big 534*ebfedea0SLionel Sambuc improvement. From 117,000 DES operation a second on a pentium 100, 535*ebfedea0SLionel Sambuc I now get 191,000. I have also reworked the C version so it 536*ebfedea0SLionel Sambuc now gives 148,000 DESs per second. 537*ebfedea0SLionel Sambuc- As mentioned above, the inner DES macros now have some more variant that 538*ebfedea0SLionel Sambuc sometimes help, sometimes hinder performance. There are now 3 options 539*ebfedea0SLionel Sambuc DES_PTR (ptr vs array lookup), DES_UNROLL (full vs partial loop unrolling) 540*ebfedea0SLionel Sambuc and DES_RISC (a more register intensive version of the inner macro). 541*ebfedea0SLionel Sambuc The crypto/des/des_opts.c program, when compiled and run, will give 542*ebfedea0SLionel Sambuc an indication of the correct options to use. 543*ebfedea0SLionel Sambuc- The BIO stuff has been improved. Read doc/bio.doc. There are now 544*ebfedea0SLionel Sambuc modules for encryption and base64 encoding and a BIO_printf() function. 545*ebfedea0SLionel Sambuc- The CA program will accept simple one line X509v3 extensions in the 546*ebfedea0SLionel Sambuc ssleay.cnf file. Have a look at the example. Currently this just 547*ebfedea0SLionel Sambuc puts the text into the certificate as an OCTET_STRING so currently 548*ebfedea0SLionel Sambuc the more advanced X509v3 data types are not handled but this is enough 549*ebfedea0SLionel Sambuc for the netscape extensions. 550*ebfedea0SLionel Sambuc- There is the start of a nicer higher level interface to the X509 551*ebfedea0SLionel Sambuc strucutre. 552*ebfedea0SLionel Sambuc- Quite a lot of bug fixes. 553*ebfedea0SLionel Sambuc- CRYPTO_malloc_init() (or CRYPTO_set_mem_functions()) can be used 554*ebfedea0SLionel Sambuc to define the malloc(), free() and realloc() routines to use 555*ebfedea0SLionel Sambuc (look in crypto/crypto.h). This is mostly needed for Windows NT/95 when 556*ebfedea0SLionel Sambuc using DLLs and mixing CRT libraries. 557*ebfedea0SLionel Sambuc 558*ebfedea0SLionel SambucIn general, read the 'VERSION' file for changes and be aware that some of 559*ebfedea0SLionel Sambucthe new stuff may not have been tested quite enough yet, so don't just plonk 560*ebfedea0SLionel Sambucin SSLeay 0.6.5 when 0.6.4 used to work and expect nothing to break. 561*ebfedea0SLionel Sambuc 562*ebfedea0SLionel SambucSSLeay 0.6.4 30/08/96 eay 563*ebfedea0SLionel Sambuc 564*ebfedea0SLionel SambucI've just finished some test builds on Windows NT, Windows 3.1, Solaris 2.3, 565*ebfedea0SLionel SambucSolaris 2.5, Linux, IRIX, HPUX 10 and everthing seems to work :-). 566*ebfedea0SLionel Sambuc 567*ebfedea0SLionel SambucThe main changes in this release 568*ebfedea0SLionel Sambuc 569*ebfedea0SLionel Sambuc- Thread safe. have a read of doc/threads.doc and play in the mt directory. 570*ebfedea0SLionel Sambuc For anyone using 0.6.3 with threads, I found 2 major errors so consider 571*ebfedea0SLionel Sambuc moving to 0.6.4. I have a test program that builds under NT and 572*ebfedea0SLionel Sambuc solaris. 573*ebfedea0SLionel Sambuc- The get session-id callback has changed. Have a read of doc/callback.doc. 574*ebfedea0SLionel Sambuc- The X509_cert_verify callback (the SSL_verify callback) now 575*ebfedea0SLionel Sambuc has another argument. Have a read of doc/callback.doc 576*ebfedea0SLionel Sambuc- 'ca -preserve', sign without re-ordering the DN. Not tested much. 577*ebfedea0SLionel Sambuc- VMS support. 578*ebfedea0SLionel Sambuc- Compile time memory leak detection can now be built into SSLeay. 579*ebfedea0SLionel Sambuc Read doc/memory.doc 580*ebfedea0SLionel Sambuc- CONF routines now understand '\', '\n', '\r' etc. What this means is that 581*ebfedea0SLionel Sambuc the SPKAC object mentioned in doc/ns-ca.doc can be on multiple lines. 582*ebfedea0SLionel Sambuc- 'ssleay ciphers' added, lists the default cipher list for SSLeay. 583*ebfedea0SLionel Sambuc- RC2 key setup is now compatable with Netscape. 584*ebfedea0SLionel Sambuc- Modifed server side of SSL implementation, big performance difference when 585*ebfedea0SLionel Sambuc using session-id reuse. 586*ebfedea0SLionel Sambuc 587*ebfedea0SLionel Sambuc0.6.3 588*ebfedea0SLionel Sambuc 589*ebfedea0SLionel SambucBug fixes and the addition of some nice stuff to the 'ca' program. 590*ebfedea0SLionel SambucHave a read of doc/ns-ca.doc for how hit has been modified so 591*ebfedea0SLionel Sambucit can be driven from a CGI script. The CGI script is not provided, 592*ebfedea0SLionel Sambucbut that is just being left as an excersize for the reader :-). 593*ebfedea0SLionel Sambuc 594*ebfedea0SLionel Sambuc0.6.2 595*ebfedea0SLionel Sambuc 596*ebfedea0SLionel SambucThis is most bug fixes and functionality improvements. 597*ebfedea0SLionel Sambuc 598*ebfedea0SLionel SambucAdditions are 599*ebfedea0SLionel Sambuc- More thread debugging patches, the thread stuff is still being 600*ebfedea0SLionel Sambuc tested, but for those keep to play with stuff, have a look in 601*ebfedea0SLionel Sambuc crypto/cryptlib.c. The application needs to define 1 (or optionaly 602*ebfedea0SLionel Sambuc a second) callback that is used to implement locking. Compiling 603*ebfedea0SLionel Sambuc with LOCK_DEBUG spits out lots of locking crud :-). 604*ebfedea0SLionel Sambuc This is what I'm currently working on. 605*ebfedea0SLionel Sambuc- SSL_CTX_set_default_passwd_cb() can be used to define the callback 606*ebfedea0SLionel Sambuc function used in the SSL*_file() functions used to load keys. I was 607*ebfedea0SLionel Sambuc always of the opinion that people should call 608*ebfedea0SLionel Sambuc PEM_read_RSAPrivateKey() and pass the callback they want to use, but 609*ebfedea0SLionel Sambuc it appears they just want to use the SSL_*_file() function() :-(. 610*ebfedea0SLionel Sambuc- 'enc' now has a -kfile so a key can be read from a file. This is 611*ebfedea0SLionel Sambuc mostly used so that the passwd does not appear when using 'ps', 612*ebfedea0SLionel Sambuc which appears imposible to stop under solaris. 613*ebfedea0SLionel Sambuc- X509v3 certificates now work correctly. I even have more examples 614*ebfedea0SLionel Sambuc in my tests :-). There is now a X509_EXTENSION type that is used in 615*ebfedea0SLionel Sambuc X509v3 certificates and CRLv2. 616*ebfedea0SLionel Sambuc- Fixed that signature type error :-( 617*ebfedea0SLionel Sambuc- Fixed quite a few potential memory leaks and problems when reusing 618*ebfedea0SLionel Sambuc X509, CRL and REQ structures. 619*ebfedea0SLionel Sambuc- EVP_set_pw_prompt() now sets the library wide default password 620*ebfedea0SLionel Sambuc prompt. 621*ebfedea0SLionel Sambuc- The 'pkcs7' command will now, given the -print_certs flag, output in 622*ebfedea0SLionel Sambuc pem format, all certificates and CRL contained within. This is more 623*ebfedea0SLionel Sambuc of a pre-emtive thing for the new verisign distribution method. I 624*ebfedea0SLionel Sambuc should also note, that this also gives and example in code, of how 625*ebfedea0SLionel Sambuc to do this :-), or for that matter, what is involved in going the 626*ebfedea0SLionel Sambuc other way (list of certs and crl -> pkcs7). 627*ebfedea0SLionel Sambuc- Added RSA's DESX to the DES library. It is also available via the 628*ebfedea0SLionel Sambuc EVP_desx_cbc() method and via 'enc desx'. 629*ebfedea0SLionel Sambuc 630*ebfedea0SLionel SambucSSLeay 0.6.1 631*ebfedea0SLionel Sambuc 632*ebfedea0SLionel SambucThe main functional changes since 0.6.0 are as follows 633*ebfedea0SLionel Sambuc- Bad news, the Microsoft 060 DLL's are not compatable, but the good news is 634*ebfedea0SLionel Sambuc that from now on, I'll keep the .def numbers the same so they will be. 635*ebfedea0SLionel Sambuc- RSA private key operations are about 2 times faster that 0.6.0 636*ebfedea0SLionel Sambuc- The SSL_CTX now has more fields so default values can be put against 637*ebfedea0SLionel Sambuc it. When an SSL structure is created, these default values are used 638*ebfedea0SLionel Sambuc but can be overwritten. There are defaults for cipher, certificate, 639*ebfedea0SLionel Sambuc private key, verify mode and callback. This means SSL session 640*ebfedea0SLionel Sambuc creation can now be 641*ebfedea0SLionel Sambuc ssl=SSL_new() 642*ebfedea0SLionel Sambuc SSL_set_fd(ssl,sock); 643*ebfedea0SLionel Sambuc SSL_accept(ssl) 644*ebfedea0SLionel Sambuc .... 645*ebfedea0SLionel Sambuc All the other uglyness with having to keep a global copy of the 646*ebfedea0SLionel Sambuc private key and certificate/verify mode in the server is now gone. 647*ebfedea0SLionel Sambuc- ssl/ssltest.c - one process talking SSL to its self for testing. 648*ebfedea0SLionel Sambuc- Storage of Session-id's can be controled via a session_cache_mode 649*ebfedea0SLionel Sambuc flag. There is also now an automatic default flushing of 650*ebfedea0SLionel Sambuc old session-id's. 651*ebfedea0SLionel Sambuc- The X509_cert_verify() function now has another parameter, this 652*ebfedea0SLionel Sambuc should not effect most people but it now means that the reason for 653*ebfedea0SLionel Sambuc the failure to verify is now available via SSL_get_verify_result(ssl). 654*ebfedea0SLionel Sambuc You don't have to use a global variable. 655*ebfedea0SLionel Sambuc- SSL_get_app_data() and SSL_set_app_data() can be used to keep some 656*ebfedea0SLionel Sambuc application data against the SSL structure. It is upto the application 657*ebfedea0SLionel Sambuc to free the data. I don't use it, but it is available. 658*ebfedea0SLionel Sambuc- SSL_CTX_set_cert_verify_callback() can be used to specify a 659*ebfedea0SLionel Sambuc verify callback function that completly replaces my certificate 660*ebfedea0SLionel Sambuc verification code. Xcert should be able to use this :-). 661*ebfedea0SLionel Sambuc The callback is of the form int app_verify_callback(arg,ssl,cert). 662*ebfedea0SLionel Sambuc This needs to be documented more. 663*ebfedea0SLionel Sambuc- I have started playing with shared library builds, have a look in 664*ebfedea0SLionel Sambuc the shlib directory. It is very simple. If you need a numbered 665*ebfedea0SLionel Sambuc list of functions, have a look at misc/crypto.num and misc/ssl.num. 666*ebfedea0SLionel Sambuc- There is some stuff to do locking to make the library thread safe. 667*ebfedea0SLionel Sambuc I have only started this stuff and have not finished. If anyone is 668*ebfedea0SLionel Sambuc keen to do so, please send me the patches when finished. 669*ebfedea0SLionel Sambuc 670*ebfedea0SLionel SambucSo I have finally made most of the additions to the SSL interface that 671*ebfedea0SLionel SambucI thought were needed. 672*ebfedea0SLionel Sambuc 673*ebfedea0SLionel SambucThere will probably be a pause before I make any non-bug/documentation 674*ebfedea0SLionel Sambucrelated changes to SSLeay since I'm feeling like a bit of a break. 675*ebfedea0SLionel Sambuc 676*ebfedea0SLionel Sambuceric - 12 Jul 1996 677*ebfedea0SLionel SambucI saw recently a comment by some-one that we now seem to be entering 678*ebfedea0SLionel Sambucthe age of perpetual Beta software. 679*ebfedea0SLionel SambucPioneered by packages like linux but refined to an art form by 680*ebfedea0SLionel Sambucnetscape. 681*ebfedea0SLionel Sambuc 682*ebfedea0SLionel SambucI too wish to join this trend with the anouncement of SSLeay 0.6.0 :-). 683*ebfedea0SLionel Sambuc 684*ebfedea0SLionel SambucThere are quite a large number of sections that are 'works in 685*ebfedea0SLionel Sambucprogress' in this package. I will also list the major changes and 686*ebfedea0SLionel Sambucwhat files you should read. 687*ebfedea0SLionel Sambuc 688*ebfedea0SLionel SambucBIO - this is the new IO structure being used everywhere in SSLeay. I 689*ebfedea0SLionel Sambucstarted out developing this because of microsoft, I wanted a mechanism 690*ebfedea0SLionel Sambucto callback to the application for all IO, so Windows 3.1 DLL 691*ebfedea0SLionel Sambucperversion could be hidden from me and the 15 different ways to write 692*ebfedea0SLionel Sambucto a file under NT would also not be dictated by me at library build 693*ebfedea0SLionel Sambuctime. What the 'package' is is an API for a data structure containing 694*ebfedea0SLionel Sambucfunctions. IO interfaces can be written to conform to the 695*ebfedea0SLionel Sambucspecification. This in not intended to hide the underlying data type 696*ebfedea0SLionel Sambucfrom the application, but to hide it from SSLeay :-). 697*ebfedea0SLionel SambucI have only really finished testing the FILE * and socket/fd modules. 698*ebfedea0SLionel SambucThere are also 'filter' BIO's. Currently I have only implemented 699*ebfedea0SLionel Sambucmessage digests, and it is in use in the dgst application. This 700*ebfedea0SLionel Sambucfunctionality will allow base64/encrypto/buffering modules to be 701*ebfedea0SLionel Sambuc'push' into a BIO without it affecting the semantics. I'm also 702*ebfedea0SLionel Sambucworking on an SSL BIO which will hide the SSL_accept()/SLL_connet() 703*ebfedea0SLionel Sambucfrom an event loop which uses the interface. 704*ebfedea0SLionel SambucIt is also possible to 'attach' callbacks to a BIO so they get called 705*ebfedea0SLionel Sambucbefore and after each operation, alowing extensive debug output 706*ebfedea0SLionel Sambucto be generated (try running dgst with -d). 707*ebfedea0SLionel Sambuc 708*ebfedea0SLionel SambucUnfortunaly in the conversion from 0.5.x to 0.6.0, quite a few 709*ebfedea0SLionel Sambucfunctions that used to take FILE *, now take BIO *. 710*ebfedea0SLionel SambucThe wrappers are easy to write 711*ebfedea0SLionel Sambuc 712*ebfedea0SLionel Sambucfunction_fp(fp,x) 713*ebfedea0SLionel SambucFILE *fp; 714*ebfedea0SLionel Sambuc { 715*ebfedea0SLionel Sambuc BIO *b; 716*ebfedea0SLionel Sambuc int ret; 717*ebfedea0SLionel Sambuc 718*ebfedea0SLionel Sambuc if ((b=BIO_new(BIO_s_file())) == NULL) error..... 719*ebfedea0SLionel Sambuc BIO_set_fp(b,fp,BIO_NOCLOSE); 720*ebfedea0SLionel Sambuc ret=function_bio(b,x); 721*ebfedea0SLionel Sambuc BIO_free(b); 722*ebfedea0SLionel Sambuc return(ret); 723*ebfedea0SLionel Sambuc } 724*ebfedea0SLionel SambucRemember, there are no functions that take FILE * in SSLeay when 725*ebfedea0SLionel Sambuccompiled for Windows 3.1 DLL's. 726*ebfedea0SLionel Sambuc 727*ebfedea0SLionel Sambuc-- 728*ebfedea0SLionel SambucI have added a general EVP_PKEY type that can hold a public/private 729*ebfedea0SLionel Sambuckey. This is now what is used by the EVP_ functions and is passed 730*ebfedea0SLionel Sambucaround internally. I still have not done the PKCS#8 stuff, but 731*ebfedea0SLionel SambucX509_PKEY is defined and waiting :-) 732*ebfedea0SLionel Sambuc 733*ebfedea0SLionel Sambuc-- 734*ebfedea0SLionel SambucFor a full function name listings, have a look at ms/crypt32.def and 735*ebfedea0SLionel Sambucms/ssl32.def. These are auto-generated but are complete. 736*ebfedea0SLionel SambucThings like ASN1_INTEGER_get() have been added and are in here if you 737*ebfedea0SLionel Sambuclook. I have renamed a few things, again, have a look through the 738*ebfedea0SLionel Sambucfunction list and you will probably find what you are after. I intend 739*ebfedea0SLionel Sambucto at least put a one line descrition for each one..... 740*ebfedea0SLionel Sambuc 741*ebfedea0SLionel Sambuc-- 742*ebfedea0SLionel SambucMicrosoft - thats what this release is about, read the MICROSOFT file. 743*ebfedea0SLionel Sambuc 744*ebfedea0SLionel Sambuc-- 745*ebfedea0SLionel SambucMulti-threading support. I have started hunting through the code and 746*ebfedea0SLionel Sambucflaging where things need to be done. In a state of work but high on 747*ebfedea0SLionel Sambucthe list. 748*ebfedea0SLionel Sambuc 749*ebfedea0SLionel Sambuc-- 750*ebfedea0SLionel SambucFor random numbers, edit e_os.h and set DEVRANDOM (it's near the top) 751*ebfedea0SLionel Sambucbe be you random data device, otherwise 'RFILE' in e_os.h 752*ebfedea0SLionel Sambucwill be used, in your home directory. It will be updated 753*ebfedea0SLionel Sambucperiodically. The environment variable RANDFILE will override this 754*ebfedea0SLionel Sambucchoice and read/write to that file instead. DEVRANDOM is used in 755*ebfedea0SLionel Sambucconjunction to the RFILE/RANDFILE. If you wish to 'seed' the random 756*ebfedea0SLionel Sambucnumber generator, pick on one of these files. 757*ebfedea0SLionel Sambuc 758*ebfedea0SLionel Sambuc-- 759*ebfedea0SLionel Sambuc 760*ebfedea0SLionel SambucThe list of things to read and do 761*ebfedea0SLionel Sambuc 762*ebfedea0SLionel Sambucdgst -d 763*ebfedea0SLionel Sambucs_client -state (this uses a callback placed in the SSL state loop and 764*ebfedea0SLionel Sambuc will be used else-where to help debug/monitor what 765*ebfedea0SLionel Sambuc is happening.) 766*ebfedea0SLionel Sambuc 767*ebfedea0SLionel Sambucdoc/why.doc 768*ebfedea0SLionel Sambucdoc/bio.doc <- hmmm, needs lots of work. 769*ebfedea0SLionel Sambucdoc/bss_file.doc <- one that is working :-) 770*ebfedea0SLionel Sambucdoc/session.doc <- it has changed 771*ebfedea0SLionel Sambucdoc/speed.doc 772*ebfedea0SLionel Sambuc also play with ssleay version -a. I have now added a SSLeay() 773*ebfedea0SLionel Sambuc function that returns a version number, eg 0600 for this release 774*ebfedea0SLionel Sambuc which is primarily to be used to check DLL version against the 775*ebfedea0SLionel Sambuc application. 776*ebfedea0SLionel Sambucutil/* Quite a few will not interest people, but some may, like 777*ebfedea0SLionel Sambuc mk1mf.pl, mkdef.pl, 778*ebfedea0SLionel Sambucutil/do_ms.sh 779*ebfedea0SLionel Sambuc 780*ebfedea0SLionel Sambuctry 781*ebfedea0SLionel Sambuccc -Iinclude -Icrypto -c crypto/crypto.c 782*ebfedea0SLionel Sambuccc -Iinclude -Issl -c ssl/ssl.c 783*ebfedea0SLionel SambucYou have just built the SSLeay libraries as 2 object files :-) 784*ebfedea0SLionel Sambuc 785*ebfedea0SLionel SambucHave a general rummage around in the bin stall directory and look at 786*ebfedea0SLionel Sambucwhat is in there, like CA.sh and c_rehash 787*ebfedea0SLionel Sambuc 788*ebfedea0SLionel SambucThere are lots more things but it is 12:30am on a Friday night and I'm 789*ebfedea0SLionel Sambucheading home :-). 790*ebfedea0SLionel Sambuc 791*ebfedea0SLionel Sambuceric 22-Jun-1996 792*ebfedea0SLionel SambucThis version has quite a few major bug fixes and improvements. It DOES NOT 793*ebfedea0SLionel Sambucdo SSLv3 yet. 794*ebfedea0SLionel Sambuc 795*ebfedea0SLionel SambucThe main things changed 796*ebfedea0SLionel Sambuc- A Few days ago I added the s_mult application to ssleay which is 797*ebfedea0SLionel Sambuc a demo of an SSL server running in an event loop type thing. 798*ebfedea0SLionel Sambuc It supports non-blocking IO, I have finally gotten it right, SSL_accept() 799*ebfedea0SLionel Sambuc can operate in non-blocking IO mode, look at the code to see how :-). 800*ebfedea0SLionel Sambuc Have a read of doc/s_mult as well. This program leaks memory and 801*ebfedea0SLionel Sambuc file descriptors everywhere but I have not cleaned it up yet. 802*ebfedea0SLionel Sambuc This is a demo of how to do non-blocking IO. 803*ebfedea0SLionel Sambuc- The SSL session management has been 'worked over' and there is now 804*ebfedea0SLionel Sambuc quite an expansive set of functions to manipulate them. Have a read of 805*ebfedea0SLionel Sambuc doc/session.doc for some-things I quickly whipped up about how it now works. 806*ebfedea0SLionel Sambuc This assume you know the SSLv2 protocol :-) 807*ebfedea0SLionel Sambuc- I can now read/write the netscape certificate format, use the 808*ebfedea0SLionel Sambuc -inform/-outform 'net' options to the x509 command. I have not put support 809*ebfedea0SLionel Sambuc for this type in the other demo programs, but it would be easy to add. 810*ebfedea0SLionel Sambuc- asn1parse and 'enc' have been modified so that when reading base64 811*ebfedea0SLionel Sambuc encoded files (pem format), they do not require '-----BEGIN' header lines. 812*ebfedea0SLionel Sambuc The 'enc' program had a buffering bug fixed, it can be used as a general 813*ebfedea0SLionel Sambuc base64 -> binary -> base64 filter by doing 'enc -a -e' and 'enc -a -d' 814*ebfedea0SLionel Sambuc respecivly. Leaving out the '-a' flag in this case makes the 'enc' command 815*ebfedea0SLionel Sambuc into a form of 'cat'. 816*ebfedea0SLionel Sambuc- The 'x509' and 'req' programs have been fixed and modified a little so 817*ebfedea0SLionel Sambuc that they generate self-signed certificates correctly. The test 818*ebfedea0SLionel Sambuc script actually generates a 'CA' certificate and then 'signs' a 819*ebfedea0SLionel Sambuc 'user' certificate. Have a look at this shell script (test/sstest) 820*ebfedea0SLionel Sambuc to see how things work, it tests most possible combinations of what can 821*ebfedea0SLionel Sambuc be done. 822*ebfedea0SLionel Sambuc- The 'SSL_set_pref_cipher()' function has been 'fixed' and the prefered name 823*ebfedea0SLionel Sambuc of SSL_set_cipher_list() is now the correct API (stops confusion :-). 824*ebfedea0SLionel Sambuc If this function is used in the client, only the specified ciphers can 825*ebfedea0SLionel Sambuc be used, with preference given to the order the ciphers were listed. 826*ebfedea0SLionel Sambuc For the server, if this is used, only the specified ciphers will be used 827*ebfedea0SLionel Sambuc to accept connections. If this 'option' is not used, a default set of 828*ebfedea0SLionel Sambuc ciphers will be used. The SSL_CTX_set_cipher_list(SSL_CTX *ctx) sets this 829*ebfedea0SLionel Sambuc list for all ciphers started against the SSL_CTX. So the order is 830*ebfedea0SLionel Sambuc SSL cipher_list, if not present, SSL_CTX cipher list, if not 831*ebfedea0SLionel Sambuc present, then the library default. 832*ebfedea0SLionel Sambuc What this means is that normally ciphers like 833*ebfedea0SLionel Sambuc NULL-MD5 will never be used. The only way this cipher can be used 834*ebfedea0SLionel Sambuc for both ends to specify to use it. 835*ebfedea0SLionel Sambuc To enable or disable ciphers in the library at build time, modify the 836*ebfedea0SLionel Sambuc first field for the cipher in the ssl_ciphers array in ssl/ssl_lib.c. 837*ebfedea0SLionel Sambuc This file also contains the 'pref_cipher' list which is the default 838*ebfedea0SLionel Sambuc cipher preference order. 839*ebfedea0SLionel Sambuc- I'm not currently sure if the 'rsa -inform net' and the 'rsa -outform net' 840*ebfedea0SLionel Sambuc options work. They should, and they enable loading and writing the 841*ebfedea0SLionel Sambuc netscape rsa private key format. I will be re-working this section of 842*ebfedea0SLionel Sambuc SSLeay for the next version. What is currently in place is a quick and 843*ebfedea0SLionel Sambuc dirty hack. 844*ebfedea0SLionel Sambuc- I've re-written parts of the bignum library. This gives speedups 845*ebfedea0SLionel Sambuc for all platforms. I now provide assembler for use under Windows NT. 846*ebfedea0SLionel Sambuc I have not tested the Windows 3.1 assembler but it is quite simple code. 847*ebfedea0SLionel Sambuc This gives RSAprivate_key operation encryption times of 0.047s (512bit key) 848*ebfedea0SLionel Sambuc and 0.230s (1024bit key) on a pentium 100 which I consider reasonable. 849*ebfedea0SLionel Sambuc Basically the times available under linux/solaris x86 can be achieve under 850*ebfedea0SLionel Sambuc Windows NT. I still don't know how these times compare to RSA's BSAFE 851*ebfedea0SLionel Sambuc library but I have been emailing with people and with their help, I should 852*ebfedea0SLionel Sambuc be able to get my library's quite a bit faster still (more algorithm changes). 853*ebfedea0SLionel Sambuc The object file crypto/bn/asm/x86-32.obj should be used when linking 854*ebfedea0SLionel Sambuc under NT. 855*ebfedea0SLionel Sambuc- 'make makefile.one' in the top directory will generate a single makefile 856*ebfedea0SLionel Sambuc called 'makefile.one' This makefile contains no perl references and 857*ebfedea0SLionel Sambuc will build the SSLeay library into the 'tmp' and 'out' directories. 858*ebfedea0SLionel Sambuc util/mk1mf.pl >makefile.one is how this makefile is 859*ebfedea0SLionel Sambuc generated. The mk1mf.pl command take several option to generate the 860*ebfedea0SLionel Sambuc makefile for use with cc, gcc, Visual C++ and Borland C++. This is 861*ebfedea0SLionel Sambuc still under development. I have only build .lib's for NT and MSDOS 862*ebfedea0SLionel Sambuc I will be working on this more. I still need to play with the 863*ebfedea0SLionel Sambuc correct compiler setups for these compilers and add some more stuff but 864*ebfedea0SLionel Sambuc basically if you just want to compile the library 865*ebfedea0SLionel Sambuc on a 'non-unix' platform, this is a very very good file to start with :-). 866*ebfedea0SLionel Sambuc Have a look in the 'microsoft' directory for my current makefiles. 867*ebfedea0SLionel Sambuc I have not yet modified things to link with sockets under Windows NT. 868*ebfedea0SLionel Sambuc You guys should be able to do this since this is actually outside of the 869*ebfedea0SLionel Sambuc SSLeay scope :-). I will be doing it for myself soon. 870*ebfedea0SLionel Sambuc util/mk1mf.pl takes quite a few options including no-rc, rsaref and no-sock 871*ebfedea0SLionel Sambuc to build without RC2/RC4, to require RSAref for linking, and to 872*ebfedea0SLionel Sambuc build with no socket code. 873*ebfedea0SLionel Sambuc 874*ebfedea0SLionel Sambuc- Oh yes, the cipher that was reported to be compatible with RSA's RC2 cipher 875*ebfedea0SLionel Sambuc that was posted to sci.crypt has been added to the library and SSL. 876*ebfedea0SLionel Sambuc I take the view that if RC2 is going to be included in a standard, 877*ebfedea0SLionel Sambuc I'll include the cipher to make my package complete. 878*ebfedea0SLionel Sambuc There are NO_RC2, NO_RC4 and NO_IDEA macros to remove these ciphers 879*ebfedea0SLionel Sambuc at compile time. I have not tested this recently but it should all work 880*ebfedea0SLionel Sambuc and if you are in the USA and don't want RSA threatening to sue you, 881*ebfedea0SLionel Sambuc you could probably remove the RC4/RC2 code inside these sections. 882*ebfedea0SLionel Sambuc I may in the future include a perl script that does this code 883*ebfedea0SLionel Sambuc removal automatically for those in the USA :-). 884*ebfedea0SLionel Sambuc- I have removed all references to sed in the makefiles. So basically, 885*ebfedea0SLionel Sambuc the development environment requires perl and sh. The build environment 886*ebfedea0SLionel Sambuc does not (use the makefile.one makefile). 887*ebfedea0SLionel Sambuc The Configure script still requires perl, this will probably stay that way 888*ebfedea0SLionel Sambuc since I have perl for Windows NT :-). 889*ebfedea0SLionel Sambuc 890*ebfedea0SLionel Sambuceric (03-May-1996) 891*ebfedea0SLionel Sambuc 892*ebfedea0SLionel SambucPS Have a look in the VERSION file for more details on the changes and 893*ebfedea0SLionel Sambuc bug fixes. 894*ebfedea0SLionel SambucI have fixed a few bugs, added alpha and x86 assembler and generally cleaned 895*ebfedea0SLionel Sambucthings up. This version will be quite stable, mostly because I'm on 896*ebfedea0SLionel Sambucholidays until 10-March-1996. For any problems in the interum, send email 897*ebfedea0SLionel Sambucto Tim Hudson <tjh@mincom.oz.au>. 898*ebfedea0SLionel Sambuc 899*ebfedea0SLionel SambucSSLeay 0.5.0 900*ebfedea0SLionel Sambuc 901*ebfedea0SLionel Sambuc12-12-95 902*ebfedea0SLionel SambucThis is going out before it should really be released. 903*ebfedea0SLionel Sambuc 904*ebfedea0SLionel SambucI leave for 11 weeks holidays on the 22-12-95 and so I either sit on 905*ebfedea0SLionel Sambucthis for 11 weeks or get things out. It is still going to change a 906*ebfedea0SLionel Sambuclot in the next week so if you do grab this version, please test and 907*ebfedea0SLionel Sambucgive me feed back ASAP, inculuding questions on how to do things with 908*ebfedea0SLionel Sambucthe library. This will prompt me to write documentation so I don't 909*ebfedea0SLionel Sambuchave to answer the same question again :-). 910*ebfedea0SLionel Sambuc 911*ebfedea0SLionel SambucThis 'pre' release version is for people who are interested in the 912*ebfedea0SLionel Sambuclibrary. The applications will have to be changed to use 913*ebfedea0SLionel Sambucthe new version of the SSL interface. I intend to finish more 914*ebfedea0SLionel Sambucdocumentation before I leave but until then, look at the programs in 915*ebfedea0SLionel Sambucthe apps directory. As far as code goes, it is much much nicer than 916*ebfedea0SLionel Sambucthe old version. 917*ebfedea0SLionel Sambuc 918*ebfedea0SLionel SambucThe current library works, has no memory leaks (as far as I can tell) 919*ebfedea0SLionel Sambucand is far more bug free that 0.4.5d. There are no global variable of 920*ebfedea0SLionel Sambucconsequence (I believe) and I will produce some documentation that 921*ebfedea0SLionel Sambuctell where to look for those people that do want to do multi-threaded 922*ebfedea0SLionel Sambucstuff. 923*ebfedea0SLionel Sambuc 924*ebfedea0SLionel SambucThere should be more documentation. Have a look in the 925*ebfedea0SLionel Sambucdoc directory. I'll be adding more before I leave, it is a start 926*ebfedea0SLionel Sambucby mostly documents the crypto library. Tim Hudson will update 927*ebfedea0SLionel Sambucthe web page ASAP. The spelling and grammar are crap but 928*ebfedea0SLionel Sambucit is better than nothing :-) 929*ebfedea0SLionel Sambuc 930*ebfedea0SLionel SambucReasons to start playing with version 0.5.0 931*ebfedea0SLionel Sambuc- All the programs in the apps directory build into one ssleay binary. 932*ebfedea0SLionel Sambuc- There is a new version of the 'req' program that generates certificate 933*ebfedea0SLionel Sambuc requests, there is even documentation for this one :-) 934*ebfedea0SLionel Sambuc- There is a demo certification authorithy program. Currently it will 935*ebfedea0SLionel Sambuc look at the simple database and update it. It will generate CRL from 936*ebfedea0SLionel Sambuc the data base. You need to edit the database by hand to revoke a 937*ebfedea0SLionel Sambuc certificate, it is my aim to use perl5/Tk but I don't have time to do 938*ebfedea0SLionel Sambuc this right now. It will generate the certificates but the management 939*ebfedea0SLionel Sambuc scripts still need to be written. This is not a hard task. 940*ebfedea0SLionel Sambuc- Things have been cleaned up alot. 941*ebfedea0SLionel Sambuc- Have a look at the enc and dgst programs in the apps directory. 942*ebfedea0SLionel Sambuc- It supports v3 of x509 certiticates. 943*ebfedea0SLionel Sambuc 944*ebfedea0SLionel Sambuc 945*ebfedea0SLionel SambucMajor things missing. 946*ebfedea0SLionel Sambuc- I have been working on (and thinging about) the distributed x509 947*ebfedea0SLionel Sambuc hierachy problem. I have not had time to put my solution in place. 948*ebfedea0SLionel Sambuc It will have to wait until I come back. 949*ebfedea0SLionel Sambuc- I have not put in CRL checking in the certificate verification but 950*ebfedea0SLionel Sambuc it would not be hard to do. I was waiting until I could generate my 951*ebfedea0SLionel Sambuc own CRL (which has only been in the last week) and I don't have time 952*ebfedea0SLionel Sambuc to put it in correctly. 953*ebfedea0SLionel Sambuc- Montgomery multiplication need to be implemented. I know the 954*ebfedea0SLionel Sambuc algorithm, just ran out of time. 955*ebfedea0SLionel Sambuc- PKCS#7. I can load and write the DER version. I need to re-work 956*ebfedea0SLionel Sambuc things to support BER (if that means nothing, read the ASN1 spec :-). 957*ebfedea0SLionel Sambuc- Testing of the higher level digital envelope routines. I have not 958*ebfedea0SLionel Sambuc played with the *_seal() and *_open() type functions. They are 959*ebfedea0SLionel Sambuc written but need testing. The *_sign() and *_verify() functions are 960*ebfedea0SLionel Sambuc rock solid. 961*ebfedea0SLionel Sambuc- PEM. Doing this and PKCS#7 have been dependant on the distributed 962*ebfedea0SLionel Sambuc x509 heirachy problem. I started implementing my ideas, got 963*ebfedea0SLionel Sambuc distracted writing a CA program and then ran out of time. I provide 964*ebfedea0SLionel Sambuc the functionality of RSAref at least. 965*ebfedea0SLionel Sambuc- Re work the asm. code for the x86. I've changed by low level bignum 966*ebfedea0SLionel Sambuc interface again, so I really need to tweak the x86 stuff. gcc is 967*ebfedea0SLionel Sambuc good enough for the other boxes. 968*ebfedea0SLionel Sambuc 969