Early-stage WIP. Goal is to create an iOS web browser that sends all traffic over the Tor network which is also open source.
Currently contains a build chain for creating the library dependencies for a universal i386 (iPhoneSimulator) and armv6/armv7 (iPhone/iPad) application containing tor and it's dependencies libevent and openssl.
Run the commands in the following order.
bash build-libssl.sh bash build-libevent.sh bash build-tor.sh
OpenSSL 1.0.1 ARM w/ASM-Acceleration
NOTE (2/25/2012): This branch is broken: I have no idea what I am doing
in assembly. (Tor does not run due to my fudging of symbols such as
A patch is located at patches/openssl-1.0.1-beta3-armv7-asm.diff
which enables building a custom
BSD-asm target that enables the
assembly files (originally written for
The patch isn't compatible with other targets because the Apple version of
the AS assembler is not compatible with the modern GNU implementation due
to it being based on an extremely old fork — the patch rewrites
some of the
*.S files (or the perl scripts which generate them) to be
compatible with the Apple assembler:
.globalpseudo-op was changed to
- Some pseudo-ops were entirely removed (
- I screwed around with variable scope to allow the assembled files to
link properly. Generally converted
.lcomm, manually added leading underscore for private symbol names, etc. (BUT SEE DISCLAIMER BELOW)
Initial tests are promising (see [docs/openssl-arm-asm.txt][bench_doc]): approx. a 30% speed improvement on an iPhone 4S (armv7) on a totally contrived, simplistic, artificial benchmark on SHA256 and SHA512. (But hey, the test also shows that the patched library compiles and that at least some of it generates expected values.)
To use this, build openssl with
build-libssl.sh in the "Building dependencies" instructions above.
DISCLAIMER FOR THIS ARM-ASM PATCH: I don't know assembly and this patch is
the result of me
and using trial-and-error based on**: