Working around wrong algorithm specification in certificates
Mads Kiilerich
mads at kiilerich.com
Sat Jul 24 03:06:49 CEST 2010
Nikos Mavrogiannopoulos wrote, On 07/21/2010 09:23 AM:
> Mads Kiilerich wrote:
>
>>>> You don't want to pollute your code with workarounds or flexibility for
>>>> stupid bugs like this?
>>> I was thinking about your copy of gnutls :) If the fix works and the
>>> problem is general the workaround might be included in the gnutls code
>>> as well. I've seen quite some implementations putting wrong OIDs here
>>> and there, and working around those practices is not that exceptional
>>> any more.
>> This patch works for me and 2.10.0:
>>
>> --- gnutls-2.10.0/lib/gnutls_algorithms.c.org 2010-07-20
>> 22:57:35.000000000 +0200
>> +++ gnutls-2.10.0/lib/gnutls_algorithms.c 2010-07-20
>> 22:57:07.000000000 +0200
>> @@ -2125,6 +2125,7 @@
>> {"DSA", PK_DSA_OID, GNUTLS_PK_DSA},
>> {"GOST R 34.10-2001", PK_GOST_R3410_2001_OID, 0},
>> {"GOST R 34.10-94", PK_GOST_R3410_94_OID, 0},
>> + {"RSA (MD5)", SIG_RSA_MD5_OID, GNUTLS_PK_RSA},
>> {0, 0, 0}
>> };
>>
>> I can see that you added PK_X509_RSA_OID since 2.10.0. Could this
>> perhaps be added too?
>> There is also anecdotical evidence that SIG_RSA_SHA1_OID needs the same
>> treatment. I haven't seen that, but getting both fixed at once could be
>> great.
> I've added them to the 2.10.x branch. I've not added the SHA1_OID but if
> you have some certificates using it, I'll add it. Clearly this OID
> shouldn't have been there!
Thanks!
The anecdote of the need for SIG_RSA_SHA1_OID could be tracked down to
the comments on
http://sourceforge.net/tracker/index.php?func=detail&aid=1744033&group_id=24366&atid=381349
. But the BER encoded certificate on
https://developer.mozilla.org/en/Introduction_to_Public-Key_Cryptography#A_Typical_Certificate
(which despite the text _not_ is what is displayed) also uses
tbsCertificate.subjectPublicKeyInfo.algorithm=sha1WithRSAEncryption.
Please consider adding support for that too.
If you are going to make a release from gnutls_2_10_x then I hope you
will include "Correctly deinitialize crypto API handles." as well.
However, according to NEWS you have released 2.11.0 already - but it is
not on ftp://ftp.gnu.org/pub/gnu/gnutls/ ?
/Mads
More information about the Gnutls-help
mailing list