Regarding the build: I was testing libsodium-js build from npm ( https://www.npmjs.com/package/libsodium). This package is wrapping libsodium's own emscripten build script ( https://github.com/jedisct1/libsodium/blob/master/dist-build/emscripten.sh). Essentially following https://github.com/jedisct1/libsodium.js#custom-build will reproduce the build.
The algorithm seems quite similar in both, using a montgomery ladder with 32-bit ints as the limbs (basic units) of the bigints involved. Tweetnacl is generally based on this paper: https://tweetnacl.cr.yp.to/tweetnacl-20140917.pdf (esp. the section "Arithmetic modulo the group order"). I'll try to see what the JS profiler says in the next couple of days; I'll need to to build a custom, non-uglified variant to see anything meaningful. Anything else I can add? p.s. I remember having seen a great performance gap between libsodium's native crypto_pwhash() and the emscripten build. It's been some time ago so I don't remember the exact details, but it was around one or two orders of magnitude of a gap. On Sat, Sep 10, 2016 at 6:43 PM, Alon Zakai <alonza...@gmail.com> wrote: > That is surprising, yes. > > Are they implementing the exact same algorithm? > > Are there full instructions to build both projects? Or builds online? > Might be something in the emcc command for example (like building without > opts). > > Running a JS profiler might show something interesting. > > On Fri, Sep 9, 2016 at 9:38 PM, John Doughnut <aviadla...@gmail.com> > wrote: > >> I was comparing standard JS implementation (https://github.com/dchest/twe >> etnacl-js) and emscripten-built crypto library. >> >> I was surprised to find that the standard JS implementation was markedly >> faster than asm.js-assisted implementation. >> >> Can someone point to the root cause of this gap / am I missing something? >> >> Results: >> Chrome 52: >> >> => 108 >> => 990 >> >> FF 48: >> => 472 >> => 1939 >> >> -- >> You received this message because you are subscribed to the Google Groups >> "emscripten-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to emscripten-discuss+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to a topic in the > Google Groups "emscripten-discuss" group. > To unsubscribe from this topic, visit https://groups.google.com/d/ > topic/emscripten-discuss/Z5HJM99I934/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > emscripten-discuss+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to emscripten-discuss+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.