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
path: root/crypto
AgeCommit message (Collapse)Author
2014-07-15Move public headers to include/openssl/Adam Langley
Previously, public headers lived next to the respective code and there were symlinks from include/openssl to them. This doesn't work on Windows. This change moves the headers to live in include/openssl. In cases where some symlinks pointed to the same header, I've added a file that just includes the intended target. These cases are all for backwards-compat. Change-Id: I6e285b74caf621c644b5168a4877db226b07fd92 Reviewed-on: https://boringssl-review.googlesource.com/1180 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2014-07-11Support building with PNaCl.Adam Langley
PNaCl needs OPENSSL_NO_ASM to work and a couple of cases were missing because it hasn't previously been tested. Additionally, it defined _BSD_SOURCE and others on the command line, causing duplicate definition errors when defined in source code. It's missing readdir_r. It uses newlib, which appears to use u_short in socket.h without ever defining it. Change-Id: Ieccfc7365723d0521f6327eebe9f44a2afc57406 Reviewed-on: https://boringssl-review.googlesource.com/1140 Reviewed-by: Adam Langley <agl@google.com>
2014-07-11Add a size hook to RSA_METHOD.David Benjamin
This is to avoid having to copy over the RSA modulus in all of Chromium's platform-specific keys. Change-Id: I20bf22446a5cfb633b900c3b392b7a1da81a5431 Reviewed-on: https://boringssl-review.googlesource.com/1151 Reviewed-by: Adam Langley <agl@google.com>
2014-07-11Fix OPENSSL_PUT_ERROR typos.David Benjamin
Change-Id: Ie4c96643278a09774b324da4b286ceeadef8855b Reviewed-on: https://boringssl-review.googlesource.com/1150 Reviewed-by: Adam Langley <agl@google.com>
2014-07-11Perform bounds checks in hmac_signctx.David Benjamin
Match the other EVP_DigestSignFinal implementations. Fix the instances in ssl/t1_enc.c which were not following the EVP_DigestSignFinal contract; on entry, *out_len should contain the size of the buffer. Change-Id: Icd44d97a4c98704dea975798c0101d5a37274d17 Reviewed-on: https://boringssl-review.googlesource.com/1130 Reviewed-by: Adam Langley <agl@google.com>
2014-07-10Recognise __mips__ as a generic, 32-bit CPU.Adam Langley
Change-Id: I60806486f40c5ac4c8fbb8371b83cb226113f4b5
2014-07-10Fix EVP_PKEY_FLAG_AUTOARGLEN behavior.David Benjamin
Converting check_autoarg from a macro to a function lost the behavior. Instead, just move the logic into p_rsa.c which was the only EVP_PKEY implementation that even needed the flag. Also document this behavior on each of the functions. Make note of the out = NULL case only returning the maximum output size, and not necessarily the actual size. For testing, update example_sign to determine the signature size using the NULL behavior rather than querying the RSA key. Change-Id: Iec6c2862028a5cfdefe8faa0e8c471755070898a Reviewed-on: https://boringssl-review.googlesource.com/1121 Reviewed-by: Adam Langley <agl@google.com>
2014-07-09Switch from rand_r to rand in lhash_test.Adam Langley
Android doesn't support rand_r. Change-Id: Iaea767f64da4f6b83907c20d891811a0023ce530
2014-07-09Add #ifdefs so RSAZ is only built on x86-64.Adam Langley
Change-Id: I5ec6b59e75120029348ce71c76e49a2d6e010913
2014-07-08Remove OPENSSL_NO_RSAAlex Chernyakhovsky
Building without RSA support is unreasonable. Changes were made by running find . -type f -name *.c | xargs unifdef -m -U OPENSSL_NO_RSA find . -type f -name *.h | xargs unifdef -m -U OPENSSL_NO_RSA using unifdef 2.10 and some newlines were removed manually. Change-Id: Iea559e2d4b3d1053f28a4a9cc2f7a3d1f6cabd61 Reviewed-on: https://boringssl-review.googlesource.com/1095 Reviewed-by: Adam Langley <agl@google.com>
2014-07-07Remove CHARSET_EBCDICAlex Chernyakhovsky
Since crypto/ebcdic.{c,h} are not present in BoringSSL, remove the #ifdefs Changes were made by running find . -type f -name *.c | xargs unifdef -m -U CHARSET_EBCDIC find . -type f -name *.h | xargs unifdef -m -U CHARSET_EBCDIC using unifdef 2.10. An additional two ifdefs (CHARSET_EBCDIC_not) were removed manually. Change-Id: Ie174bb00782cc44c63b0f9fab69619b3a9f66d42 Reviewed-on: https://boringssl-review.googlesource.com/1093 Reviewed-by: Adam Langley <agl@google.com>
2014-07-03Typo in EVP_PKEY_asn1_find_str.David Benjamin
Other importing an EC PRIVATE KEY doesn't work. Change-Id: I58b4e88d287cd7fc772a1958df5878ecff1c5b06 Reviewed-on: https://boringssl-review.googlesource.com/1090 Reviewed-by: Adam Langley <agl@google.com>
2014-07-02The asm files bn/asm/x86* weren't actually used.Adam Langley
(This appears to be the case with upstream too, it's not that BoringSSL is missing optimisations from what I can see.) Change-Id: I0e54762ef0d09e60994ec82c5cca1ff0b3b23ea4 Reviewed-on: https://boringssl-review.googlesource.com/1080 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2014-07-02Add ERR_get_next_error_library back.Adam Langley
It was removed in the fork but it turned out to need it. Change-Id: I21030c8d5befecb63f2c40a59963bec1da1d96fb Reviewed-on: https://boringssl-review.googlesource.com/1081 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2014-07-01Add license to charmap.pl.Adam Langley
I have confirmed with Dr. Stephen Henson (the author) that the file is licensed under the OpenSSL license. Change-Id: I97dc4c74b363184e1b36e5835bad684d66696d54
2014-07-01Add stitched RC4-MD5 as an AEAD.Adam Langley
This change adds the stitched RC4-MD5 code from upstream OpenSSL but exposes it as an AEAD. It's not a normal AEAD (it's stateful thus doesn't take an nonce) but forcing pre-AEAD cipher suites in the AEAD interface is less painful than forcing AEADs into the EVP_CIPHER interface. Over time, more and more cipher suites will be exposed as TLS-specific AEADs and then ssl/ can drop support for EVP_CIPHER. See original code from upstream: https://github.com/openssl/openssl/blob/master/crypto/evp/e_rc4_hmac_md5.c Change-Id: Ia9267b224747f02be6b934ea0b2b50e1f529fab9 Reviewed-on: https://boringssl-review.googlesource.com/1043 Reviewed-by: Adam Langley <agl@google.com>
2014-07-01Very minor BN fixes.Adam Langley
Fixes one comment that mentioned the wrong function name. Also causes two BN random functions to fail when the output is NULL. Previously they would silently do nothing. Change-Id: I89796ab855ea32787765c301a478352287e61190
2014-06-27Port ServerHello extension parsing to CBS.David Benjamin
This gives us systematic bounds-checking on all the parses. Also adds a convenience function, CBS_memdup, for saving the current contents of a CBS. Change-Id: I17dad74575f03121aee3f771037b8806ff99d0c3 Reviewed-on: https://boringssl-review.googlesource.com/1031 Reviewed-by: Adam Langley <agl@google.com>
2014-06-26Merge "Remove references to AEAD in non-AEAD interface codepath"Adam Langley
2014-06-26Add ISC header to a handful of files.Adam Langley
A handful of new files were missing the ISC license header. Change-Id: I44507dd1361b0348d8e0e1bf12d38072030af53d
2014-06-25Remove references to AEAD in non-AEAD interface codepathVictor Vasiliev
Since all AEAD ciphers now go through EVP_AEAD interface, the code which uses EVP_Cipher interface no longer needs any of AEAD handling logic. This also removes EVP_CTRL_AEAD_TLS1_AAD from GCM interface, which was duplicating non-TLS-specific GCM logic and is not used anymore. Change-Id: I5ddae880e7bc921337f9149a0acfdd00c9a478c3
2014-06-25Run AEAD test cases at the end of a file.Adam Langley
aead_test reads test vectors from a file but used blank lines to indicate the end of a test case. If the file ended without a blank line to terminate the final test case, it would previously have been skipped. Change-Id: Id8dd34e86f0b912596dfb33234a894f8d9aa0235
2014-06-24Merge "Include some build fixes for OS X."Adam Langley
2014-06-24Include some build fixes for OS X.Adam Langley
Apart from the obvious little issues, this also works around a (seeming) libtool/linker: a.c defines a symbol: int kFoo; b.c uses it: extern int kFoo; int f() { return kFoo; } compile them: $ gcc -c a.c $ gcc -c b.c and create a dummy main in order to run it, main.c: int f(); int main() { return f(); } this works as expected: $ gcc main.c a.o b.o but, if we make an archive: $ ar q lib.a a.o b.o and use that: $ gcc main.c lib.a Undefined symbols for architecture x86_64 "_kFoo", referenced from: _f in lib.a(b.o) (It doesn't matter what order the .o files are put into the .a) Linux and Windows don't seem to have this problem. nm on a.o shows that the symbol is of type "C", which is a "common symbol"[1]. Basically the linker will merge multiple common symbol definitions together. If ones makes a.c read: int kFoo = 0; Then one gets a type "D" symbol - a "data section symbol" and everything works just fine. This might actually be a libtool bug instead of an ld bug: Looking at `xxd lib.a | less`, the __.SYMDEF SORTED index at the beginning of the archive doesn't contain an entry for kFoo unless initialised. Change-Id: I4cdad9ba46e9919221c3cbd79637508959359427
2014-06-24Fix GCM in non-AESNI mode.Adam Langley
GCM was broken in non-AESNI mode because I fluffed a #define when moving gcm128.c across. Change-Id: I66d5fed6a3d83d641da55c5ca434f17db0d89237
2014-06-24Remove crypto/comp and SSL_COMP support code.David Benjamin
Now that the consuming code in ssl/ is removed, there is no need for this. Leave SSL_COMP and STACK_OF(SSL_COMP) for now so as not to break any code which manipulates the output of SSL_COMP_get_compression_methods to disable compression. Change-Id: Idf0a5debd96589ef6e7e56acf5d9259412b7d7a1
2014-06-24Generate (EC)DSA nonces with truncate/test/reject.Adam Langley
Previously we generated a number that was 8 bytes too large and used a modular reduction, which has a (tiny, tiny) bias towards zero. Out of an excess of caution, instead truncate the generated nonce and try again if it's out of range. Change-Id: Ia9a7a57dd6d3e5f13d0b881b3e9b2e986d46e4ca
2014-06-24Remove |num_rounds| argument from chacha_core.Adam Langley
The function was hard-coded to 20 rounds already so the argument was already useless. Thanks to Huzaifa Sidhpurwala for noticing. Change-Id: I5f9d6ca6d46c6ab769b19820f8f918349544846d
2014-06-21Try both old and new X.509 hashes.Adam Langley
Ensure the library can find the right files under /etc/ssl/certs when running on older systems. There are many symbolic links under /etc/ssl/certs created by using hash of the PEM certificates in order for OpenSSL to find those certificates. Openssl has a tool to help you create hash symbolic links (tools/c_rehash). However newer versions of the library changed the hash algorithm, which makes it unable to run properly on systems that use the old /etc/ssl/certs layout (e.g. Ubuntu Lucid). This patch gives a way to find a certificate according to its hash by using both the old and new algorithms. http://crbug.com/111045 is used to track this issue. (Imported from Chromium: http://src.chromium.org/viewvc/chrome/trunk/deps/third_party/openssl/patches.chromium/0003-x509_hash_name_algorithm_change.patch?revision=231571) Change-Id: Idbc27aba7685c991f8b94cfea38cf4f3f4b38adc
2014-06-21crypto/sha/asm/sha[1,512]-x86_64.pl: Windows buildAdam Langley
This change stops the Intel, SHA instruction code from breaking the Windows build.
2014-06-21Add OPENSSL_str[n]casecmpAdam Langley
Windows has different names for these functions and also doesn't have the strings.h header in which they appear. This change adds tiny wrapper functions for Windows.
2014-06-21Enforce _X509_CHECK_FLAG_DOT_SUBDOMAINS internal-onlyAdam Langley
(Imported from upstream's cfbc10fb327cf8535d6e9b402d1d03140d23d753)
2014-06-21sha1-x86_64.pl: add missing rex prefix in shaext.Adam Langley
PR: 3405 (Imported from upstream's 1f6d2076256761b44e7336b496ab0887f90cea69)
2014-06-21Client-side namecheck wildcards.Adam Langley
A client reference identity of ".example.com" matches a server certificate presented identity that is any sub-domain of "example.com" (e.g. "www.sub.example.com). With the X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS flag, it matches only direct child sub-domains (e.g. "www.sub.example.com"). (cherry picked from commit e52c52f10bb8e34aaf8f28f3e5b56939e8f6b357) (Imported from upstream's 3cc8a3f2343cda796de90c127b9e907ca3ec2da5)
2014-06-21Add benchmarks for hash functions to bssl speed.Adam Langley
2014-06-21Add support for Intel SHA extension.Adam Langley
(Imported from upstream's 70fddbe32a7b3400a6ad0a9265f2c0ed72988d27)
2014-06-21ghash-x86_64.pl: optimize for upcoming Atom.Adam Langley
(Imported from upstream's 66aeaec067680e4a4ab956dcf30a295aaba07e2c)
2014-06-21Set default global mask to UTF8 only.Adam Langley
(Imported from upstream's 08b172b975bcd5854f9201b9f89d05dc330adb79)
2014-06-21remove duplicate 0x for default RSASSA-PSS salt lenAdam Langley
(Imported from upstream's 42d73874edb4eb6681b769d9850afebe97adf329)
2014-06-21Fixes to host checking.Adam Langley
Fixes to host checking wild card support and add support for setting host checking flags when verifying a certificate chain. (Imported from upstream's a2219f6be36d12f02b6420dd95f819cf364baf1d)
2014-06-21Don't allocate more than is needed in BUF_strndup()Adam Langley
(Imported from upstream's 4ceb430a468e8226175aa3f169c0e746877c17e1, 4f7236edc7d5c384bdb148faf7b23f887cf18f69 and ed693e43329383c0d68455d83778cdc9748a074d)
2014-06-21bignum: allow concurrent BN_MONT_CTX_set_locked()Adam Langley
The lazy-initialisation of BN_MONT_CTX was serialising all threads, as noted by Daniel Sands and co at Sandia. This was to handle the case that 2 or more threads race to lazy-init the same context, but stunted all scalability in the case where 2 or more threads are doing unrelated things! We favour the latter case by punishing the former. The init work gets done by each thread that finds the context to be uninitialised, and we then lock the "set" logic after that work is done - the winning thread's work gets used, the losing threads throw away what they've done. (Imported from upstream's bf43446835bfd3f9abf1898a99ae20f2285320f3)
2014-06-21Double free in i2o_ECPublicKeyAdam Langley
PR: 3338 (Imported from upstream's e34af3ec2b1230a8a523d383f7de505f7cbd381d)
2014-06-21bignum: fix boundary condition in montgomery logicAdam Langley
It's not clear whether this inconsistency could lead to an actual computation error, but it involved a BIGNUM being passed around the montgomery logic in an inconsistent state. This was found using flags -DBN_DEBUG -DBN_DEBUG_RAND, and working backwards from this assertion in 'ectest'; ectest: bn_mul.c:960: BN_mul: Assertion `(_bnum2->top == 0) || (_bnum2->d[_bnum2->top - 1] != 0)' failed (Imported from upstream's 3cc546a3bbcbf26cd14fc45fb133d36820ed0a75)
2014-06-21bn/asm/armv4-gf2m.pl, modes/asm/ghash-armv4.pl: faster multiplication ↵Adam Langley
algorithm suggested in following paper: Câmara, D.; Gouvêa, C. P. L.; López, J. & Dahab, R.: Fast Software Polynomial Multiplication on ARM Processors using the NEON Engine. http://conradoplg.cryptoland.net/files/2010/12/mocrysen13.pdf (Imported from upstream's 0fb3d5b4fdc76b8d4a4700d03480cda135c6c117)
2014-06-21aes/asm/bsaes-x86_64.pl: Atom-specific optimization.Adam Langley
(Imported from upstream's ffdff9f12f028e4075b473a2a21e51c5bcc2bbd9)
2014-06-21Extension checking fixes.Adam Langley
When looking for an extension we need to set the last found position to -1 to properly search all extensions. PR#3309 (Imported from upstream's 5cd5e0219d2e9a8c1f2fec3d867f38179c3a86af)
2014-06-21vpaes-[x86_64|ppc].pl: fix typo, which for some reason triggers rkhunter.Adam Langley
(Imported from upstream's dacb698ada2579bccfc3d88662f8cca75fb1b9aa)
2014-06-21Don't try and verify signatures if key is NULL (CVE-2013-0166)Adam Langley
Add additional check to catch this in ASN1_item_verify too. (Imported from upstream's e9b4b8afbd129adc18d3fe71ca2ab34fe61d8640)
2014-06-21dh/check.c: check BN_CTX_get's return value.Adam Langley
(Imported from upstream's fe69e6be6e551c04d9d6a186c7fee1e635313ca6)