Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/boringssl.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-11-19Allow |CRYPTO_is_NEON_capable| to be known at compile time, if possible.Adam Langley
If -mfpu=neon is passed then we don't need to worry about checking for NEON support at run time. This change allows |CRYPTO_is_NEON_capable| to statically return 1 in this case. This then allows the compiler to discard generic code in several cases. Change-Id: I3b229740ea3d5cb0a304f365c400a0996d0c66ef Reviewed-on: https://boringssl-review.googlesource.com/6523 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2015-10-21Allow ARM capabilities to be set at compile time.Adam Langley
Some ARM environments don't support |getauxval| or signals and need to configure the capabilities of the chip at compile time. This change adds defines that allow them to do so. Change-Id: I4e6987f69dd13444029bc7ac7ed4dbf8fb1faa76 Reviewed-on: https://boringssl-review.googlesource.com/6280 Reviewed-by: Adam Langley <agl@google.com>
2015-08-26Move arm_arch.h and fix up lots of include paths.Adam Langley
arm_arch.h is included from ARM asm files, but lives in crypto/, not openssl/include/. Since the asm files are often built from a different location than their position in the source tree, relative include paths are unlikely to work so, rather than having crypto/ be a de-facto, second global include path, this change moves arm_arch.h to include/openssl/. It also removes entries from many include paths because they should be needed as relative includes are always based on the locations of the source file. Change-Id: I638ff43d641ca043a4fc06c0d901b11c6ff73542 Reviewed-on: https://boringssl-review.googlesource.com/5746 Reviewed-by: Adam Langley <agl@google.com>
2015-08-04Fix more warnings about old-style prototypes.Brian Smith
Replace |()| with |(void)| in some prototypes to avoid compiler warnings about old-style prototypes when building in some non-default configurations for ARM. Change-Id: Id57825084941c997bb7c41ec8ed94962f97ff732 Reviewed-on: https://boringssl-review.googlesource.com/5570 Reviewed-by: Adam Langley <agl@google.com>
2015-05-08Support Trusty, an embedded platform.Adam Langley
Trusty doesn't have setjmp.h and nor does it have threads. Change-Id: I005f7a009a13e6632513be9fab2bbe62294519a4 Reviewed-on: https://boringssl-review.googlesource.com/4660 Reviewed-by: Adam Langley <agl@google.com>
2015-05-05Add support for building with the Android NDK.Adam Langley
Previously I've been using the Linaro toolchains and just building static binaries. However, the Linaro toolchains have a broken pthread_rwlock_wrlock—it does nothing and then unlocking corrupts the lock. Building with the Android NDK avoids this. These build instructions depend on https://github.com/taka-no-me/android-cmake which people will need to clone into util/ if they want to use the Android NDK. Change-Id: Ic64919f9399af2a57e8df4fb4b3400865ddb2427 Reviewed-on: https://boringssl-review.googlesource.com/4600 Reviewed-by: Adam Langley <agl@google.com>
2015-03-31Don't set NEON_FUNCTIONAL in the getauxval path.Adam Langley
NEON_FUNCTIONAL is set by default in crypto.c. Chromium calls |CRYPTO_set_NEON_functional| before |SSL_library_init| and thus the getauxval path for CPU-feature detection was resetting the functional flag, even on broken processors. This change means that, apart from the default, only |CRYPTO_set_NEON_functional| will change the NEON_FUNCTIONAL flag. BUG=469511 Change-Id: I3d4dbbd9f4a5e33539f8559f90289e706ad17451 Reviewed-on: https://boringssl-review.googlesource.com/4170 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2015-03-19Don't install SIGILL handler until after sigsetjmp.Adam Langley
Previously, if SIGILL was received between the signal handler being installed and before the sigsetjmp, the process would longjmp to a random location. Change-Id: I9e6143a17ff3db0e1b00ece68fce161801461010 Reviewed-on: https://boringssl-review.googlesource.com/3950 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2015-02-03Don't probe for NEON with SIGILL on aarch64.Adam Langley
We assume that AArch64 systems are modern enough to have getauxval. Change-Id: I4cc74f04ca5ed50b8ca1cfd00afeaaa01c6caca0 Reviewed-on: https://boringssl-review.googlesource.com/3280 Reviewed-by: Adam Langley <agl@google.com>
2015-02-03Fix patch collision of d062c8af and 2b2d66d4.Adam Langley
These two patches conflicted but, because it wasn't a textual conflict, Gerrit didn't notice. Change-Id: I53464127e5e71dfa2f6c8a8847b41968671c2047
2015-02-02Probe for NEON support if getauxval is missing.Adam Langley
Android didn't have getauxval until Jelly Bean (4.1). This means that BoringSSL running on older Androids won't be able to detect NEON support. (This is moot for Chromium because Chromium calls android_getCpuFeatures and sets the NEON flag itself, but other users of BoringSSL on Android probably won't do that.) This change mirrors a little of what upstream does and tries running a NEON instruction with a handler for SIGILL installed. Change-Id: I853b85c37ffb049b240582d71fcf07adedc37a30 Reviewed-on: https://boringssl-review.googlesource.com/3190 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2015-01-16Use a weak pointer for getauxval.Adam Langley
The Android SDK version against which Chromium builds is too old to include sys/auxv.h. This change switches the ARM code to use a weak pointer for getauxval and to hard code the aux value numbers. It also switches the license on cpu-arm.c because there's no OpenSSL left in there now. Change-Id: I440cb9d533a06d8b245b189d8e5148fa33e29412 Reviewed-on: https://boringssl-review.googlesource.com/2880 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2015-01-15aarch64 support.Adam Langley
This is an initial cut at aarch64 support. I have only qemu to test it however—hopefully hardware will be coming soon. This also affects 32-bit ARM in that aarch64 chips can run 32-bit code and we would like to be able to take advantage of the crypto operations even in 32-bit mode. AES and GHASH should Just Work in this case: the -armx.pl files can be built for either 32- or 64-bit mode based on the flavour argument given to the Perl script. SHA-1 and SHA-256 don't work like this however because they've never support for multiple implementations, thus BoringSSL built for 32-bit won't use the SHA instructions on an aarch64 chip. No dedicated ChaCha20 or Poly1305 support yet. Change-Id: Ib275bc4894a365c8ec7c42f4e91af6dba3bd686c Reviewed-on: https://boringssl-review.googlesource.com/2801 Reviewed-by: Adam Langley <agl@google.com>
2014-08-21Convert all zero-argument functions to '(void)'David Benjamin
Otherwise, in C, it becomes a K&R function declaration which doesn't actually type-check the number of arguments. Change-Id: I0731a9fefca46fb1c266bfb1c33d464cf451a22e Reviewed-on: https://boringssl-review.googlesource.com/1582 Reviewed-by: Adam Langley <agl@google.com>
2014-08-01Add a control to disable the Poly1305 NEON code.Adam Langley
Some phones have a buggy NEON unit and the Poly1305 NEON code fails on them, even though other NEON code appears to work fine. This change: 1) Fixes a bug where NEON was assumed even when the code wasn't compiled in NEON mode. 2) Adds a second NEON control bit that can be disabled in order to run NEON code, but not the Poly1305 NEON code. https://code.google.com/p/chromium/issues/detail?id=341598 Change-Id: Icb121bf8dba47c7a46c7667f676ff7a4bc973625 Reviewed-on: https://boringssl-review.googlesource.com/1351 Reviewed-by: Adam Langley <agl@google.com>
2014-06-21Inital import.Adam Langley
Initial fork from f2d678e6e89b6508147086610e985d4e8416e867 (1.0.2 beta). (This change contains substantial changes from the original and effectively starts a new history.)