From: Oscar Jacobsson <[EMAIL PROTECTED]> oscar> OpenSSL currently has separate APIs, as opposed to flags or profiles, oscar> for handling EVP_PKEYs, X509s and X509_CRLs because they are oscar> fundamentally different types supporting fundamentally different oscar> operations. The stores they reside in will mirror this disparity: a key oscar> store's (e.g. a smart card's or cryptographic hardware's) very raison oscar> d'être is to keep its keys hidden, a PKI repository's (e.g. a directory oscar> server's or RDBMS's) is to make its certificates and CRLs known. oscar> oscar> I'm not saying we *could not* consolidate both of these feature sets oscar> into a single API -- I've stumbled upon private keys in public oscar> directories more than once. I'm merely trying to point out that it might oscar> not necessarily be the optimal approach.
I assume this must be a bit confusing, because we all seem to have different ideas on what the different layers are supposed to do. My idea is that we have three layers: 0. The application 1. The DB framework (which may or may not be part of the ENGINE framework) 2. The DB plugin The plugin doen't really know what the hell we're storing. All it has is some simple schema that could fulfill most of our needs (and that's flexible enough, I think I've outlined some ideas, but I haven't been very specific yet). The framework has some knowlege about what we can store, and provides a sufficiently common interface to provide storage of all the objects we're after. Basically, it would be a translator between the application, which knows very well what is being stored and retreived, and the plugin, which doesn't know jack shit about the stuff it's handling (you could compare that to LDAP, which in itself doesn't know exactly what is stored, except that it's a bunch <of attribute,value> tuples, basically (and, and perhaps some primary types). Note, BTW, that we're not just talking directories or large CA repositories here. We might just as well be talking about small client-side databases like the stuff that keeps all the certificates and keys for Netscape Communicator. I know, down on the disk it's separate dbs for the keys and for the certificates. So? Do you think it's necessary to know or care about those details at the application level? (and OK, that might make the plugin less dumb than I pictured above, which shows that my thoughts still need some revision) Are the above ideas along the line of what you've done Stephen (I don't dare misspell your last name again :-))? -- Richard Levitte \ Spannvägen 38, II \ [EMAIL PROTECTED] Redakteur@Stacken \ S-168 35 BROMMA \ T: +46-8-26 52 47 \ SWEDEN \ or +46-733-72 88 11 Procurator Odiosus Ex Infernis -- [EMAIL PROTECTED] Member of the OpenSSL development team: http://www.openssl.org/ Software Engineer, GemPlus: http://www.gemplus.com/ Unsolicited commercial email is subject to an archival fee of $400. See <http://www.stacken.kth.se/~levitte/mail/> for more info. ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]