-
Notifications
You must be signed in to change notification settings - Fork 316
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
Run 2-party ECDSA on iOS. #27
Comments
-Working with "multi-party-ecdsa" version "0.1.0"
in party_one.rs: in AppDelegate.swift: Output: |
Trying to run the following: `use protocols::two_party_ecdsa::lindell_2017_keygen::*;
}` getting the following error in xCode: trying to build the rust lib with debug symbols |
Sounds related to gcc on iOS, I will dive deep. One solution could be to use for iOS a different big number library (pure Rust). |
@gbenattar, Iv'e managed to build gmp for iOS architectures using this script: if I understand correctly, cryptography-utils is using gmp indirectly via: https://github.com/thestinger/rust-gmp how is rust-gmp linking against gmp? |
Solved:
|
Is it still open? I see solved but... no benches? |
that's an excellent question. I think that the actual work is on another repo. |
Ok - 1 day to build multiparty on Windows, 1 hour to build on Ubuntu:), weekend to build and run multiparty tests on iOS on armv7 and aarch64 and all that after 20+ days in dependency hell on Mac OS :D armv7 (iPad mini 1st gen ) - 32 bit is a no go :( I was able to drink some tea and few youtubes cause it was running for over 20minutes and finished just a few tests. Pretty expected since 32bit GMP but still, it didn't even finish last test, I dropped. But aarm64(iPhone 6s) did a pretty good job - it runs almost just like PC i7 8550U I'm running on :D again pretty expected since 64bit GMP. You may wonder - why no exact numbers, it's because I'm still not able to run benches on aarch64 due to
It's because seems sidechanell attack safe 64 bit version of the method is missing in outdated rust-crypto for 64 bit ARM:( Good thing all tests for multiparty pass so there may be chance core of multiparty protocol compiles and runs on various platforms just fine Of course @omershlo - you may not wonder at all since looks like you are focused on some server-centric topology or since you already have these results or sort of(via running with rust to c with headers) :) or you may not have benches since multiparty keygen.rs looks very outdated and draft. Perhaps if you have latest bench for multiparty - maybe you would be kind enough to share ;) Because except replacing cryptography-utils with curve what I did there is sort of black magik -
strange it doesn't fail though 👍 Sorry I suspect it's some sort of savagery - but despite I spent countless hours reading lindell18 before finaly deciding to go with gg18 (mainly due to 8kb messages vs 192kb) I coudn't do anything better (math looks familiar but still... ). So in case you have updates to multiparty benches and would like to share - it would be great. In case you don't and interested - maybe I shoud read contributing guides and at least join your tele chanel?, maybe I wouldn't bug too much with few questions from time to time;) Definitely it would save me few weeks - though it feels a bit valuable experience with various tools and building all that flavors of GMP and dependencies on all that platforms I had to go through those days, kind of 😄 Again - way of running all the tests and benches in full directly on device without leaving Rust - feels solid!
Thanks to Dinghy - pure magik, going to run all the stuff tomorrow on Android |
@vhnatyk what a great work!
good work ! |
can u share the ios or android code? |
@Zhangtianai hi - umm "the code" is already there:) just that you need Rust tool like |
can you share the ios code? |
The purpose of this task is to build a proof of concept for running this code on iOS.
Nice to have: simple benches that we will be able to compare with benches running on a machine.
Success criteria:
The text was updated successfully, but these errors were encountered: