On Mon, Oct 22, 2012, Erik Tkal wrote:

> It looks like the client sets the hash to use for each key type to the first 
> matching algorithm sent by the server in the certificateRequest.  These 
> values are stored in a private structure with no apparent way for client code 
> to modify this, and it seems both the client and server always send the full 
> list regardless.
> 
> So in the case where CAPI is utilized for certificate access, if OpenSSL is 
> built to support SHA512, then that is the hash algorithm that will always be 
> chosen, even if the CSP for the selected certificate cannot perform that 
> function.
> 
> I don't see any solution other than to manually manipulate the data in 
> cert_st, even though that is in ssl_locl.h.  Anyone have any better ideas?
> 

This is a limitation in OpenSSL 1.0.1 and TLS 1.2.

OpenSSL HEAD includes support for restricting both client and server signature
algorithms. So for example you could set a priority list of client certificate
algorithms on the client side and it would attempt to use the highest priority
shared signature algorithm. That could be backported to OpenSSL 1.0.2 at some
point.

Steve.
--
Dr Stephen N. Henson. OpenSSL project core developer.
Commercial tech support now available see: http://www.openssl.org
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to