<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Péter,<div class=""><br class=""></div><div class="">Thank you for the work. I think most of these look useful and could be merged. I'll have a closer look over them in the next week or so with some more detailed comments.</div><div class=""><br class=""></div><div class="">A few comments for now:</div><div class=""><br class=""></div><div class="">- I'm tending to avoid "make CONFIGVAR=1", I think all of yours can be in options.h instead? You don't have to worry about pulling in unneeded size like keyimport.o - if nothing is called in that file then it will be excluded from the linked executable.</div><div class="">- Can the patches be made from a fork of the Dropbear tree, with the 2017.75 tag? That will make merging/cherry picking easier&nbsp;<a href="https://github.com/mkj/dropbear/tree/DROPBEAR_2017.75" class="">https://github.com/mkj/dropbear/tree/DROPBEAR_2017.75</a></div><div class=""><br class=""></div><div class="">- I don't like the pointer arithmetic&nbsp;<a href="https://github.com/pts/pts-dropbear/blob/4bb002ccad33a5fa55b88b4216586b09881e0d3c/ed25519.c#L70" class="">https://github.com/pts/pts-dropbear/blob/4bb002ccad33a5fa55b88b4216586b09881e0d3c/ed25519.c#L70</a></div><div class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>if&nbsp;(buf-&gt;pos +&nbsp;83&nbsp;&gt; buf-&gt;len ||<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp; &nbsp;0&nbsp;!=&nbsp;memcmp(buf-&gt;data + buf-&gt;pos,&nbsp;"\0\0\0\x0bssh-ed25519\0\0\0@",&nbsp;19)<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp; )&nbsp;return&nbsp;DROPBEAR_FAILURE;<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>memcpy(key-&gt;spk, buf-&gt;data + buf-&gt;pos +&nbsp;19,&nbsp;64);<br class=""><br class=""></div><div class="">Instead it should use buf_getstring(), buf_getbufstring(), buf_incrwritepos() etc.</div><div class=""><br class=""></div><div class="">- &nbsp;Agree that SHA512 from libtomcrypt should be used instead.</div><div class="">- what is the reason for wanting a 8192 bit RSA key?</div><div class=""><br class=""></div><div class="">I see you mentioned&nbsp;chacha20-poly1305 in the TODO. If you (or anyone else) is going to implement that it would be worth using the upcoming libtomcrypt 1.18 release which supports those. The mode used by OpenSSH may be a bit different though, with a separate cipher for lengths.</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">Matt</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Mon 2/10/2017, at 12:26 am, Péter Szabó &lt;<a href="mailto:ptspts@gmail.com" class="">ptspts@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Dear Dropbear Authors,<div class=""><br class=""></div><div class="">Thank you for your work on Dropbear! It's a great SSH server and toolset for resource-constrained systems, I use it every day.</div><div class=""><br class=""></div><div class="">This weekend I've implemented a couple of features I've always wanted to have:</div><div class=""><br class=""></div><div class=""><div class="">* Added ssh-ed25519 crypto for server host keys and user keys. The implementation is based on TweetNaCl v20140427.</div><div class="">* Added environment variable propagation (similar to OpenSSH AcceptEnv, command-line flag -A) to Dropbear sshd.</div><div class="">* Added autodetection and loading of OpenSSH hostkeys to Dropbear sshd (with `make OPENSSHHOSTKEYLOAD=1').</div><div class="">* Added flag to dropbearkey to generate private keys in OpenSSH format directly (dropbearkey -Z openssh, with `make WRITEOPENSSHKEYS=1').</div><div class="">* Improved some command-line flags (e.g. dropbear -E is always available).</div><div class="">* Compilation instructions for pts-xstatic (statically linked i386 Linux binary). Binary size is 350456 bytes.</div><div class="">* Added option to compile without loading any system hostkeys (e.g. from /etc/dropbear) (with `make NOSYSHOSTKEYLOAD=1').</div><div class="">* Made dropbearkey behavior is more compatible with ssh-keygen in OpenSSH:</div><div class="">** dropbearkey now creates a .pub file.</div><div class="">** -b bits flag.</div><div class="">** -C comment flag. (The comment will be added to the public key file, and not to the private key file.)</div><div class="">** -P passphrase flag. Only the empty passhprase is allowed.</div><div class="">** -N passphrase flag. Only the empty passhprase is allowed.</div><div class="">* Added autodection of the input private key file format, as `dropbearconvert any'.</div></div><div class=""><br class=""></div><div class="">The code is in&nbsp;<a href="https://github.com/pts/pts-dropbear" class="">https://github.com/pts/pts-dropbear</a>, which is a fork of&nbsp;</div><div class="">dropbear-2017.75.tar.bz2.<br class=""></div><div class=""><br class=""></div><div class="">It would be great if these improvements could be merged to upstream Dropbear, so all Dropbear users would benefit. Please let me know what the best course of action would be to make this happen, and how I can help.</div><div class=""><br class=""></div><div class="">Best regards,</div><div class=""><br class=""></div><div class="">Péter Szabó</div></div>
</div></blockquote></div><br class=""></div></body></html>