Re: [PATCH] argument passing to app_verify_callback
The one thing that makes me a bit more comfortable with the change to the prototype is the fact that in the current code and documentation, everywhere SSL_CTX_set_cert_verify_callback() is mentioned, it has a big warning next to it saying that it is currently broken and is supposed to actually take an argument. So those using it may have had a suspicion that this might be coming. The only argument against adding another callback that takes an argument is that there already are two (the app_verify_callback and the verify_callback set by SSL_CTX_set_verify), at least one of which is already not heavily used. The cost of minor code changes/ recompilation to change the prototype has to be weighed against yet another unused function pointer in a heavily used structure. The difficulty with backwards compatibility in the Sendmail case is that a lot of people may not want to upgrade it (and I don't know how long they take to rev a release), but might want to upgrade openssl under it. There could be an evil option involving ifdefing the old behavior to allow a backwards-compatible compilation during a transition period. --Diana Richard Levitte - VMS Whacker wrote: From: Bodo Moeller [EMAIL PROTECTED] moeller If we add the paramter list declaration for app_verify_callback to moeller ssl/ssl.h and ssl/ssl_lib.c (which I think we should do for type moeller safety), applications written for old releases will not compile moeller without modification if they use SSL_CTX_set_cert_verify_callback(). moeller But the only application that I know of that actually uses this moeller function is by myself, and I can accept this incompatibility. Considering how we have behaved so far, I'm not sure I see that as a problem in any case. Remember all the changes in the DES implementation? Remember the constification? I believe we have bigger changes crashing on the application authors than this particular beastie... Also, even when SSL_CTX_set_cert_verify_callback() *is* used, in how many places do you think you'll find it in a typical application? I'm guessing at just a few, and a patch would probably be really easy to deliver. About how many places it's used, I can count 3 so far: you, D.K. and sendmail. I don't think that's too much. This is relatively low-impact. __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
RE: [MiNT] M68020 bn_asm
Howard, I've been working on porting OpenSSL to the Palm and have most of it completed; and as such having 68K assembler versions is _extremely_ important. Otherwise, the implementation might very well be too slow to be usable on the Palm. So...keep up the good work! - Max On Tue, 19 Feb 2002, Howard Chu wrote: From the overwhelming lack of response I guess no one on this list cares about Motorola 68k implementations. Just a final note in case anyone is listening. The previous file I sent works fine, passes all the tests. I noticed that my use of roxl/roxr in the bn_add_words and bn_sub_words functions was a poor choice, so this version avoids those instructions. -- Howard Chu Chief Architect, Symas Corp. Director, Highland Sun http://www.symas.com http://highlandsun.com/hyc Symas: Premier OpenSource Development and Support -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Richard Zidlicky Sent: Tuesday, February 19, 2002 9:58 AM To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Subject: Re: [MiNT] M68020 bn_asm On Mon, Feb 18, 2002 at 11:43:56AM -0800, Howard Chu wrote: Here is a more thorough assembly implementation of bn_asm for Motorola 680x0 processors. On a 68030 the RSA/DSA test is over 4x faster than gcc -O3 code. I am releasing this version under the terms of the OpenSSL license. thanks, I will test it on linux-m68k as soon as my CPU will have a few spare cycles. One thing I have noted, you use the 64 bit variants of mul/div in many places. This will probbaly make the code much slower than gcc generated code on 68060 CPUs as they do not implemente this insns in hardware and need to emulate them in the OS. Bye Richard __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
RE: 0.9.7 approaching
I tested the Feb 18 OpenSSL_0_9_7-stable branch on Solaris 7 (using the SUNWspro C compiler), just to make sure none of the changes break support for CryptoSwift. Results were successful: It configures, builds, and when I build Apache 1.3.23 using this snapshot, I am able to successfully access my Web server, either configured to use the cswift engine or not, and when using the engine it correctly accesses the card and is accelerated relative to when I don't use the engine. Lynn Gazis Rainbow Technologies __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
[PATCH] crypto/objects/Makefile refers to perl
openssl-0.9.6c/crypto/objects/Makefile has two rules in which an attempt is made to execute perl instead of $(PERL) . begin patch- *** crypto/objects/Makefile.distMon Feb 18 12:31:32 2002 --- crypto/objects/Makefile Mon Feb 18 12:27:39 2002 *** *** 44,54 @touch lib obj_dat.h: obj_dat.pl obj_mac.h ! perl obj_dat.pl obj_mac.h obj_dat.h # objects.pl both reads and writes obj_mac.num obj_mac.h: objects.pl objects.txt obj_mac.num ! perl objects.pl objects.txt obj_mac.num obj_mac.h files: $(PERL) $(TOP)/util/files.pl Makefile.ssl $(TOP)/MINFO --- 44,54 @touch lib obj_dat.h: obj_dat.pl obj_mac.h ! $(PERL) obj_dat.pl obj_mac.h obj_dat.h # objects.pl both reads and writes obj_mac.num obj_mac.h: objects.pl objects.txt obj_mac.num ! $(PERL) objects.pl objects.txt obj_mac.num obj_mac.h files: $(PERL) $(TOP)/util/files.pl Makefile.ssl $(TOP)/MINFO end patch- -patrick. __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
smime segfault on redhat 7.2
Hello, I complied latest snaps (all snaps from 2002) on a Redhat 7.2 system. Make test finished succesfully. But on trying openssl smime -sign -encrypt command, it segfaults. The rest of commands (as far as I tested) are OK. Can you give me some advice? Alex __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Wrong OIDS for PKCS #9 gender and pseudonym?
According to PKCS #9 v2 gender should have the OID 1 3 6 1 5 5 7 9 3 and psuedonym should have the OID 1 2 840 113549 1 9 3. According to OpenSSL's objects.h gender has the OID 1 3 6 1 5 5 7 9 4 and pseudonym has the OID 1 3 6 1 5 5 7 9 3, however. Leonard __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
key file
Hi, The keyfile, representing an ecrypted private key, generated by openssl is ASN.1 type RSAPrivateKey (PKCS#1), ecrypted using DES-EDE3-CBC and then PEM encoded. Is that right ? Thanks, Imran. __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Fixes for 0.9.6-stable branch
Hi! Just a couple of quick niggles with the 0.9.6-stable branch: * The fix for crypto/tmdiff.c (ie. the diff between 1.9.2.1 1.9.2.2) needs to be merged into this branch as well. Missing #endif. * crypto/bio/bss_bio.c now checks SSIZE_MAX, and in the visual c++ limits.h this won't get defined unless one defines _POSIX_. Should this definition go into e_os.h or is it ok to simply insert it here prior to the inclusion of limits.h? Best regards, //oscar __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: 0.9.7 approaching
Are you in the US BTW if so can you resend you patch with a CC: to [EMAIL PROTECTED] Is that the preferred address now, instead of [EMAIL PROTECTED]? I've tried checking the bxa.doc.gov website, but it's aimed at commercial exporters instead of OSS exporters. __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: [PATCH] bad uid shortname
This was all actually changed intentionally a while back as there was a conflict between id-at-uniqueIdentifier and { 0 9 2342 19200300 100 1 1 } (henceforth simply reffered to as Userid.) The reason for the conflict is that both claimed the short name uid. Userid, having formally had the attribute type name uid assigned to it in RFC 2798 was given precedence over id-at-uniqueIdentifier, which to my knowledge doesn't have a defined attribute type name, and should thus be represented as 2.5.4.45. This might seem like nit-picking, but the central problem at hand is that the short name form is what gets used when constructing the string encoding of distinguished names, as specified in RFC 2253. And since the string UID should not, unless I've got it all wrong, translate either to or from any attribute type save Userid that short name got re-assigned. Hope that clears things up a bit. This did mess with backwards compatibility, granted, and I thought this was actually mentioned in CHANGES. Maybe it fell out during a branch or a merge? There's more information about this in the thread UID is usually RFC1274 user id, not X500 unique id from late November last year if you care to search the archives. Best regards, //oscar Dan Lanz wrote: The patch below fixes a bug in the objects list where the UID object shortname is incorrectly specified to be identical to its longname (uniqueIdentifier). This evidences itself, for example, when using OBJ_sn2nid() to convert the UID rdn of a dn (i.e., uid=test,o=myorg) to an object. The following two files were modified: crypto/objects/objects.txt crypto/objects/obj_dat.h This was fine in 0.9.6b, but is incorrect in 0.9.6c and 0.9.7. __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: RAND_poll hangs on WINNT 4.0
As came out in discussions on the openssl-users list, this problem appears to be restricted to a specific use case. When RAND_poll() is called from within the init routine of a DLL. The attempt to query the HKPD\Global key results in a series of function calls being made to various COM objects. However, this requires a forced call to CoInitializeEx. From microsoft's documentation: Because there is no way to control the order in which in-process servers are loaded or unloaded, it is not safe to call CoInitialize, CoInitializeEx, or CoUninitialize from the DllMain function. This implies that using Performance Data is not safe during DLL initialization. We have seen problems with use of Performance Data in the past on other Windows systems. It is a valuable tool for retrieving entropy. A reading of the warning text describing the use of DllMain follows: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/dll_8asu.asp Warning On attach, the body of your DLL entry-point function should perform only simple initialization tasks, such as setting up thread local storage (TLS), creating objects, and opening files. You must not call LoadLibrary in the entry-point function, because you may create dependency loops in the DLL load order. This can result in a DLL being used before the system has executed its initialization code. Similarly, you must not call the FreeLibrary function in the entry-point function on detach, because this can result in a DLL being used after the system has executed its termination code. Calling functions other than TLS, object-creation, and file functions may result in problems that are difficult to diagnose. For example, calling User, Shell, COM, RPC, and Windows Sockets functions (or any functions that call these functions) can cause access violation errors, because their DLLs call LoadLibrary to load other system components. While it is acceptable to create synchronization objects in DllMain, you should not perform synchronization in DllMain (or a function called by DllMain) because all calls to DllMain are serialized. Waiting on synchronization objects in DllMain can cause a deadlock. To provide more complex initialization, create an initialization routine for the DLL. You can require applications to call the initialization routine before calling any other routines in the DLL. Otherwise, you can have the initialization routine create a named mutex, and have each routine in the DLL call the initialization routine if the mutex does not exist. Since this precludes the use of almost all functions which could be used to collect entropy it seems fairly clear that the man page for RAND_poll() should be modified to note that it should not be called during DLL initialization. The recommendations described in the last paragraph describing the use of named mutex and DLL specific initialization function should be followed. - Jeffrey Altman We use a static initializer in our dynamic library to seed openssl's PRNG by calling RAND_screen on Windows. We've noticed curious behavior on WINNT 4.0 where RAND_poll hangs on the Windows registry function, RegQueryValueEx, when trying to extract performance behavior. There is a documented bug with the ANSI version of RegQueryValueEx (KB Q226371) and they suggest using the UNICODE version of it directly, yet it still hangs even with that version. For the time being, we removed the section where it polls the performance data entirely and that works. For the record, we're using OpenSSL 0.9.6c, WINNT 4.0 with MSVC++ 6. Thanks, Jerry Napoli [EMAIL PROTECTED] __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED] Jeffrey Altman * Sr.Software Designer C-Kermit 8.0 available now!!! The Kermit Project @ Columbia University includes Telnet, FTP and HTTP http://www.kermit-project.org/ secured with Kerberos, SRP, and [EMAIL PROTECTED]OpenSSL. Interfaces with OpenSSH __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: smime segfault on redhat 7.2
alexandru matei wrote: Hello, I complied latest snaps (all snaps from 2002) on a Redhat 7.2 system. Make test finished succesfully. But on trying openssl smime -sign -encrypt command, it segfaults. The rest of commands (as far as I tested) are OK. Can you give me some advice? I'll look into it. Do you mean separate openssl smime -sign and openssl smime -encrypt commands or openssl smime -sign -encrypt which isn't a valid command? Steve. -- Dr Stephen N. Henson. http://www.drh-consultancy.demon.co.uk/ Personal Email: [EMAIL PROTECTED] Senior crypto engineer, Gemplus: http://www.gemplus.com/ Core developer of the OpenSSL project: http://www.openssl.org/ Business Email: [EMAIL PROTECTED] PGP key: via homepage. __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: key file
Imran Badr wrote: Hi, The keyfile, representing an ecrypted private key, generated by openssl is ASN.1 type RSAPrivateKey (PKCS#1), ecrypted using DES-EDE3-CBC and then PEM encoded. Is that right ? It doesn't have to be triple DES encrypted. The traditional format involves adding some information in the PEM headers and deriving a key and IV from the password using a algorithm unique to OpenSSL. This is documented in detail in the 0.9.7 docs. This format should really be avoided for new applications because it is non standard. The preferred format is PKCS#8 and any of a variety of password based encryption algorithms including those of PKCS#5 (v1.5 and v2.0) and PKCS#12. Steve. -- Dr Stephen N. Henson. http://www.drh-consultancy.demon.co.uk/ Personal Email: [EMAIL PROTECTED] Senior crypto engineer, Gemplus: http://www.gemplus.com/ Core developer of the OpenSSL project: http://www.openssl.org/ Business Email: [EMAIL PROTECTED] PGP key: via homepage. __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
apps.h bug
apps .h needs a #include openssl/engine.h added. apps_startup() will fail in the NON-MONOLITHIC build for the snapshot of the 18th. in apps.h: #if defined(MONOLITH) !defined(OPENSSL_C) # define apps_startup() \ do_pipe_sig() # define apps_shutdown() #else # if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WIN16) || \ defined(OPENSSL_SYS_WIN32) #ifdef _O_BINARY # define apps_startup() \ do { _fmode=_O_BINARY; do_pipe_sig(); CRYPTO_malloc_init(); \ ERR_load_crypto_strings(); OpenSSL_add_all_algorithms(); \ ENGINE_load_builtin_engines(); setup_ui_method(); }#while(0) ENGINE_load_builtin_engines() and later, ENGINE_cleanup() fail to resolve. Regards, Andrew __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: Problem with RAND_poll() on Windows NT 4.0 Server
Guys, I've submitted bug report below about a month ago to [EMAIL PROTECTED] Since I see that only one of the fixes got into 0.9.7 (independently reported by other person), I thought I'd repeat to dev list just in case. cheers, alex. -Original Message- From: Alex Pankratov Sent: January 14, 2002 14:22 To: '[EMAIL PROTECTED]' Subject: Problem with RAND_poll() on Windows NT 4.0 Server If application is started as (win32_own_process) service on WinNT Server 4.0 SP 6 it may hang indefinitely in RAND_poll() during system startup. Problem occurs with OpenSSL releases between 0.9.6 and 0.9.6-c inclusively. Unfortunately, I dont have much time to trace the problem to its roots, but here is what helps to resolve it: 1. In RAND_poll() do not load (or use in any other way) netapi32.dll (change rand_win.c:216 to netapi = 0;). If left unchanged, it seems to cause some sort of deadlock in NDIS layer, preventing both openssl application and default system init sequence from proceeding. Once openssl application is killed, system instantly proceeds with initialization, launching whole bunch of network-related services (DHCP, DNS, IIS, etc). 2. In RAND_poll() disable code that queries (HKEY_PERFORMANCE_DATA, Global) registry entry (change rand_win.c:257 to if (0)). If enabled, this code leads to yet another hang. Here is a description of similar problem from comp.os.ms-windows.programmer.win32 news group: http://groups.google.com/groups?q=RegQueryValueEx+HKEY_PERFORMANCE_DATAstar t=20hl=engroup=comp.os.ms-windows.programmer.win32selm=6l1lv2%241mv%40new sstand.cit.cornell.edurnum=21 Tracing the flow with printf() shows that (273-283) 'while' loop gets executed 5 times prior to hanging in 6th ReqQueryValueEx() call. Buffer size at the moment of call is 49152. Also, the same loop incorrectly interprets return of realloc(), assuming that if it returns 0 then passed block gets automatically free()'d. This will leak memory, if realloc() fails to do its job on non-empty block. regards, alex. __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: Problem with RAND_poll() on Windows NT 4.0 Server
Alex: Where in your app are you calling RAND_poll()? RAND_poll() cannot be called from within DllMain() in a DLL. Is that how you are calling it? - Jeff Guys, I've submitted bug report below about a month ago to [EMAIL PROTECTED] Since I see that only one of the fixes got into 0.9.7 (independently reported by other person), I thought I'd repeat to dev list just in case. cheers, alex. -Original Message- From: Alex Pankratov Sent: January 14, 2002 14:22 To: '[EMAIL PROTECTED]' Subject: Problem with RAND_poll() on Windows NT 4.0 Server If application is started as (win32_own_process) service on WinNT Server 4.0 SP 6 it may hang indefinitely in RAND_poll() during system startup. Problem occurs with OpenSSL releases between 0.9.6 and 0.9.6-c inclusively. Unfortunately, I dont have much time to trace the problem to its roots, but here is what helps to resolve it: 1. In RAND_poll() do not load (or use in any other way) netapi32.dll (change rand_win.c:216 to netapi = 0;). If left unchanged, it seems to cause some sort of deadlock in NDIS layer, preventing both openssl application and default system init sequence from proceeding. Once openssl application is killed, system instantly proceeds with initialization, launching whole bunch of network-related services (DHCP, DNS, IIS, etc). 2. In RAND_poll() disable code that queries (HKEY_PERFORMANCE_DATA, Global) registry entry (change rand_win.c:257 to if (0)). If enabled, this code leads to yet another hang. Here is a description of similar problem from comp.os.ms-windows.programmer.win32 news group: http://groups.google.com/groups?q=RegQueryValueEx+HKEY_PERFORMANCE_DATAstar t=20hl=engroup=comp.os.ms-windows.programmer.win32selm=6l1lv2%241mv%40new sstand.cit.cornell.edurnum=21 Tracing the flow with printf() shows that (273-283) 'while' loop gets executed 5 times prior to hanging in 6th ReqQueryValueEx() call. Buffer size at the moment of call is 49152. Also, the same loop incorrectly interprets return of realloc(), assuming that if it returns 0 then passed block gets automatically free()'d. This will leak memory, if realloc() fails to do its job on non-empty block. regards, alex. __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED] Jeffrey Altman * Sr.Software Designer C-Kermit 8.0 available now!!! The Kermit Project @ Columbia University includes Telnet, FTP and HTTP http://www.kermit-project.org/ secured with Kerberos, SRP, and [EMAIL PROTECTED]OpenSSL. Interfaces with OpenSSH __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
req.c bug
line 475 NCONF_load bug exhibited in non-MONOLITH build Andrew (openssl-0.9.7-stable-SNAP-20020218) --- req.c.orig Sat Dec 1 18:03:26 2001 +++ req.c Fri Feb 22 15:01:30 2002 @@ -177,6 +177,7 @@ unsigned long chtype = MBSTRING_ASC; #ifndef MONOLITH MS_STATIC char config_name[256]; + long errline; #endif req_conf = NULL; @@ -472,7 +473,7 @@ } default_config_file=p; config=NCONF_new(NULL); - i=NCONF_load(config, p); + i=NCONF_load(config, p, errline); #endif if (template != NULL) __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: Subject: -lsocket missing for Solaris 2.6
On Thu, 21 Feb 2002, Jonsson Per-Arne S. wrote: Hello! I have problem with the syntax and where to add lsocket into the Makefile. What config target are you using? What does the EX_LIBS= line in Makefile say? -- Tim RiceMultitalents(707) 887-1469 [EMAIL PROTECTED] __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
RE: [MiNT] M68020 bn_asm
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Richard Zidlicky On Tue, Feb 19, 2002 at 03:43:12PM -0800, Howard Chu wrote: I just checked the 68060 user manual, you're right. That means the plain 68000 code is needed on the 68060. (What a crock...) not the wordsize mul/div, probably best option for 68060 is to use the 32x32=32 instructions with 32x16 bit data. Bye Richard __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED] Seems like I'm getting a lot of repeated emails from this list. But anyway, I don't see how using the 32x32=32 instructions can save any steps. If you use it with 32x16 data you are still going to get a 48 bit result and lose the upper 16 bits of that. You will still need a total of 3 multiplies to recover the lost bits and get the correct answer. -- Howard __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]