[[EMAIL PROTECTED] - Thu Jun  6 08:55:05 2002]:

> On Wed, Jun 05, 2002 at 03:10:58PM +0200, Lutz Jaenicke via RT wrote:
> >
> > [[EMAIL PROTECTED] - Wed Jun  5 14:48:52 2002]:
> >
> > > ck_ssl.c: In function k_tn_tls_negotiate':
> > > ck_ssl.c:3232: ID_uniqueIdentifier' undeclared (first use in this
> > > function)
> > > ck_ssl.c:3232: (Each undeclared identifier is reported only once
> > > ck_ssl.c:3232: for each function it appears in.)
> > > ck_ssl.c: In function k_ssl_incoming':
> > > ck_ssl.c:3529: ID_uniqueIdentifier' undeclared (first use in this
> > > function)
> > > *** Error code 1
> 
> Thank you for a reply.
> >
> > The problem is caused by inconsistent definitions for the OID
> values.
> > According to RFC2256, the OID 2.5.4.45 is assigned to
> > X500UniqueIdentifier. UniqueIdentifier was assigned to
> > pilotAttributeType.44 in RFC1274.
> > If you have a look into crypto/objects/objects.txt you will see,
> that
> > this was (still is) commented out. The reason is that
> UniqueIdentifier
> > was (incorrectly) used for 2.5.4.45...
> > In OpenSSL 0.9.7 I renamed the entry for 2.5.4.45 to fully comply
> with
> > RFC2256. Now UniqueIdentifier is missing, as I did not uncomment the
> > entry for RFC1274 (otherwise maybe nobody would have noted and only
> > later strange failures would have been reported).
> I see.
> 
> Let's discuss how to fix it!?
> 
> For instance, mod_ssl 2.8.8-1.3.24 use workaround:
> #ifndef NID_uniqueIdentifier
> #define NID_uniqueIdentifier             102
> #endif

I don't like this option. As it is now, the new (correct)
NID_uniqueIdentifier is not yet enabled. Once it is, this mechanism will
fail.

 
> ######
> ######
> ######
> 
> Also, markus@ created this temp patch:
> +@@ -102,6 +104,13 @@
> + !ERROR This module requires OpenSSL 0.9.5a or higher
> + #endif /* OPENSSL_VERSION_NUMBER */
> + #endif /* SSLDLL */
> ++
> ++#if OPENSSL_VERSION_NUMBER < 0x00907000L
> ++#else
> ++      #ifndef NID_UniqueIdentifier
> ++      #define NID_uniqueIdentifier NID_x500UniqueIdentifier
> ++      #endif
> ++#endif
> +
> + static int auth_ssl_valid = 0;
> + static char *auth_ssl_name = 0;    /* this holds the oneline name */

That looks better, but not finally good enough. I think that the correct
solution would be something like:
* Replace all occurences of NID_UniqueIdentifier with 
  ID_X500UniqueIdentifier.
* Then:
#if OPENSSL_VERSION_NUMBER < 0x00907000L
#define NID_X500UniqueIdentifier NID_UniqueIdentifier
#endif

Of course, this will still break compatibility with application not
especially prepared.

Best regards,
        Lutz
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to