Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make wasm target #3

Open
avadacatavra opened this issue Jan 4, 2018 · 9 comments
Open

Make wasm target #3

avadacatavra opened this issue Jan 4, 2018 · 9 comments

Comments

@avadacatavra
Copy link

See conversation here

It seems like libpasta could have some interesting use cases to make web password handling less terrible, so having a wasm target/example would be helpful

@samscott89
Copy link
Member

This definitely seems like a good/fun thing to try to support. Are you familiar with any other scenarios/applications though? As I said in the other thread, as far as I'm aware the two main things to support would be:

  • Client-side hashing
  • More sophisticated verification techniques (e.g. PAKEs)

Client-side (partial-)hashing seems like a fairly incremental improvement, but support for PAKEs is potentially very cool.

Any other examples?

@avadacatavra
Copy link
Author

To be entirely honest, I think it would be useful to have a plug and play password handler that webapps can use so that you see a lot less plaintext storage.

Passwords/hashes aren't necessarily my forte, so I'm not super aware of other interesting applications. I can think about it though

@samscott89
Copy link
Member

Okay. I would expect most web apps to have some kind of backend to deal with user authentication, and supporting whatever languages those are written in is the raison d'etre of libpasta. I'm not familiar with any apps which do the password storage/auth in the app itself (i.e. client-side JS), but wouldn't be surprised either!

@samscott89
Copy link
Member

Also, a quick attempt to wasm everything shows that ring is probably the hardest thing to deal with. cargon and fastpbkdf2 are also slightly awkward, but have adequate pure-rust alternatives.

@avadacatavra
Copy link
Author

...calling developers who actually know how web apps are done... 😂

@avadacatavra
Copy link
Author

maybe a first pass should be trying to wasm-fy ring?

@samscott89
Copy link
Member

Might actually justify bringing briansmith/ring#256 back from the dead. Because I am sure nobody wants to write the perl necessary to make the asm->wasm conversion happen!

@avadacatavra
Copy link
Author

...i certainly don't

@samscott89
Copy link
Member

After discussing with @RongxinZhang, there's a nice use case for client-side password hashing, involving encrypting/decrypting files based on a password. In which case, performance is going to be crucial, and wasm is highly desirable.
This example additionally requires #6.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants