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
2014-12-19Reformat the rest of ssl/.Adam Langley
Change-Id: I7dc264f7e29b3ba8be4c717583467edf71bf8dd9
2014-12-16Consistently use RAND_bytes and check for failure.David Benjamin
RAND_pseudo_bytes just calls RAND_bytes now and only returns 0 or 1. Switch all callers within the library call the new one and use the simpler failure check. This fixes a few error checks that no longer work (< 0) and some missing ones. Change-Id: Id51c79deec80075949f73fa1fbd7b76aac5570c6 Reviewed-on: https://boringssl-review.googlesource.com/2621 Reviewed-by: Adam Langley <agl@google.com>
2014-12-16Fix EVP_Cipher error-handling.David Benjamin
Turns out the EVP_CIPH_FLAG_CUSTOM_CIPHER ciphers (i.e. legacy EVP_CIPHER AES-GCM) have a completely different return value setup than the normal ones which are the standard one/zero. (Except that they never return zero; see TODO.) Fix checks in ssl/ and remove remnants of EVP_CIPH_FLAG_CUSTOM_CIPHER in ssl/ as we're using EVP_AEAD now. See CHANGES entry added in upstream's 3da0ca796cae6625bd26418afe0a1dc47bf5a77f. Change-Id: Ia4d0ff59b03c35fab3a08141c60b9534cb7172e2 Reviewed-on: https://boringssl-review.googlesource.com/2606 Reviewed-by: Adam Langley <agl@google.com>
2014-12-14Merge SSLv23_method and DTLS_ANY_VERSION.David Benjamin
This makes SSLv23_method go through DTLS_ANY_VERSION's version negotiation logic. This allows us to get rid of duplicate ClientHello logic. For compatibility, SSL_METHOD is now split into SSL_PROTOCOL_METHOD and a version. The legacy version-locked methods set min_version and max_version based this version field to emulate the original semantics. As a bonus, we can now handle fragmented ClientHello versions now. Because SSLv23_method is a silly name, deprecate that too and introduce TLS_method. Change-Id: I8b3df2b427ae34c44ecf972f466ad64dc3dbb171
2014-11-19Add malloc failure tests.Adam Langley
This commit fixes a number of crashes caused by malloc failures. They were found using the -malloc-test=0 option to runner.go which runs tests many times, causing a different allocation call to fail in each case. (This test only works on Linux and only looks for crashes caused by allocation failures, not memory leaks or other errors.) This is not the complete set of crashes! More can be found by collecting core dumps from running with -malloc-test=0. Change-Id: Ia61d19f51e373bccb7bc604642c51e043a74bd83 Reviewed-on: https://boringssl-review.googlesource.com/2320 Reviewed-by: Adam Langley <agl@google.com>
2014-11-04Remove KSSL_DEBUG.Adam Langley
As far as I know, this is scar tissue left over from a Solaris feature: http://www.c0t0d0s0.org/archives/5575-Less-known-Solaris-Features-kssl.html Change-Id: I9fdc21de225f15d29bf856174bcd42e2592f8d95 Reviewed-on: https://boringssl-review.googlesource.com/2141 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2014-11-04DTLS1_AD_MISSING_HANDSHAKE_MESSAGE does not exist.David Benjamin
This code isn't compiled in. It seems there was some half-baked logic for a 7-byte alert that includes more information about handshake messages retransmit. No such alert exists, and the code had a FIXME anyway. If it gets resurrected in DTLS 1.3 or some extension, we can deal with it then. Change-Id: I8784ea8ee44bb8da4b0fe5d5d507997526557432 Reviewed-on: https://boringssl-review.googlesource.com/2121 Reviewed-by: Adam Langley <agl@google.com>
2014-10-25Extended master secret support.Adam Langley
This change implements support for the extended master secret. See https://tools.ietf.org/html/draft-ietf-tls-session-hash-01 https://secure-resumption.com/ Change-Id: Ifc7327763149ab0894b4f1d48cdc35e0f1093b93 Reviewed-on: https://boringssl-review.googlesource.com/1930 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2014-10-21Remove key_arg and key_arg_length from SSL_SESSION.David Benjamin
Remnants of SSLv2 support. Change-Id: If45035f1727f235e122121418770f75257b18026 Reviewed-on: https://boringssl-review.googlesource.com/1991 Reviewed-by: Adam Langley <agl@google.com>
2014-10-20Fix switching between AEAD and non-AEAD in a renegotiation.Adam Langley
https://code.google.com/p/chromium/issues/detail?id=423998 Change-Id: I29d67db92b47d6cd303125b44e5ba552d97d54ff Reviewed-on: https://boringssl-review.googlesource.com/1960 Reviewed-by: David Benjamin <davidben@chromium.org> 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-09-16Remove indirection in loading ciphers.David Benjamin
Simplify all the cipher gathering logic. The set of supported ciphers is known, so there is no need to determine if some cipher exists but doesn't work. Change-Id: Idcaae67e7bfc40a3deb925d85ee1a99a931b67e7 Reviewed-on: https://boringssl-review.googlesource.com/1756 Reviewed-by: Adam Langley <agl@google.com>
2014-09-04Prune some dead quirks and document the SSL_OP_ALL ones.David Benjamin
Update SSL_OP_ALL to account for SSL_OP_CRYPTOPRO_TLSEXT_BUG being gone, and update ssl3_setup_write_buffer to account for SSL_MODE_CBC_RECORD_SPLITTING rather than the now defunct SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS. Also remove SSL_OP_TLS_BLOCK_PADDING_BUG. This is to allow for a buggy peer which pads CBC with N bytes of value N rather than N+1 bytes of value N. This quirk has been broken since CBC padding checks became constant-time, as demonstrated by this attempt at a test. (Instead of just decrementing padding_length, it needs to also keep track of a separate padding_value and not decrement that one.) https://boringssl-review.googlesource.com/#/c/1690/ (The quirk would also fall over anyway if the buggy client ever did a session resumption; then the server speaks first rather than the client, and the quirk triggered on reading the first encrypted record from the peer.) Change-Id: I19942dc629a47832aead77a46bb50e0b0a9780b3 Reviewed-on: https://boringssl-review.googlesource.com/1694 Reviewed-by: Adam Langley <agl@google.com>
2014-09-03Remove remnants of EVP_CIPHER-based AES_GCM cipher.David Benjamin
Those codepaths are never hit. Change-Id: Ib6908ebe90ab667774785298fdc3f96acc4b50df Reviewed-on: https://boringssl-review.googlesource.com/1693 Reviewed-by: Adam Langley <agl@google.com>
2014-08-28unifdef a bunch of OPENSSL_NO_* ifdefs.David Benjamin
Get all this stuff out of the way. - OPENSSL_NO_MD5 - OPENSSL_NO_SHA - OPENSSL_NO_EC - OPENSSL_NO_ECDSA - OPENSSL_NO_ECDH - OPENSSL_NO_NEXTPROTONEG - OPENSSL_NO_DH - OPENSSL_NO_SSL3 - OPENSSL_NO_RC4 - OPENSSL_NO_RSA Also manually removed a couple instances of OPENSSL_NO_DSA that seemed to be confused anyway. Did some minor manual cleanup. (Removed a few now-pointless 'if (0)'s.) Change-Id: Id540ba97ee22ff2309ab20ceb24c7eabe766d4c4 Reviewed-on: https://boringssl-review.googlesource.com/1662 Reviewed-by: Adam Langley <agl@google.com>
2014-08-26Fix flipped DTLS checks.David Benjamin
09bd58d1f1c71ed7ea687d0295e23793ad3d98fa flipped a condition. Doing that memset in the DTLS case breaks retransmits across a CCS and fails to memset in the TLS case. Strangely, it didn't break any tests, but I think that's a function of us lacking renego tests. The sequence number doesn't seem to be used in the initial handshake for TLS, so it stayed at zero. After a renego, that codepath is relevant. Change-Id: I369a524021857a82e181af7798c7a10fe6279550 Reviewed-on: https://boringssl-review.googlesource.com/1601 Reviewed-by: Adam Langley <agl@google.com>
2014-08-20Remove remnants of now-removed cipher suites.David Benjamin
NULL, SRP, CAMELLIA, export ciphers, SSLv2, IDEA, and SEED are gone. Unknown directives are silently ignored in the parser, so there is no need to retain their masks and entries in the cipher suite aliases. Change-Id: If43b9cbce56b3e1c401db764b88996940452a300 Reviewed-on: https://boringssl-review.googlesource.com/1561 Reviewed-by: Adam Langley <agl@google.com>
2014-08-14Replace some DTLS version checks with SSL_IS_DTLS.David Benjamin
They weren't updated to account for DTLS 1.2. Change-Id: I81b3bfcb84a46d7b233bb567976a7de37bc46b92 Reviewed-on: https://boringssl-review.googlesource.com/1503 Reviewed-by: Adam Langley <agl@google.com>
2014-07-25Remove support code for export cipher suites.David Benjamin
Now the only case where temporary RSA keys are used on the server end is non-signing keys. Change-Id: I55f6c206e798dd28548c386fdffd555ccc395477 Reviewed-on: https://boringssl-review.googlesource.com/1285 Reviewed-by: Adam Langley <agl@google.com>
2014-07-25Remove last remnants of GOST support.David Benjamin
This removes support code for a "stream_mac" mode only used by GOST. Also get rid of this /* I should fix this up TLS TLS TLS TLS TLS XXXXXXXX */ comment next to it. It's not actually related to GOST (dates to OpenSSL initial commit), but isn't especially helpful at this point. Change-Id: Ib13c6e27e16e0d1fb59ed0142ddf913b9abc20b7 Reviewed-on: https://boringssl-review.googlesource.com/1281 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-08Remove OPENSSL_FIPS blocks.David Benjamin
Done with unifdef with some manual edits to remove empty lines. Change-Id: I40d163539cab8ef0e01e45b7dc6a1a0a37733c3e Reviewed-on: https://boringssl-review.googlesource.com/1097 Reviewed-by: Adam Langley <agl@google.com>
2014-07-01Remove opaque_prf_input extension.David Benjamin
This code doesn't even get built unless you go out of your way to pass an extension value at build time. Change-Id: I92ffcdfb18505c96e5ef390c8954a54cee19967f Reviewed-on: https://boringssl-review.googlesource.com/1063 Reviewed-by: Adam Langley <agl@google.com>
2014-07-01Use RC4-MD5 AEAD in ssl/Adam Langley
This change adds the infrastructure to use stateful AEADs in ssl/ and specifically wires in the stitched, RC4-MD5 AEAD. Over time, all cipher suites will be supported via the AEAD interface and the old EVP_CIPHER code will die off. Change-Id: I44ed3ca2672e1342c6b632be08fee9272d113f8e Reviewed-on: https://boringssl-review.googlesource.com/1044 Reviewed-by: Adam Langley <agl@google.com>
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-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-21Use correct digest when exporting keying material.Adam Langley
PR#3319 (Imported from upstream's 87a0cbdf2ee539ea922f9cf7a4b7c2c03119891d)
2014-06-21ssl/t1_enc.c: check EVP_MD_CTX_copy return value.Adam Langley
PR: 3201 (Imported from upstream's 8d08627c940900998d02a0dff0566db736efb94f)
2014-06-21Fallback SCSV.Adam Langley
This patch adds server-side support for TLS_FALLBACK_SCSV (see http://tools.ietf.org/html/draft-bmoeller-tls-downgrade-scsv-01).
2014-06-21CBC record splitting.Adam Langley
This patch removes support for empty records (which is almost universally disabled via SSL_OP_ALL) and adds optional support for 1/n-1 record splitting. The latter is not enabled by default, since it's not typically used on servers, but it should be enabled in web browsers since there are known attacks in that case (see BEAST).
2014-06-21ChaCha20-Poly1305 support.Adam Langley
2014-06-21SSL AEAD support.Adam Langley
This change allows AEADs to be used in ssl/ to implement SSL/TLS ciphersuites.
2014-06-21tls1_change_cipher_state rewriteAdam Langley
The previous version of the function made adding AEAD changes very difficult. This change should be a semantic no-op - it should be purely a cleanup.
2014-06-21ChannelID support.Adam Langley
Implement ChannelID as both a client and server.
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.)