[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [tor-bugs] #25483 [Obfuscation/Snowflake]: Windows reproducible build of snowflake
#25483: Windows reproducible build of snowflake
-----------------------------------+--------------------------
Reporter: arlolra | Owner: sukhbir
Type: project | Status: assigned
Priority: High | Milestone:
Component: Obfuscation/Snowflake | Version:
Severity: Normal | Resolution:
Keywords: TorBrowserTeam201805 | Actual Points:
Parent ID: #19001 | Points:
Reviewer: | Sponsor:
-----------------------------------+--------------------------
Comment (by cmm323):
The problem in step 3 is that the name mangling schemes used by the two
compilers are different and thus the linker cannot find the appropriate
function in the object file generated by the other compiler. However, this
is a common problem and a popular solution is to export method calls as C
functions. Since C doesn't have namespaces there is no name mangling
issue. These functions can be exported as a DLL wrapper (see [1] and [2]
for more information). Go-Webrtc wrapper by asicerik[3] wraps WebRTC
functions called by Snowflake, in C functions and export them as a runtime
DLL. I have tested the functionality of this wrapper on Windows. Cross-
compiling the wrapper on a Linux machine, however, seems to be harder. The
wrapper uses Windows header and some other WebRTC headers. I believe that
we can use the Ninja[4] and GYP build systems that are used to build the
WebRTC library to cross-compile the wrapper as well. I think the solution
is to add a target to Ninja build system to build the wrapper with WebRTC
library as a dependency. Unfortunately, I don't know enough about Ninja
build system to do that and won't have the time to research it anytime
soon.
[1]- http://www.mingw.org/wiki/Visual_Basic_DLL
[2]- https://www.transmissionzero.co.uk/computing/building-dlls-with-
mingw/
[3]- https://github.com/asicerik/go-webrtc
[4]- https://ninja-build.org/manual.html
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/25483#comment:39>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs