> However, the same file unconditionally uses SHA-1 in different places,
> so these #ifdef's doesn't work.
> 
> All the ssh kex protocols that libssh2 supports require SHA-1, so it
> does not seem very useful to build libssh2 if there is no support for
> SHA-1 in OpenSSL.  However, I may be missing something.
> 
That..... is an excellent point.... and I agree, the SHA1 checks are 
pointless when one considers the fact that all the current kex methods 
require it.  Might as well lose them.

Since you're doing all this shoehorn work to get libgcrypt working with 
libssh2, I should mention that I've got some code I've been meaning to 
toss in as a final-fallback (libbig_int for big number math, and my own 
implementations of 3des-cbc (or aes256-cbc), sha1, and sha1-hmac for 
minimal protocol support when neither library is available.

It's not that openssl or libgcrypt are so hard to come by, but I've been 
asked for "stripped down" versions by people looking to do work with 
embedded devices.  If we can offer something that just does the bare 
minimum, then that could be helpful to them.

libbig_int is licensed to the public domain so static linking that will 
be simple, my sha1 and sha1-hmac implementations are already php 
licensed (which is itself a bsd derivate), I just need to get some 
permissions on using my 3des-cbc implementation from my employer (who 
may have legal rights to it, not 100% clear...)

Note: I also have aes128/192/256-cbc implementations, but 3des-cbc is 
the one specified as REQUIRED by the spec so it's the one I initially 
mentioned.  Given the relatively small size of the siphers, it might not 
hurt the embedded folk to bad to include both families, or maybe give 
them a ./configure time option.

One thing at a time though.  I'm not quite out from under my work pile 
to the point where I can start working on libssh2 yet, but I'm nearly there.

> If someone later on wishes to add support for, say, SHA-2, and make
> the SHA-1 stuff optional, that would be fine, but right now it doesn't
> seem to make sense to make SHA-1 optional since libssh2 won't work
> without SHA-1 (if I understand correctly).
> 
I've got sha-256, sha-384, and sha-512 implementations as well, but 
without an SSH standard which uses them they're not particularly helpful 
right now...

What I do see is adding some of the other defined ciphers and modes 
which libssh2 doesn't currently support because of lack of support in 
OpenSSL.  Particularly the -ctr cipher modes which allow the option to 
safely remove the MAC blocks and cut down on the processing load a 
little without sacrificing security.

-Sara

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
libssh2-devel mailing list
libssh2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libssh2-devel

Reply via email to