In message <[EMAIL PROTECTED]> on Thu, 18 Nov 2004 13:45:38 +0100, "Dr. Stephen 
Henson" <[EMAIL PROTECTED]> said:

steve> On Thu, Nov 18, 2004, Richard Levitte - VMS Whacker wrote:
steve> 
steve> > In message <[EMAIL PROTECTED]> on Thu, 18 Nov 2004 09:30:41 +0100 
(CET), Richard Levitte - VMS Whacker <[EMAIL PROTECTED]> said:
steve> > 
steve> > richard> OK, that's actually quite easy, I'll have a patch prepared
steve> > richard> for review within an hour or so.
steve> > 
steve> > I've got something that seems to work for my purposes.  Do you have a
steve> > collection of certificates to try this on?  The weirder (within a
steve> > realistic framework) the better, I'd say.
steve> > 
steve> > I changed ca_check() into a publically available function, and had it
steve> > do a bit more thorough checks on the nsCertType values to determine if
steve> > the certificate could be a CA certificate or not.
steve> > 
steve> > Oh, and please, if anyone *other* than Steve is interested in this,
steve> > please jump in and test!
steve> > 
steve> > I've made the changes against the 0.9.7 branch, and I don;t expect it
steve> > to be difficult to apply to 0.9.8-dev.
steve> > 
steve> 
steve> OK I'll have a look through it. One thing that I'm concerned
steve> about is the new error code: X509_V_ERR_INVALID_NON_CA. Is this
steve> error code is used when the error code X509_V_ERR_INVALID_CA or
steve> others was used previously?

As it is right now, you will never see that error.  However, when I
release the code for proxy certificates (which I currently keep in a
separate repository), that error code will be quite important, as that
gets us in the new case where certain certificates in the chain (all
the proxy certificates and the EE certificate that signs the top proxy
certificate) MUST NOT be marked as CA certificates.

Actually, the way I've coded the stuff, there should be no behavioral
change at all, as I allow both CA and non-CA certificates for the
leaf, which seems to be consistent with the previous behavior.
However, since I have turned on extension checks in all cases, not
just when there's an associated purpose, some errors may become
visible more often.  Before my change, there was no CA check unless
there was an associated purpose, at all.

steve> Some applications check the existing error code
steve> X509_V_ERR_INVALID_CA and (after performing further checks)
steve> override it through the verify callback. If instead it sees a
steve> different error it will no longer work.

I don't think they'll see any difference.

steve> Doing that in 0.9.7 would introduce a binary and source incompatibility.

In what way is it a binary incompatibility?  I understand this may be
about a difference between your and my definition of binary
incompatibility.  Then again, unless the application processes proxy
certificates, it will never see X509_V_ERR_INVALID_NON_CA.  I think
the change is quite safe.  And considering we've done much tougher
changes in 0.9.7 lately, this one feels like a drop in the ocean...

Cheers,
Richard

-----
Please consider sponsoring my work on free software.
See http://www.free.lp.se/sponsoring.html for details.

-- 
Richard Levitte                         [EMAIL PROTECTED]
                                        http://richard.levitte.org/

"When I became a man I put away childish things, including
 the fear of childishness and the desire to be very grown up."
                                                -- C.S. Lewis
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to