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
2016-07-01Group 1.3 extension constants together and remove ticket_age.David Benjamin
I'd meant to change the other -latest to -13 when I merged this, but we may as well group the two together anyway. Also remove ticket_age as that's likely to go away in PR#503. Change-Id: Ibb2f447e344d0b13c937291de69ace37ac9a5e8d Reviewed-on: https://boringssl-review.googlesource.com/8567 Reviewed-by: Steven Valdez <svaldez@google.com> Reviewed-by: David Benjamin <davidben@google.com>
2016-07-01Adding new TLS 1.3 alert/extension IDs.Steven Valdez
Change-Id: Id8eb09b89010167d0f1e79d9d9e664d76020d959 Reviewed-on: https://boringssl-review.googlesource.com/8273 Reviewed-by: David Benjamin <davidben@google.com>
2016-06-30Cleaning up internal use of Signature Algorithms.Steven Valdez
The signing logic itself still depends on pre-hashed messages and will be fixed in later commits. Change-Id: I901b0d99917c311653d44efa34a044bbb9f11e57 Reviewed-on: https://boringssl-review.googlesource.com/8545 Reviewed-by: David Benjamin <davidben@google.com>
2016-06-28Take out a bunch of unused constants.David Benjamin
Code search confirms they're never used externally either. Change-Id: Id90bc15e18555dcfd757b318ab7e2d3ca7c31661 Reviewed-on: https://boringssl-review.googlesource.com/8540 Reviewed-by: Steven Valdez <svaldez@google.com> Reviewed-by: David Benjamin <davidben@google.com>
2016-06-28Changing representation of signature/hash to use SignatureScheme.Steven Valdez
As part of the SignatureAlgorithm change in the TLS 1.3 specification, the existing signature/hash combinations are replaced with a combined signature algorithm identifier. This change maintains the existing APIs while fixing the internal representations. The signing code currently still treats the SignatureAlgorithm as a decomposed value, which will be fixed as part of a separate CL. Change-Id: I0cd1660d74ad9bcf55ce5da4449bf2922660be36 Reviewed-on: https://boringssl-review.googlesource.com/8480 Reviewed-by: Steven Valdez <svaldez@google.com> Reviewed-by: David Benjamin <davidben@google.com>
2016-06-23Update references to RFC 7905.David Benjamin
Change-Id: I6ef23a23da3957eccbe6cd03727b9a9f367f6ef0 Reviewed-on: https://boringssl-review.googlesource.com/8470 Reviewed-by: Adam Langley <agl@google.com>
2016-06-03Adding ECDHE-PSK GCM Ciphersuites.Steven Valdez
Change-Id: Iecf534ca0ebdcf34dbf4f922f5000c096a266862 Reviewed-on: https://boringssl-review.googlesource.com/8101 Reviewed-by: David Benjamin <davidben@google.com>
2016-05-26CECPQ1: change from named curve to ciphersuite.Matt Braithwaite
This is easier to deploy, and more obvious. This commit reverts a few pieces of e25775bc, but keeps most of it. Change-Id: If8d657a4221c665349c06041bb12fffca1527a2c Reviewed-on: https://boringssl-review.googlesource.com/8061 Reviewed-by: Adam Langley <agl@google.com>
2016-05-20Generalizing curves to groups in preparation for TLS 1.3.Steven Valdez
The 'elliptic_curves' extension is being renamed to 'supported_groups' in the TLS 1.3 draft, and most of the curve-specific methods are generalized to groups/group IDs. Change-Id: Icd1a1cf7365c8a4a64ae601993dc4273802610fb Reviewed-on: https://boringssl-review.googlesource.com/7955 Reviewed-by: David Benjamin <davidben@google.com>
2016-02-02Update references to the extended master secret draft.David Benjamin
It's now an RFC too. Change-Id: I2aa7a862bf51ff01215455e87b16f259fc468490 Reviewed-on: https://boringssl-review.googlesource.com/7028 Reviewed-by: Adam Langley <agl@google.com>
2015-12-17Implement draft-ietf-tls-chacha20-poly1305-04.David Benjamin
Only ECDHE-based ciphers are implemented. To ease the transition, the pre-standard cipher shares a name with the standard one. The cipher rule parser is hacked up to match the name to both ciphers. From the perspective of the cipher suite configuration language, there is only one cipher. This does mean it is impossible to disable the old variant without a code change, but this situation will be very short-lived, so this is fine. Also take this opportunity to make the CK and TXT names align with convention. Change-Id: Ie819819c55bce8ff58e533f1dbc8bef5af955c21 Reviewed-on: https://boringssl-review.googlesource.com/6686 Reviewed-by: Adam Langley <agl@google.com>
2015-10-29Fix even more ChaCha20 rename deadlocks.David Benjamin
QUIC code references the TXT macro. Also get rid of TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305 which wasn't renamed for some reason. Change-Id: I0308e07104b3cec394d748f3f1146bd786d2ace2 Reviewed-on: https://boringssl-review.googlesource.com/6384 Reviewed-by: Adam Langley <agl@google.com>
2015-10-28Resolve another ChaCha20-Poly1305 rename deadlock.David Benjamin
WebRTC can't roll into Chromium without picking up the iOS build fix, but we can't roll BoringSSL forwards because WebRTC also depends on the previously exposed ChaCha20-Poly1305 cipher suite constants. Define the old constants again. Change-Id: If8434a0317e42b3aebe1bc1c5a58ed97a89a0230 Reviewed-on: https://boringssl-review.googlesource.com/6382 Reviewed-by: Adam Langley <agl@google.com>
2015-10-27Refactor ChaCha20-Poly1305 AEAD nonce handling.Brian Smith
This change reduces unnecessary copying and makes the pre-RFC-7539 nonces 96 bits just like the AES-GCM, AES-CCM, and RFC 7539 ChaCha20-Poly1305 cipher suites. Also, all the symbols related to the pre-RFC-7539 cipher suites now have "_OLD" appended, in preparation for adding the RFC 7539 variants. Change-Id: I1f85bd825b383c3134df0b6214266069ded029ae Reviewed-on: https://boringssl-review.googlesource.com/6103 Reviewed-by: Adam Langley <alangley@gmail.com>
2015-10-26Move remaining functions out of tls1.h.David Benjamin
Now tls1.h is just a pile of protocol constants with no more circular dependency problem. I've preserved SSL_get_servername's behavior where it's simultaneously a lookup of handshake state and local configuration. I've removed it from SSL_get_servername_type. It got the logic wrong anyway with the order of the s->session check. (Searching through code, neither is used on the client, but the SSL_get_servername one is easy.) Change-Id: I61bb8fb0858b07d76a7835bffa6dc793812fb027 Reviewed-on: https://boringssl-review.googlesource.com/6298 Reviewed-by: Adam Langley <alangley@gmail.com>
2015-10-22Update references to the padding draft.Adam Langley
The padding draft is now RFC 7685: https://www.rfc-editor.org/rfc/rfc7685.txt Change-Id: I26945b10e7923e75c016232c663baac11c4389ae
2015-10-20Ditch remaining filename comments from public headers and ssl/David Benjamin
Change-Id: I8fc795d18aacb0c929b82e7d58514b22103e2106 Reviewed-on: https://boringssl-review.googlesource.com/6292 Reviewed-by: Adam Langley <alangley@gmail.com>
2015-08-25Remove DHE_RSA_WITH_CHACHA20_POLY1305.David Benjamin
This made sense when the cipher might have been standardized as-is, so a DHE_RSA variant could appease the IETF. Since the standardized variant is going to have some nonce tweaks anyway, there's no sense in keeping this around. Get rid of one non-standard cipher suite value early. (Even if they were to be standardized as-is, it's not clear we should implement new DHE cipher suites at this point.) Chrome UMA, unsurprisingly, shows that it's unused. Change-Id: Id83d73a4294b470ec2e94d5308fba135d6eeb228 Reviewed-on: https://boringssl-review.googlesource.com/5750 Reviewed-by: Adam Langley <agl@google.com>
2015-07-22Convert the SRTP extension to the new systemAdam Langley
Change-Id: I12f1d06562c34d357d82bbde7e5d0c15096046e6 Reviewed-on: https://boringssl-review.googlesource.com/5463 Reviewed-by: Adam Langley <agl@google.com>
2015-07-22Convert the Channel ID extension to the new system.Adam Langley
This also removes support for the “old” Channel ID extension. Change-Id: I1168efb9365c274db6b9d7e32013336e4404ff54 Reviewed-on: https://boringssl-review.googlesource.com/5462 Reviewed-by: Adam Langley <agl@google.com>
2015-07-07Remove SSL_get_(shared_)sigalgs.David Benjamin
These are new as of 1.0.2, not terribly useful of APIs, and are the only reason we have to retain so many NIDs in the TLS_SIGALGS structure. Change-Id: I7237becca09acc2ec2be441ca17364f062253893 Reviewed-on: https://boringssl-review.googlesource.com/5347 Reviewed-by: Adam Langley <agl@google.com>
2015-06-26Move the session ticket functions to ssl.h.David Benjamin
Having them spread between ssl.h and tls1.h isn't terribly enlightening. Change-Id: I5fec4b8e5260312b22bcef21bd4db7a8a8149ad8 Reviewed-on: https://boringssl-review.googlesource.com/5234 Reviewed-by: Adam Langley <agl@google.com>
2015-06-26Promote SSL_CTX_[gs]et_tlsext_ticket_keys to functions.David Benjamin
BUG=404754 Change-Id: Iae75a7ab24d4aa3b30edf578cbfc1058aeadd863 Reviewed-on: https://boringssl-review.googlesource.com/5233 Reviewed-by: Adam Langley <agl@google.com>
2015-06-09Add ECDHE-PSK-AES{128,256}-SHA cipher suites.Adam Langley
If we're going to have PSK and use standard cipher suites, this might be the best that we can do for the moment. Change-Id: I35d9831b2991dc5b23c9e24d98cdc0db95919d39 Reviewed-on: https://boringssl-review.googlesource.com/5052 Reviewed-by: Adam Langley <agl@google.com>
2015-06-09Drop ECDHE-PSK-AES-128-GCM.Adam Langley
This is the best PSK cipher suite, but it's non-standard and nobody is using it. Trivial to bring back in the future if we have need of it. Change-Id: Ie78790f102027c67d1c9b19994bfb10a2095ba92 Reviewed-on: https://boringssl-review.googlesource.com/5051 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2015-05-08Opaquify DTLS structs.David Benjamin
Nothing ever uses those structs. This to avoid having any structs in the public header which use struct timeval. In doing so, move the protocol version constants up to ssl.h so dtls1.h may be empty. This also removes TLS1_get_version and TLS1_get_client_version as they're unused and depend on TLS1_VERSION_MAJOR. This still lets tls1.h be included independently from ssl.h (though I don't think anyone ever includes it...). Change-Id: Ieac8b90cf94f7f1e742a88bb75c0ee0aa4b1414c Reviewed-on: https://boringssl-review.googlesource.com/4681 Reviewed-by: Adam Langley <agl@google.com>
2015-05-07Promote SNI macros to functions.David Benjamin
BUG=404754 Change-Id: I2b2e27f3db0c97f2db65ca5e226c6488d2bee2fc Reviewed-on: https://boringssl-review.googlesource.com/4570 Reviewed-by: Adam Langley <agl@google.com>
2015-05-07Promote all SSL callback ctrl hooks to proper functions.David Benjamin
Document them while I'm here. This adds a new 'preprocessor compatibility section' to avoid breaking #ifdefs. The CTRL values themselves are defined to 'doesnt_exist' to catch anything calling SSL_ctrl directly until that function can be unexported completely. BUG=404754 Change-Id: Ia157490ea8efe0215d4079556a0c7643273e7601 Reviewed-on: https://boringssl-review.googlesource.com/4553 Reviewed-by: Adam Langley <agl@google.com>
2015-05-05Remove remnants of old OCSP stapling API.David Benjamin
Probably we'll want some simpler server-side API later. But, as things stand, all consumers of these functions are #ifdef'd out and have to be because the requisite OCSP_RESPONSE types are gone. Change-Id: Ic82b2ab3feca14c56656da3ceb3651819e3eb377 Reviewed-on: https://boringssl-review.googlesource.com/4551 Reviewed-by: Adam Langley <agl@google.com>
2015-05-05Remove SSL_set_tlsext_debug_callback.David Benjamin
It's unused, but for some old #ifdef branch in wpa_supplicant's EAP-FAST hack, before SSL_set_session_ticket_ext_cb existed. Change-Id: Ifc11fea2f6434354f756e04e5fc3ed5f1692025e Reviewed-on: https://boringssl-review.googlesource.com/4550 Reviewed-by: Adam Langley <agl@google.com>
2015-05-05Rename ECDHE-PSK-WITH-AES-128-GCM-SHA256 to follow the naming conventions.Adam Langley
“ECDHE-PSK-WITH-AES-128-GCM-SHA256” doesn't follow the standard naming for OpenSSL: it was “-WITH-” in it and has a hyphen between “AES” and “128”. This change fixes that. Change-Id: I7465b1ec83e7d5b9a60d8ca589808aeee10c174e Reviewed-on: https://boringssl-review.googlesource.com/4601 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2015-04-06Clean up SSL_export_keying_material implementation.David Benjamin
Fix up the variable names. Also avoid the messy logic of checking whether the label and context collide with the normal key expansion ones in the face of adverserial inputs. Make that the caller's responsibility, just as it's already the caller's responsibility to ensure that different calls don't overlap. (The label should be a constant string in an IANA registry anyway.) Change-Id: I062fadb7b6a18fa946b883be660ea9b3f0f6277c Reviewed-on: https://boringssl-review.googlesource.com/4216 Reviewed-by: Adam Langley <agl@google.com>
2015-03-10Remove finish_mac_length from SSL3_ENC_METHOD.David Benjamin
It's unused. Change-Id: I234c19990758ad761a72d5b0abe404a8583705a7 Reviewed-on: https://boringssl-review.googlesource.com/3768 Reviewed-by: Adam Langley <agl@google.com>
2015-01-26Reformat SSL/TLS headers.Adam Langley
Change-Id: Id9d848a6bb13a414d7c199674ff980c5011f92cf Reviewed-on: https://boringssl-review.googlesource.com/3000 Reviewed-by: Adam Langley <agl@google.com>
2015-01-15remove duplicate definesDavid Benjamin
(Imported from upstream's b17dcb0d63cc41aa58bf356fda203670085fc83d) Change-Id: I0ba0ba8013f9d6b2bcce6e1c10e9b11652fccff9 Reviewed-on: https://boringssl-review.googlesource.com/2837 Reviewed-by: Adam Langley <agl@google.com>
2014-12-05Update references to RFCs.David Benjamin
Some code predated the RFCs themselves, but the RFCs now exist. Also remove now obsolete comments and some unused #defines. See upstream's cffeacd91e70712c99c431bf32a655fa1b561482. (Though this predates it; I just remembered I never uploaded it.) Change-Id: I5e56f0ab6b7f558820f72e84dfdbc71a8c23cb91 Reviewed-on: https://boringssl-review.googlesource.com/2475 Reviewed-by: Adam Langley <agl@google.com>
2014-11-22Remove SSL_set_session_secret_cb (EAP-FAST)David Benjamin
This is only used for EAP-FAST which we apparently don't need to support. Remove it outright. We broke it in 9eaeef81fa2d4fd6246dc02b6203fa936a5eaf67 by failing to account for session misses. If this changes and we need it later, we can resurrect it. Preferably implemented differently: the current implementation is bolted badly onto the handshake. Ideally use the supplied callbacks to fabricate an appropriate SSL_SESSION and resume that with as much of the normal session ticket flow as possible. The one difference is that EAP-FAST seems to require the probing mechanism for session tickets rather than the sane session ID echoing version. We can reimplement that by asking the record layer to probe ahead for one byte. Change-Id: I38304953cc36b2020611556a91e8ac091691edac Reviewed-on: https://boringssl-review.googlesource.com/2360 Reviewed-by: Adam Langley <agl@google.com>
2014-11-19Remove SSL_check_chain and unexport CERT_PKEY flags.David Benjamin
Both of these are newly-exported in OpenSSL 1.0.2, so they cannot be used by current consumers. This was added in upstream's 18d7158809c9722f4c6d2a8af7513577274f9b56 to support custom selection of certificates. The intent seems to be that you listen to cert_cb and use SSL_check_chain to lean on OpenSSL to process signature algorithms list for you. Unfortunately, the implementation is slightly suspect: it uses the same function as the codepath which mutates and refers to the CERT_PKEY of the matching type. Some access was guarded by check_flags, but this is too complex. Part of it is also because the matching digest is selected early and we intend to connect this to EVP_PKEY_supports_digest so it is no longer a property of just the key type. Let's remove the hook for now, to unblock removing a lot of complexity. After cleaning up this area, a function like this could be cleaner to support, but we already have a version of this: select_certificate_cb and ssl_early_callback_ctx. Change-Id: I3add425b3996e5e32d4a88e14cc607b4fdaa5aec Reviewed-on: https://boringssl-review.googlesource.com/2283 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-08-29Client-side OCSP stapling support.David Benjamin
Remove the old implementation which was excessively general. This mirrors the SCT support and adds a single boolean flag to request an OCSP response with no responder IDs, extensions, or frills. The response, if received, is stored on the SSL_SESSION so that it is available for (re)validation on session resumption; Chromium revalidates the saved auth parameters on resume. Server support is unimplemented for now. This API will also need to be adjusted in the future if we implement RFC 6961. Change-Id: I533c029b7f7ea622d814d05f934fdace2da85cb1 Reviewed-on: https://boringssl-review.googlesource.com/1671 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-21Implement client side of TLS signed certificate stamps extension.Håvard Molland
https://crbug.com/389420 and 3.3 in rfc6962. Change-Id: Ib22bcd4e4bde5a314ed33e123e19a76cdb714da4 Reviewed-on: https://boringssl-review.googlesource.com/1491 Reviewed-by: David Benjamin <davidben@chromium.org> Reviewed-by: Adam Langley <agl@google.com>
2014-08-01Add visibility rules.Adam Langley
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/1350 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-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-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.)