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-16Remove DH EVP_PKEY hooks.David Benjamin
They would never work. Better notice when callers depend on it than fail at runtime. This depends on https://android-review.googlesource.com/#/c/183610/ in Conscrypt. Change-Id: I3411f291416df834cf85850890617625a2e76939 Reviewed-on: https://boringssl-review.googlesource.com/6552 Reviewed-by: Adam Langley <agl@google.com>
2015-12-15Add |EC_GROUP_get0_order| to replace |EC_GROUP_get_order|.Brian Smith
|EC_GROUP_get0_order| doesn't require any heap allocations and never fails, so it is much more convenient and more efficient for callers to call. Change-Id: Ic60f768875e7bc8e74362dacdb5cbbc6957b05a6 Reviewed-on: https://boringssl-review.googlesource.com/6532 Reviewed-by: Adam Langley <agl@google.com>
2015-12-03Add PSS parameter check.David Benjamin
Avoid seg fault by checking mgf1 parameter is not NULL. This can be triggered during certificate verification so could be a DoS attack against a client or a server enabling client authentication. Thanks to Loïc Jonas Etienne (Qnective AG) for discovering this bug. CVE-2015-3194 (Imported from upstream's c394a488942387246653833359a5c94b5832674e and test data from 00456fded43eadd4bb94bf675ae4ea5d158a764f.) Change-Id: Ic97059d42722fd810973ccb0c26c415c4eaae79a Reviewed-on: https://boringssl-review.googlesource.com/6617 Reviewed-by: Adam Langley <agl@google.com>
2015-12-03Fix leak with ASN.1 combine.David Benjamin
When parsing a combined structure pass a flag to the decode routine so on error a pointer to the parent structure is not zeroed as this will leak any additional components in the parent. This can leak memory in any application parsing PKCS#7 or CMS structures. CVE-2015-3195. Thanks to Adam Langley (Google/BoringSSL) for discovering this bug using libFuzzer. PR#4131 (Imported from upstream's cc598f321fbac9c04da5766243ed55d55948637d, with test from our original report. Verified ASan trips up on the test without the fix.) Change-Id: I007d93f172b2f16bf6845d685d72717ed840276c Reviewed-on: https://boringssl-review.googlesource.com/6615 Reviewed-by: Adam Langley <agl@google.com>
2015-11-21Add get0 getters for EVP_PKEY.David Benjamin
Right now your options are: - Bounce on a reference and deal with cleanup needlessly. - Manually check the type tag and peek into the union. We probably have no hope of opaquifying this struct, but for new code, let's recommend using this function rather than the more error-prone thing. Change-Id: I9b39ff95fe4264a3f7d1e0d2894db337aa968f6c Reviewed-on: https://boringssl-review.googlesource.com/6551 Reviewed-by: Adam Langley <agl@google.com>
2015-11-12Become partially -Wmissing-variable-declarations-clean.David Benjamin
There's a few things that will be kind of a nuisance and possibly not worth it (crypto/asn1 dumps a lot of undeclared things, etc.). But it caught some mistakes. Even without the warning, making sure to include the externs before defining a function helps catch type mismatches. Change-Id: I3dab282aaba6023e7cebc94ed7a767a5d7446b08 Reviewed-on: https://boringssl-review.googlesource.com/6484 Reviewed-by: Adam Langley <agl@google.com>
2015-11-12Remove stl_compat.h.David Benjamin
Chromium's toolchains may now assume C++11 library support, so we may freely use C++11 features. (Chromium's still in the process of deciding what to allow, but we use Google's style guide directly, toolchain limitations aside.) Change-Id: I1c7feb92b7f5f51d9091a4c686649fb574ac138d Reviewed-on: https://boringssl-review.googlesource.com/6465 Reviewed-by: Adam Langley <agl@google.com>
2015-10-31Fix several warnings that arise in Android.Adam Langley
Android is now using Ninja so it doesn't spew so much to the terminal and thus any warnings in BoringSSL (which builds really early in the process) and much more obvious. Thus this change fixes a few warnings that appear in the Android build. Change-Id: Id255ace90fece772a1c3a718c877559ce920b960 Reviewed-on: https://boringssl-review.googlesource.com/6400 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2015-10-27Don't default to SHA-1 in |EVP_DigestSignInit|/|EVP_DigestVerifyInit|.Brian Smith
This removes a hard link-time dependency on the SHA-1 code. The code was self-contradictory in whether it defaulted to SHA-1 or refused to default to SHA-1. Change-Id: I5ad7949bdd529df568904f87870313e3d8a57e72 Reviewed-on: https://boringssl-review.googlesource.com/5833 Reviewed-by: Adam Langley <alangley@gmail.com>
2015-10-26Add a run_tests target to run all tests.David Benjamin
It's very annoying having to remember the right incant every time I want to switch around between my build, build-release, build-asan, etc., output directories. Unfortunately, this target is pretty unfriendly without CMake 3.2+ (and Ninja 1.5+). This combination gives a USES_TERMINAL flag to add_custom_target which uses Ninja's "console" pool, otherwise the output buffering gets in the way. Ubuntu LTS is still on an older CMake, so do a version check in the meantime. CMake also has its own test mechanism (CTest), but this doesn't use it. It seems to prefer knowing what all the tests are and then tries to do its own output management and parallelizing and such. We already have our own runners. all_tests.go could actually be converted tidily, but generate_build_files.py also needs to read it, and runner.go has very specific needs. Naming the target ninja -C build test would be nice, but CTest squats that name and CMake grumps when you use a reserved name, so I've gone with run_tests. Change-Id: Ibd20ebd50febe1b4e91bb19921f3bbbd9fbcf66c Reviewed-on: https://boringssl-review.googlesource.com/6270 Reviewed-by: Adam Langley <alangley@gmail.com>
2015-10-13Reject iterations=0 when calling PKCS5_PBKDF2_HMAC().Eric Roman
BUG=https://crbug.com/534961 Change-Id: I69e2434bf8d5564711863c393ee3bafe3763cf24 Reviewed-on: https://boringssl-review.googlesource.com/5932 Reviewed-by: Adam Langley <agl@google.com>
2015-09-29Add various tests for d2i_PrivateKey.David Benjamin
Change-Id: I030022c240d17df08cf6f59eede0e94373152c40 Reviewed-on: https://boringssl-review.googlesource.com/5950 Reviewed-by: Adam Langley <agl@google.com>
2015-09-29Defensively avoid assuming d2i functions don't advance on error.David Benjamin
Although the previous commit should ensure this doesn't happen, the uint8_t** pattern is very error-prone and we're trying to avoid doing much to the legacy ASN.1 stack. To that end, maintaining the strong exception guarantee w.r.t. the input pointer-pointer is best effort and we won't rely on it, so we needn't spend our time chasing down problems. Change-Id: Ib78974eb94377fe0b0b379f57d9695dc81f344bb Reviewed-on: https://boringssl-review.googlesource.com/5949 Reviewed-by: Adam Langley <agl@google.com>
2015-09-29d2i: don't update input pointer on failureDavid Benjamin
(Imported from upstream's 728bcd59d3d41e152aead0d15acc51a8958536d3.) Actually this one was reported by us, but the commit message doesn't mention this. This is slightly modified from upstream's version to fix some problems noticed in import. Specifically one of d2i_X509_AUX's success paths is bust and d2i_PrivateKey still updates on one error path. Resolve the latter by changing both it and d2i_AutoPrivateKey to explicitly hit the error path on ret == NULL. This lets us remove the NULL check in d2i_AutoPrivateKey. We'll want to report the problems back upstream. Change-Id: Ifcfc965ca6d5ec0a08ac154854bd351cafbaba25 Reviewed-on: https://boringssl-review.googlesource.com/5948 Reviewed-by: Adam Langley <agl@google.com>
2015-09-23Work around even more Estonian ID card misissuances.David Benjamin
Not content with signing negative RSA moduli, still other Estonian IDs have too many leading zeros. Work around those too. This workaround will be removed in six months. BUG=534766 Change-Id: Ica23b1b1499f9dbe39e94cf7b540900860e8e135 Reviewed-on: https://boringssl-review.googlesource.com/5980 Reviewed-by: Adam Langley <agl@google.com>
2015-09-18Update the Estonian workaround comments.David Benjamin
Target date for removal of the workaround is 6 months. BUG=532048 Change-Id: I402f75e46736936725575559cd8eb194115ab0df Reviewed-on: https://boringssl-review.googlesource.com/5910 Reviewed-by: Adam Langley <agl@google.com>
2015-09-16Remove superfluous SHA-1 dependency from EVP ECDSA code.Brian Smith
The documentation for |ECDSA_sign| and |ECDSA_verify| says that the |type| parameter should be zero. Change-Id: I875d3405455c5443f5a5a5c2960a9a9f486ca5bb Reviewed-on: https://boringssl-review.googlesource.com/5832 Reviewed-by: Adam Langley <agl@google.com>
2015-09-16Work around broken Estonian smart cards. Again.David Benjamin
Estonian IDs issued between September 2014 to September 2015 are broken and use negative moduli. They last five years and are common enough that we need to work around this bug. Add parallel "buggy" versions of BN_cbs2unsigned and RSA_parse_public_key which tolerate this mistake, to align with OpenSSL's previous behavior. This code is currently hooked up to rsa_pub_decode in RSA_ASN1_METHOD so that d2i_X509 is tolerant. (This isn't a huge deal as the rest of that stack still uses the legacy ASN.1 code which is overly lenient in many other ways.) In future, when Chromium isn't using crypto/x509 and has more unified certificate handling code, we can put client certificates under a slightly different codepath, so this needn't hold for all certificates forever. Then in September 2019, when the broken Estonian certificates all expire, we can purge this codepath altogether. BUG=532048 Change-Id: Iadb245048c71dba2eec45dd066c4a6e077140751 Reviewed-on: https://boringssl-review.googlesource.com/5894 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-21Recognize PEM-encoded DSA private keys.Matt Braithwaite
This change makes |EVP_PKEY_asn1_find_str|, which is used by |PEM_read_bio_PrivateKey|, recognize "DSA" as well as "EC" and "RSA". Change-Id: I39cce12f600cec6a71df75312a41f8395429af62 Reviewed-on: https://boringssl-review.googlesource.com/5743 Reviewed-by: Adam Langley <agl@google.com>
2015-08-07Fix warning about unused |EVP_PKEY_METHOD.ctrl_str|.Brian Smith
Some compilers in some configurations warn about this structure member not being assigned a value. Since it is never used anywhere, just remove it. Change-Id: I46064234961bf449fe5fcb88594ddb3ff390e7d7 Reviewed-on: https://boringssl-review.googlesource.com/5621 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2015-08-06Fix Windows build.Brian Smith
When using CMake to build with MSVC, MSVC complains about unreachable code in the <xtree> header. This incantation silences that. Change-Id: I5fc5305dc816a009a4c59501b212fd11e290637d Reviewed-on: https://boringssl-review.googlesource.com/5552 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2015-08-01RT3774: double-free in DSADavid Benjamin
(Imported from upstream's 374fd385c2347b965c3490aa1c10025e1339d265.) This codepath is only reachable on malloc failure if putting DSA private keys into a PKCS#8 PrivateKeyInfo. Change-Id: I88052eab3f477c4cdf5749be525878278d966a69 Reviewed-on: https://boringssl-review.googlesource.com/5543 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-07-16Get rid of err function codes.David Benjamin
Running make_errors.go every time a function is renamed is incredibly tedious. Plus we keep getting them wrong. Instead, sample __func__ (__FUNCTION__ in MSVC) in the OPENSSL_PUT_ERROR macro and store it alongside file and line number. This doesn't change the format of ERR_print_errors, however ERR_error_string_n now uses the placeholder "OPENSSL_internal" rather than an actual function name since that only takes the uint32_t packed error code as input. This updates err scripts to not emit the function string table. The OPENSSL_PUT_ERROR invocations, for now, still include the extra parameter. That will be removed in a follow-up. BUG=468039 Change-Id: Iaa2ef56991fb58892fa8a1283b3b8b995fbb308d Reviewed-on: https://boringssl-review.googlesource.com/5275 Reviewed-by: Adam Langley <agl@google.com>
2015-07-14Rename crypto/{bn,evp}/asn1.c.David Benjamin
gyp doesn't allow two files to share the same name to avoid bugs in OS X libtool, so asn1.c's need to all get a prefix. Change-Id: I3593597912c49dd02655cae329fb253ed4f6f56d Reviewed-on: https://boringssl-review.googlesource.com/5431 Reviewed-by: Adam Langley <agl@google.com>
2015-07-08Parse RSAPrivateKey with CBS.David Benjamin
This removes the version field from RSA and instead handles versioning as part of parsing. (As a bonus, we now correctly limit multi-prime RSA to version 1 keys.) Most consumers are also converted. old_rsa_priv_{de,en}code are left alone for now. Those hooks are passed in parameters which match the old d2i/i2d pattern (they're only used in d2i_PrivateKey and i2d_PrivateKey). Include a test which, among other things, checks that public keys being serialized as private keys are handled properly. BUG=499653 Change-Id: Icdd5f0382c4a84f9c8867024f29756e1a306ba08 Reviewed-on: https://boringssl-review.googlesource.com/5273 Reviewed-by: Adam Langley <agl@google.com>
2015-07-08Parse RSAPublicKey with CBS.David Benjamin
BUG=499653 Change-Id: If5d98ed23e65a84f9f0e303024f91cce078f3d18 Reviewed-on: https://boringssl-review.googlesource.com/5272 Reviewed-by: Adam Langley <agl@google.com>
2015-07-07PKCS8_pkey_set0 doesn't take ownership on error.David Benjamin
It carefully NULLs all references to the buffer, so the failure cases still need to call OPENSSL_free. Change-Id: Ia14341ecea81296f94e467325ab6eff1362e987e Reviewed-on: https://boringssl-review.googlesource.com/5271 Reviewed-by: Adam Langley <agl@google.com>
2015-07-07Implement ECDSA_SIG_{parse,marshal} with crypto/bytestring.David Benjamin
This is the first structure to be implemented with the new BIGNUM ASN.1 routines. Object reuse in the legacy d2i/i2d functions is implemented by releasing whatever was in *out before and setting it to the newly-allocated object. As with the new d2i_SSL_SESSION, this is a weaker form of object reuse, but should suffice for reasonable callers. As ECDSA_SIG is more likely to be parsed alone than as part of another structure (and using CBB is slightly tedious), add convenient functions which take byte arrays. For consistency with SSL_SESSION, they are named to/from_bytes. from_bytes, unlike the CBS variant, rejects trailing data. Note this changes some test expectations: BER signatures now push an error code. That they didn't do this was probably a mistake. BUG=499653 Change-Id: I9ec74db53e70d9a989412cc9e2b599be0454caec Reviewed-on: https://boringssl-review.googlesource.com/5269 Reviewed-by: Adam Langley <agl@google.com>
2015-07-07Make pem_str const-correct.David Benjamin
They're always constant literals. Change-Id: I8acaaf2a8c95b02bc8b9b13740ce40044a483394 Reviewed-on: https://boringssl-review.googlesource.com/5346 Reviewed-by: Adam Langley <agl@google.com>
2015-07-07Remove info field on EVP_PKEY_ASN1_METHOD.David Benjamin
Nothing ever reads it. Change-Id: Id375c461aa2feb6877a14e19eb2daefec7a03f89 Reviewed-on: https://boringssl-review.googlesource.com/5345 Reviewed-by: Adam Langley <agl@google.com>
2015-07-02Remove EVP_PKEY_dup.David Benjamin
All callers have been moved to EVP_PKEY_up_ref. (Neither spelling exists upstream so we only had our own callers to move.) Change-Id: I267f14054780fe3d6dc1170b7b6ae3811a0d1a9a Reviewed-on: https://boringssl-review.googlesource.com/5291 Reviewed-by: Adam Langley <agl@google.com>
2015-06-25Remove EVP_PKEY_HMAC.David Benjamin
This removes EVP_PKEY_HMAC and all the support code around it. EVP_MD requires a lot of extra glue to support HMAC. This lets us prune it all away. As a bonus, it removes a (minor) dependency from EVP to the legacy ASN.1 stack. Change-Id: I5a9e3e39f518429828dbf13d14647fb37d9dc35a Reviewed-on: https://boringssl-review.googlesource.com/5120 Reviewed-by: Adam Langley <agl@google.com>
2015-06-23dsa_pub_encode: Write out DSA parameters (p, q, g) in addition to key.Matt Braithwaite
Change-Id: Id5ea49fc43aacfd1d348b2a230c9745484bed852 Reviewed-on: https://boringssl-review.googlesource.com/5174 Reviewed-by: Adam Langley <agl@google.com>
2015-06-05Multi-prime RSA support.Adam Langley
RSA with more than two primes is specified in https://tools.ietf.org/html/rfc3447, although the idea goes back far earier than that. This change ports some of the changes in http://rt.openssl.org/Ticket/Display.html?id=3477&user=guest&pass=guest to BoringSSL—specifically those bits that are under an OpenSSL license. Change-Id: I51e8e345e2148702b8ce12e00518f6ef4683d3e1 Reviewed-on: https://boringssl-review.googlesource.com/4870 Reviewed-by: Adam Langley <agl@google.com>
2015-06-02Unexport and prune EVP_MD_CTX flags.David Benjamin
The only flag is EVP_MD_CTX_FLAG_NO_INIT and no good can possibly come of anyone outside EVP_PKEY_HMAC calling it. (And indeed no one calls it. EVP_MD_CTX_set_flags has a caller in wpa_supplicant, but it uses EVP_MD_CTX_FLAG_NON_FIPS_ALLOW which we don't define. The call is guarded by a pair of ifdefs for some FIPS mode wpa_supplicant.) Change-Id: I70ab8ffa646f3f75dfa4d37c96b9e82448ff1e40 Reviewed-on: https://boringssl-review.googlesource.com/4971 Reviewed-by: Adam Langley <agl@google.com>
2015-06-02Remove HMAC_CTX_set_flags.David Benjamin
It's never called externally and for good reason; the only flag to set is EVP_MD_CTX_FLAG_NO_INIT which is an implementation detail of EVP_PKEY_HMAC (hopefully to be removed eventually). Indeed, only EVP_PKEY_HMAC ever calls this function. Except there's no need to because the HMAC_CTX has already been initialized at that point. (And were it not initialized, that call would not bode well for the poor HMAC_CTX.) The legacy EVP_PKEY_HMAC API has test coverage and still works after this change. Change-Id: I2fb0bede3c24ad1519f9433f957606de15ba86c7 Reviewed-on: https://boringssl-review.googlesource.com/4970 Reviewed-by: Adam Langley <agl@google.com>
2015-06-02EVP_Digest*Update, EVP_DigestFinal, and HMAC_Update can never fail.David Benjamin
Enough code fails to check their return codes anyway. We ought to make it official. Change-Id: Ie646360fd7073ea943036f5e21bed13df7e1b77a Reviewed-on: https://boringssl-review.googlesource.com/4954 Reviewed-by: Adam Langley <agl@google.com>
2015-05-22Do-nothing fns |OpenSSL_add_all_ciphers| and |OpenSSL_add_all_digests|.Matt Braithwaite
Change-Id: Ied2338f84e03ee1736152b82096335b78a256ca4 Reviewed-on: https://boringssl-review.googlesource.com/4850 Reviewed-by: Adam Langley <agl@google.com>
2015-05-21Add malloc test support to unit tests.David Benjamin
Currently far from passing and I haven't even tried with a leak checker yet. Also bn_test is slow. Change-Id: I4fe2783aa5f7897839ca846062ae7e4a367d2469 Reviewed-on: https://boringssl-review.googlesource.com/4794 Reviewed-by: Adam Langley <agl@google.com>
2015-05-20Convert reference counts in crypto/Adam Langley
This change converts the reference counts in crypto/ to use |CRYPTO_refcount_t|. The reference counts in |X509_PKEY| and |X509_INFO| were never actually used and so were dropped. Change-Id: I75d572cdac1f8c1083c482e29c9519282d7fd16c Reviewed-on: https://boringssl-review.googlesource.com/4772 Reviewed-by: Adam Langley <agl@google.com>
2015-05-12Add evp_test, loosely based on upstream's version.David Benjamin
This imports the EVP_PKEY test data of upstream's evptests.txt, but modified to fit our test framework and with a new test driver. The remainder of the test data will be imported separately into aead_test and cipher_test. Some minor changes to the test format were made to account for test framework differences. One test has different results since we don't support RSA signatures with omitted (rather than NULL) parameters. Otherwise, the biggest difference in test format is that the ad-hoc result strings are replaced with checking ERR_peek_error. Change-Id: I758869abbeb843f5f2ac6c1cbd87333baec08ec3 Reviewed-on: https://boringssl-review.googlesource.com/4703 Reviewed-by: Adam Langley <agl@google.com>
2015-05-12Rename evp_test to evp_extra_test.David Benjamin
This matches how upstream imported that test. evp_test will be used for the subset of upstream's evp_test which land in our crypto/evp layer. (Some of crypto/evp is in crypto/cipher for us, so those tests will be in a ported cipher_test.) Change-Id: Ic899442794b66350e73a706bb7c77a6ff3d2564b Reviewed-on: https://boringssl-review.googlesource.com/4702 Reviewed-by: Adam Langley <agl@google.com>
2015-05-09Don't report |ERR_R_MALLOC_FAILURE| on failure of |EC_KEY_new_by_curve_name|.Matt Braithwaite
Change |EC_KEY_new_by_curve_name| to report |ERR_R_MALLOC_FAILURE| itself, so that reporting of |EC_R_UNKNOWN_GROUP| is not confused by the caller's addition of a spurious |ERR_R_MALLOC_FAILURE|. Change-Id: Id3f5364f01eb8e3597bcddd6484bc03d5578befb Reviewed-on: https://boringssl-review.googlesource.com/4690 Reviewed-by: Adam Langley <agl@google.com>
2015-05-07Switch EVP_PKEY_dup calls to EVP_PKEY_up_ref.David Benjamin
Keep internal callers up-to-date with deprecations. Change-Id: I7ee171afc669592d170f83bd4064857d59332878 Reviewed-on: https://boringssl-review.googlesource.com/4640 Reviewed-by: Adam Langley <agl@google.com>
2015-05-07Fix EVP_PKEY_assign_DH.David Benjamin
Or rather fix in so far as that call will always fail now, rather than mix up EC and DH EVP_PKEY. We don't implement EVP_PKEY_DH. Change-Id: I752978f3440b59d963b5c13f2349284d7d799182 Reviewed-on: https://boringssl-review.googlesource.com/4567 Reviewed-by: Adam Langley <agl@google.com>
2015-05-05Add |BIO_up_ref| and |EVP_PKEY_up_ref|.Adam Langley
This avoids callers having to worry about |CRYPTO_add| and what the correct lock to use it with is. (Esp since we'll probably change the way that reference counts work in the future.) Change-Id: I972bf0cc3be6099e0255e64a0fd50249062d1eb4 Reviewed-on: https://boringssl-review.googlesource.com/4623 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-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>