Do yourself a favor and just have one of the OpenSSL crypto experts 
do the function on a consulting basis.  Will save you a lot of time, 
and misery!  And it will be crypto correct.

Ken


> > There are a few other complications which you may not be aware of.
> 
> But I am terrified that they exist.  I'm a generic multiplatform network
> applications type, not a crypto geek.
> 
> > Under CryptoAPI you can't directly set the actual key. There are various
> > tricks involving things like exponent of one RSA keys to get round this
> > though.
> 
> I realized this.  I feed it the hash, it makes a key.  Cool, unless you need
> to replicate the "it makes a key" using OpenSSL.
> 
> > OpenSSL allows you to set the actual key and has support for various
> standard
> > key derivation algorithms like PKCS#12 or PKCS#5v2.0 .
> 
> (I'd rant about the OpenSSL man pages, but I'd be off my own topic.)
> 
> Since my first post, I've tripped PKCS#5v2.0; I guess my primary comment
> would be that the OpenSSL DES/EVP pages don't make it clear what is used for
> what ... for example that PKCS includes the key generation routines that may
> not be public key.
> 
> > Its advisable to use the EVP interface on OpenSSL rather the the low level
> > routines.
> 
> I realize that.  But I didn't see the obvious path way to do using the low
> level or EVP routines.
> 
> > It isn't a good idea to just make up a key derivation algorithm: there are
> > lots of these about that are horribly insecure. Many don't even use a salt
> > which makes them vulnerable to attack.
> 
> I wasn't planning to.  I know of weaknesses (which I won't advertise) in
> exactly what I'm doing, but it's a major improvement on the "simply XOR
> against a fixed key" which the current implementation does.  I prefer not
> add more *unknown* weaknesses.
> 
> (All this is a mere fallback to running the whole sebang over SSL from
> client to server -- and I'm using SHA1 passwords when possible, which is
> whenever not calling external authenication facilities.)
> 
> > What this means for 3DES is that there isn't a common password based key
> > derivation algorithm. The solution would be to implement one in either
> > CryptoAPI or OpenSSL. For example you could implement PKCS#5 v2.0 under
> > CryptoAPI or even the odd 3DES derivation algorithm under OpenSSL.
> 
> Have you seen the Secure Programming Cookbook for C and C++ (by Viega &
> Messier, from O'Reilly)? I'm looking at recipe (section) 4.10, which has
> PKCS#5 for Windows and OpenSSL.    Of course, that leads off other parts of
> the book, so back to my reading ...
> 
> -ahd-
> 
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> User Support Mailing List                    [EMAIL PROTECTED]
> Automated List Manager                           [EMAIL PROTECTED]

__________________________________________________
Support
InterSoft International, Inc.
Voice: 888-823-1541, International 281-398-7060
Fax: 888-823-1542, International 281-398-0221
[EMAIL PROTECTED]
http://www.securenetterm.com

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to