Hello,

 

Initially inspired by Péter Szabó work from 2017, but made with general 
approach:

 

·        Curve25519/Ed25519 implementation based on TweetNaCl version 20140427, 
old Google's curve25519_donna dropped as unnecessary, saves a lot of size.

·        SHA512 reused from LibTomCrypt, no need to keep own copy

·        Sign/Verify require no additional memory allocation

·        Dropbear's API made ~similar to LibTomCrypt devel to ease possible 
switch, if necessary. Anyway, LibTomCrypt is based on TweetNaCl as well.

·        Default private key path is key/etc/dropbear/dropbear_ed25519_host_key

·        Implemented general import from / export to OpenSSH private keys, can 
be reused for other key types on necessary

·        Implemented *25519 fuzzers, but still need corresponding data from 
dropbear-fuzzcorpus 

·        Man, license, commens updated to fit Ed25519

 

So far, DROPBEAR_CURVE25519 increases dropbear binary by ~2,5Kb on X86-64 vs 
~8Kb of current curve25519_donna implementation.

DROPBEAR_ED25519 adds ~7,5Kb to dropbear and ~1kB to dropbearconvert for 
OpenSSH import/export.

 

Related PR against current sources is here  
<https://github.com/mkj/dropbear/pull/91> 
https://github.com/mkj/dropbear/pull/91, patches are attached.

Review and/or any suggestios will be highly appreciated.

 

Thank you and

Best Regards, Vladislav Grishenko



Attachment: 0001-Add-support-for-Ed25519-as-a-public-key-type.patch
Description: Binary data

Attachment: 0002-Add-curve25519-and-ed25519-fuzzers.patch
Description: Binary data

Attachment: 0003-Add-import-and-export-of-Ed25519-keys.patch
Description: Binary data

Reply via email to