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-12-16Skip free callbacks on empty CRYPTO_EX_DATAs.David Benjamin
Avoids bouncing on the lock, but it doesn't really matter since it's all taking read locks. If we're declaring that callbacks don't get to see every object being created, they shouldn't see every object being destroyed. CRYPTO_dup_ex_data also already had this optimization, though it wasn't documented. BUG=391192 Change-Id: I5b8282335112bca3850a7c0168f8bd7f7d4a2d57 Reviewed-on: https://boringssl-review.googlesource.com/6626 Reviewed-by: Adam Langley <agl@google.com>
2015-12-16Remove the CRYPTO_EX_new callback.David Benjamin
This callback is never used. The one caller I've ever seen is in Android code which isn't built with BoringSSL and it was a no-op. It also doesn't actually make much sense. A callback cannot reasonably assume that it sees every, say, SSL_CTX created because the index may be registered after the first SSL_CTX is created. Nor is there any point in an EX_DATA consumer in one file knowing about an SSL_CTX created in completely unrelated code. Replace all the pointers with a typedef to int*. This will ensure code which passes NULL or 0 continues to compile while breaking code which passes an actual function. This simplifies some object creation functions which now needn't worry about CRYPTO_new_ex_data failing. (Also avoids bouncing on the lock, but it's taking a read lock, so this doesn't really matter.) BUG=391192 Change-Id: I02893883c6fa8693682075b7b130aa538a0a1437 Reviewed-on: https://boringssl-review.googlesource.com/6625 Reviewed-by: Adam Langley <agl@google.com>
2015-07-20Reserve ex_data index zero for app_data.David Benjamin
In the ancient times, before ex_data and OpenSSL, SSLeay supported a single app_data slot in various types. Later app_data begat ex_data, and app_data was replaced by compatibility macros to ex_data index zero. Today, app_data is still in use, but ex_data never reserved index zero for app_data. This causes some danger where, if the first ex_data registration did not use NULL callbacks, the registration's callbacks would collide with app_data. Instead, add an option to the types with app_data to reserve index zero. Also switch SSL_get_ex_data_X509_STORE_CTX_idx to always return zero rather than allocate a new one. It used to be that you used X509_STORE_CTX_get_app_data. I only found one consumer that we probably don't care about, but, to be safe and since it's easy, go with the conservative option. (Although SSL_get_ex_data_X509_STORE_CTX_idx wasn't guaranteed to alias app_data, in practice it always did. No consumer ever calls X509_STORE_CTX_get_ex_new_index.) Change-Id: Ie75b279d60aefd003ffef103f99021c5d696a5e9 Reviewed-on: https://boringssl-review.googlesource.com/5313 Reviewed-by: Adam Langley <agl@google.com>
2015-07-16Remove the func parameter to OPENSSL_PUT_ERROR.David Benjamin
Much of this was done automatically with find . -name '*.c' | xargs sed -E -i '' -e 's/(OPENSSL_PUT_ERROR\([a-zA-Z_0-9]+, )[a-zA-Z_0-9]+, ([a-zA-Z_0-9]+\);)/\1\2/' find . -name '*.c' | xargs sed -E -i '' -e 's/(OPENSSL_PUT_ERROR\([a-zA-Z_0-9]+, )[a-zA-Z_0-9]+, ([a-zA-Z_0-9]+\);)/\1\2/' BUG=468039 Change-Id: I4c75fd95dff85ab1d4a546b05e6aed1aeeb499d8 Reviewed-on: https://boringssl-review.googlesource.com/5276 Reviewed-by: Adam Langley <agl@google.com>
2015-05-05Remove unnecessary NULL checks, part 3.David Benjamin
Finish up the e's. Change-Id: Iabb8da000fbca6efee541edb469b90896f60d54b Reviewed-on: https://boringssl-review.googlesource.com/4516 Reviewed-by: Adam Langley <agl@google.com>
2015-04-16Remove hash table lookups from ex_data.David Benjamin
Instead, each module defines a static CRYPTO_EX_DATA_CLASS to hold the values. This makes CRYPTO_cleanup_all_ex_data a no-op as spreading the CRYPTO_EX_DATA_CLASSes across modules (and across crypto and ssl) makes cleanup slightly trickier. We can make it do something if needbe, but it's probably not worth the trouble. Change-Id: Ib6f6fd39a51d8ba88649f0fa29c66db540610c76 Reviewed-on: https://boringssl-review.googlesource.com/4375 Reviewed-by: Adam Langley <agl@google.com>
2015-04-16Remove CRYPTO_ex_data_new_class.David Benjamin
It's unused and requires ex_data support a class number per type. Change-Id: Ie1fb55053631ef00c3318f3253f7c9501988f522 Reviewed-on: https://boringssl-review.googlesource.com/4371 Reviewed-by: Adam Langley <agl@google.com>
2015-04-16Remove the ability to set custom ex_data implementations.David Benjamin
This is never used and we can make the built-in one performant. Change-Id: I6fc7639ba852349933789e73762bc3fa1341b2ff Reviewed-on: https://boringssl-review.googlesource.com/4370 Reviewed-by: Adam Langley <agl@google.com>
2015-04-14ex_data: convert to new-style locking.Adam Langley
Change-Id: Id81f986f433805837b58a6ddd13ec146ff62c30b Reviewed-on: https://boringssl-review.googlesource.com/4323 Reviewed-by: Adam Langley <agl@google.com>
2015-04-13Eliminate unnecessary includes from low-level crypto modules.Brian Smith
Beyond generally eliminating unnecessary includes, eliminate as many includes of headers that declare/define particularly error-prone functionality like strlen, malloc, and free. crypto/err/internal.h was added to remove the dependency on openssl/thread.h from the public openssl/err.h header. The include of <stdlib.h> in openssl/mem.h was retained since it defines OPENSSL_malloc and friends as macros around the stdlib.h functions. The public x509.h, x509v3.h, and ssl.h headers were not changed in order to minimize breakage of source compatibility with external code. Change-Id: I0d264b73ad0a720587774430b2ab8f8275960329 Reviewed-on: https://boringssl-review.googlesource.com/4220 Reviewed-by: Adam Langley <agl@google.com>
2014-10-01Don't compare signed vs. unsigned.David Benjamin
This resolves a pile of MSVC warnings in Chromium. Change-Id: Ib9a29cb88d8ed8ec4118d153260f775be059a803 Reviewed-on: https://boringssl-review.googlesource.com/1865 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-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.)