Bear Giles wrote:
> 
> > > One classic approach is to have all lookup functions return a
> > > list of unique keys.  The caller then requests each object individually
> > > via a lookup that guarantees uniqueness.  Uniqueness is easy to guarantee
> > > on any hashed or relational store - make it the primary key!
> >
> > An earlier attempt used a hash of the entire certificate which, if it
> > isn't unique would be the least of your worries...
> 
> Issuer and subject number should also be unique, and it's a common
> search pattern.  I don't think anyone searches on the hash of the
> entire certificate.
> 

It should be unique but it might not be, either by accident or malicious
intent.

There are a couple of cases that use the hash of the whole certificate.
The OCSP v2 draft for example.

> 
> > That's the kind of thing I looked at when I started on a revision ages
> > ago. One problem with that is how to add additional lookup methods when
> > they are needed without breaking existing code.
> 
> I got a key db about 80% implemented on Monday... then got hit
> with a nasty virus making the rounds.  Maybe I'll be able to finish
> by this weekend - at least I can no longer toast marshmellows on my
> forehead.
> 
> But support for additional lookup methods isn't a problem.  You just
> have a version number in the plug-in and the loader links in an
> "unsupported operation" function if the versions don't match.  The
> caller should check the error code... but it should be doing that anyway. :-)

I'd rather not have the OpenSSL core code have to keep track of which
version supported which lookup techniques. An alternative is to have one
lookup function and a parameter specifying the lookup type. If a version
then doesn't recognise the lookup technique it can return an error
saying it doesn't understand the method. This maps well to the ASN1
CHOICE type which is represented as:

struct {
        int type;
        union {
                TYPE1 *a;
                TYPE2 *b;
                TYPE3 *c;
                /* etc */
        } d;
}

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]

Reply via email to