boringssl/crypto
Adam Langley ad1907fe73 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/1339
Reviewed-by: David Benjamin <davidben@chromium.org>
Reviewed-by: Adam Langley <agl@google.com>
2014-07-31 18:49:22 +00:00
..
aes Don't mark AES_set_{en|de}crypt_key arg as const. 2014-07-30 18:19:02 +00:00
asn1 ASN1 sanity check. 2014-07-28 17:05:13 -07:00
base64 Document that EVP_EncodeBlock writes a trailing NUL. 2014-07-18 00:55:18 +00:00
bio Have BIO_get_mem_data return a size_t and uint8_t* 2014-07-18 17:22:05 +00:00
bn A bunch of dead assignments. 2014-07-30 00:44:03 +00:00
buf Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
bytestring Port ssl3_get_client_hello to CBS. 2014-07-15 18:30:09 +00:00
chacha Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
cipher Fix copy in AES-KW. 2014-07-29 19:44:50 -07:00
conf Prevent infinite loop loading config files. 2014-07-28 17:05:13 -07:00
des A bunch of dead assignments. 2014-07-30 00:44:03 +00:00
dh Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
digest Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
dsa Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
ec "EC_POINT_invert" was checking "dbl" function pointer instead of "invert". 2014-07-28 17:05:14 -07:00
ecdh Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
ecdsa Align EVP return values with BoringSSL convention. 2014-07-29 21:47:51 +00:00
engine Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
err Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
evp Align EVP return values with BoringSSL convention. 2014-07-29 21:47:51 +00:00
hmac Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
lhash Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
md5 Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
modes x86_64 assembly pack: improve masm support. 2014-07-28 17:05:13 -07:00
obj Fix OID encoding for one component. 2014-07-28 17:05:12 -07:00
pem Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
perlasm x86_64 assembly pack: improve masm support. 2014-07-28 17:05:13 -07:00
pkcs8 Memory leak and NULL dereference fixes. 2014-07-28 17:05:12 -07:00
poly1305 Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
rand Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
rc4 Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
rsa Fix error-handling bugs. 2014-07-30 00:34:55 +00:00
sha sha512-x86_64.pl: fix linking problem under Windows. 2014-07-28 17:05:13 -07:00
stack Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
x509 Fix error-handling bugs. 2014-07-30 00:34:55 +00:00
x509v3 Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
arm_arch.h Inital import. 2014-06-20 13:17:32 -07:00
CMakeLists.txt Use asm directives to protect OPENSSL_cleanse. 2014-07-31 18:49:22 +00:00
cpu-arm.c Inital import. 2014-06-20 13:17:32 -07:00
cpu-intel.c Include some build fixes for OS X. 2014-06-24 11:15:12 -07:00
cpu-x86_64-asm.pl Inital import. 2014-06-20 13:17:32 -07:00
cpu-x86-asm.pl Use asm directives to protect OPENSSL_cleanse. 2014-07-31 18:49:22 +00:00
crypto_error.c Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
crypto_error.h Add ISC header to a handful of files. 2014-06-26 10:26:42 -07:00
directory_posix.c Support building with PNaCl. 2014-07-11 19:04:04 +00:00
directory_win.c Inital import. 2014-06-20 13:17:32 -07:00
directory.h Inital import. 2014-06-20 13:17:32 -07:00
ex_data_impl.c Inital import. 2014-06-20 13:17:32 -07:00
ex_data.c Inital import. 2014-06-20 13:17:32 -07:00
header_removed.h Add ISC header to a handful of files. 2014-06-26 10:26:42 -07:00
internal.h Inital import. 2014-06-20 13:17:32 -07:00
mem.c Use asm directives to protect OPENSSL_cleanse. 2014-07-31 18:49:22 +00:00
thread.c Inital import. 2014-06-20 13:17:32 -07:00
time_support.c Support building with PNaCl. 2014-07-11 19:04:04 +00:00