Giter Club home page Giter Club logo

Comments (5)

warner avatar warner commented on May 28, 2024 1

Yeah, if/when we decide to ship executables, making precompiled ones for windows is probably the right way to go. I've got appveyor building similar things for Tahoe-LAFS, so I'd follow that model.

from magic-wormhole.rs.

warner avatar warner commented on May 28, 2024

Excellent point.

My hope would be for a native Rust implementation of the pieces of libsodium that we need. That'd be better in one sense: native Rust means memory safety.

But it'd be worse in another sense: part of the appeal of libsodium is that it uses DJB's original code, which is very fast and very carefully written (constant-time operation), but that code is in C, and both the speed and the constant-time properties depend intimately on the details of how C gets compiled, so porting those aspects won't be an easy task.

We don't especially need the speed. The constant-time-ness would be nice, though.

For reference, we use libsodium for the SecretBox authenticated-encryption function, which is used to protect all messages sent after the PAKE exchange emits a shared key. We don't use the asymmetric Box function, nor any of the key-agreement tools. So we might be able to get by with a less-than-complete port.

I haven't looked at crates.io to see what else is out there. I have to imagine that somebody's made a stab at a pure-Rust implementation, but I've no idea how far along such a port might be, nor any idea about it's quality.

I guess one option is to use different crates on windows vs unix, maybe sacrificing some speed/quality properties on the platform that can't use the C libsodium.

from magic-wormhole.rs.

copyninja avatar copyninja commented on May 28, 2024

I was checking sodiumoxide code and from readme it should work on Windows if properly compiled libsodium is available on target machine. I also checked git2-rs code which is crate which even cargo depends on, there they embed source and compile it in place if its not found on target machine.

Even if sodiumoxide can put original source in the crate, it should still need native or cygwin compiler at its disposal to work. So we will probably back to square one :).

May be we should consider shipping prebuilt binary?. May be using appveyor help?.

from magic-wormhole.rs.

piegamesde avatar piegamesde commented on May 28, 2024

Is this issue still relevant? I managed to compile Wormhole using MinGW and it works fine, I don't fully understand what the original issue was and what exactly has changed since then so that it works.

from magic-wormhole.rs.

piegamesde avatar piegamesde commented on May 28, 2024

Closed with #121

from magic-wormhole.rs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.