> From: owner-openssl-us...@openssl.org On Behalf Of Cipher > Sent: Monday, 20 May, 2013 11:07
> I built and installed openssl 1.0.1e. When i try to connect > using ssh with > 2048 DSA keys, i get *bad sig size 32 32* error. > Is this a bug? > Here is how i created the keys. > openssh (through 6.2) ssh-dss.c limits sig parts to 20 bytes (matching a SHA1 hash), consistent with RFC 4253 6.6 which specifies SHA1 and 160-bit (20-byte) r & s. Note 4253 was issued in 2006 well before DSS was updated by 186-3 in 2009 with groups>1k subgroups>160 (and SHA2). On checking I see 6668 less than a year ago defines new *data* hmacs for SHA-256/512, but no change to pubkey auth. So there doesn't appear to be any standard or interoperable SSH protocol using 186-3, nor any openssh extension. You may have hit the difference because openssl < 1.0.0 supported |p|>1024 as a then-nonstandard extension, but still |q|=160 and SHA1 for signing (because of API issue). Newer openssl does |q|=256 SHA-2 -- incompatible with (open)ssh. In 1.0.0 unless you use what is intended as an internal routine you can't generate parameters for 2048/160. But if you use parameters generated by 0.9.8 (or some other thing that can do 2048/160), and generate a key, the sign and verify logic and thus I expect (probably) openssh can use it. But you don't get any security benefit; SP800-57 rates 2048/224 or 2048/256 as 112-bit strength, but using 2048/160 will reduce it to 80-bit strength no better than 1024/160. And you may or may not be interoperable, because another implementation may have coded to FIPS 186-2 as specified. ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org