-
agl@chromium.org authored
This roll brings in the changes below. Most importantly it includes a change that enables dynamic visibility in the same way as normal Chromium components. BUG=398965 commit 533cbee57eec77268ef9f53c4039ec753240fb37 Author: Adam Langley <agl@chromium.org> Date: Fri Aug 1 10:33:29 2014 -0700 Also export some deprecated functions. I didn't mark these functions as OPENSSL_EXPORT in the first place because I was hoping that they wouldn't be needed. However, WebRTC and libjingle are using them. Change-Id: I7a9de770a0a2213e99725b9b5ac7d3d13754ebfd commit e216d6bb9f9139656e1d0c6b6312787fc2e596f9 Author: David Benjamin <davidben@chromium.org> Date: Thu Jul 31 13:59:47 2014 -0400 Add PKCS8_{decrypt,encrypt}_pbe. The original functions do an ascii_to_ucs2 transformation on the password. Deprecate them in favor of making that encoding the caller's problem. ascii_to_ucs2 doesn't handle, say, UTF-8 anyway. And with the original OpenSSL function, some ciphers would do the transformation, and some wouldn't making the text-string/bytes-string confusion even messier. BUG=399121 Change-Id: I7d1cea20a260f21eec2e8ffb7cd6be239fe92873 Reviewed-on: https://boringssl-review.googlesource.com/1347Reviewed-by:
Adam Langley <agl@google.com> commit cf052cf7328478d46c78dc67dd4f5ac44db02c20 Author: Adam Langley <agl@chromium.org> Date: Thu Jul 31 18:46:35 2014 -0700 Fix build for PNaCl. PNaCl builds BoringSSL with OPENSSL_NO_ASM, but the new OPENSSL_cleanse was using inline assembly anyway. It appears that even though the inline asm was empty, it still breaks the PNaCl build: disallowed: inline assembly: call void asm sideeffect "", "r,~{memory}"(i8* %.asptr319), !dbg !96986 With this change, we don't have any compiler scarecrows for OPENSSL_cleanse any longer when using OPENSSL_NO_ASM :( Maybe, one day, we'll get memset_s in our base platform. Change-Id: Ia359f6bcc2000be18a6f15de10fc683452151741 Reviewed-on: https://boringssl-review.googlesource.com/1353Reviewed-by:
David Benjamin <davidben@chromium.org> Reviewed-by:
Adam Langley <agl@google.com> commit 581a17f5c874758ec60c1256423c15842edc68f2 Author: Adam Langley <agl@chromium.org> Date: Thu Jul 31 19:24:57 2014 -0700 Fix typo from eb7d2ed1. The RC4_set_key was calling itself rather than the asm function that it should be calling. Change-Id: Idfc730c8a651540961e05bc8c8f663a44713f680 commit 31ebde9e5e7573f70e132e63abf65036688b46ec Author: Adam Langley <agl@chromium.org> Date: Thu Jul 31 12:16:48 2014 -0700 Add a control to disable the Poly1305 NEON code. 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/1351Reviewed-by:
Adam Langley <agl@google.com> commit eb7d2ed1fe8a33b3e3871502ba7e12efaf94360c Author: Adam Langley <agl@chromium.org> Date: Wed Jul 30 16:02:14 2014 -0700 Add visibility rules. This change marks public symbols as dynamically exported. This means that it becomes viable to build a shared library of libcrypto and libssl with -fvisibility=hidden. On Windows, one not only needs to mark functions for export in a component, but also for import when using them from a different component. Because of this we have to build with |BORINGSSL_IMPLEMENTATION| defined when building the code. Other components, when including our headers, won't have that defined and then the |OPENSSL_EXPORT| tag becomes an import tag instead. See the #defines in base.h In the asm code, symbols are now hidden by default and those that need to be exported are wrapped by a C function. In order to support Chromium, a couple of libssl functions were moved to ssl.h from ssl_locl.h: ssl_get_new_session and ssl_update_cache. Change-Id: Ib4b76e2f1983ee066e7806c24721e8626d08a261 Reviewed-on: https://boringssl-review.googlesource.com/1350Reviewed-by:
Adam Langley <agl@google.com> commit 60d4c0e81042e4c014f38575a72c4befded62eef Author: Piotr Sikora <piotr@cloudflare.com> Date: Thu Jul 31 03:13:13 2014 -0700 Fix "type qualifiers ignored on function return type" errors. Change-Id: If0dbbadb33a073b4faee500fdff900a5094ec889 Signed-off-by:
Piotr Sikora <piotr@cloudflare.com> Reviewed-on: https://boringssl-review.googlesource.com/1362Reviewed-by:
Adam Langley <agl@google.com> commit 1d8adf18d20a4d65150af62159ab631d847e869a Author: Piotr Sikora <piotr@cloudflare.com> Date: Thu Jul 31 03:09:49 2014 -0700 Fix CPU architecture detection on BSDs. CMake calls "uname" in order to detect the CPU architecture, so $(CMAKE_SYSTEM_PROCESSOR) varies from platform to platform. This changes adds support for "i386" and "amd64" values, which are used by BSDs for the x86 family of CPUs. Change-Id: I532ce787a9ac06220c92a6d8c78ad5a55d8c40bf Signed-off-by:
Piotr Sikora <piotr@cloudflare.com> Reviewed-on: https://boringssl-review.googlesource.com/1360Reviewed-by:
Adam Langley <agl@google.com> commit ad1907fe73334d6c696c8539646c21b11178f20f Author: Adam Langley <agl@chromium.org> Date: Wed Jul 30 11:55:17 2014 -0700 Use asm directives to protect OPENSSL_cleanse. Compilers have a bad habit of removing "superfluous" memset calls that are trying to zero memory. For example, when memset()ing a buffer and then free()ing it, the compiler might decide that the memset is unobservable and thus can be removed. Previously we tried to stop this by a) implementing memset in assembly on x86 and b) putting the function in its own file for other platforms. This change removes those tricks in favour of using asm directives to scare the compiler away. As best as our compiler folks can tell, this is sufficient and will continue to be so. Change-Id: I40e0a62c3043038bafd8c63a91814a75a3c59269 Reviewed-on: https://boringssl-review.googlesource.com/1339Reviewed-by:
David Benjamin <davidben@chromium.org> Reviewed-by:
Adam Langley <agl@google.com> Review URL: https://codereview.chromium.org/428753004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287177 0039d316-1c4b-4281-b951-d872f2087c98
5d5a51c5