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-08-01Minor typo fixes.Adam Langley
Change-Id: Idf9db184348140972e57b2a8fa30dc9cb8b2e0f2 Reviewed-on: https://boringssl-review.googlesource.com/9065 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-08-01Empty signature algorithms in TLS 1.3 CertificateRequest is illegal.David Benjamin
In TLS 1.2, this was allowed to be empty for the weird SHA-1 fallback logic. In TLS 1.3, not only is the fallback logic gone, but omitting them is a syntactic error. struct { opaque certificate_request_context<0..2^8-1>; SignatureScheme supported_signature_algorithms<2..2^16-2>; DistinguishedName certificate_authorities<0..2^16-1>; CertificateExtension certificate_extensions<0..2^16-1>; } CertificateRequest; Thanks to Eric Rescorla for pointing this out. Change-Id: I4991e59bc4647bb665aaf920ed4836191cea3a5a Reviewed-on: https://boringssl-review.googlesource.com/9062 Reviewed-by: Steven Valdez <svaldez@google.com> Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-08-01Send unsupported_extension on unexpected ServerHello extensions.David Benjamin
We were sending decode_error, but the spec explicitly says (RFC 5246): unsupported_extension sent by clients that receive an extended server hello containing an extension that they did not put in the corresponding client hello. This message is always fatal. Also add a test for this when it's a known but unoffered extension. We actually end up putting these in different codepaths now due to the custom extensions stuff. Thanks to Eric Rescorla for pointing this out. Change-Id: If6c8033d4cfe69ef8af5678b873b25e0dbadfc4f Reviewed-on: https://boringssl-review.googlesource.com/9061 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-08-01Convert rsa_1024_key.pem to a PKCS#8 PEM blob.David Benjamin
I missed one. Change-Id: I311776efd1b2e5da7dca4c88b59a4a4c3e7df94b Reviewed-on: https://boringssl-review.googlesource.com/9042 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-08-01Fix up header file handling.David Benjamin
As of a recent change, test_support always included the headers, which causes Android's new build-system to be unhappy. It doesn't want to include headers. Split them into test_support_headers and test_support to match the other keys. Then fix up references: - Android's new build system only wants the sources. Fix this. - Chromium's GN and GYP theoretically want the sources and headers, but we've never supplied the headers because this isn't enforced at all. Fix this. Headers are selected based on what target the header "belongs to". - Bazel has no change except to sort test_support_sources. Change-Id: I85809e70a71236b5e91d87f87bb73bc2ea289251 Reviewed-on: https://boringssl-review.googlesource.com/9044 Reviewed-by: Adam Langley <agl@google.com>
2016-08-01Don't have the default value of |verify_result| be X509_V_OK.Adam Langley
It seems much safer for the default value of |verify_result| to be an error value. Change-Id: I372ec19c41d77516ed12d0169969994f7d23ed70 Reviewed-on: https://boringssl-review.googlesource.com/9063 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-08-01Fix mixed comment markers.David Benjamin
We managed to mix two comment styles in the Go license headers and copy-and-paste it throughout the project. Change-Id: Iec1611002a795368b478e1cae0b53127782210b1 Reviewed-on: https://boringssl-review.googlesource.com/9060 Reviewed-by: Steven Valdez <svaldez@google.com> Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-30Adding handling for KeyUpdate post-handshake message.Steven Valdez
BUG=74 Change-Id: I72d52c1fbc3413e940dddbc0b20c7f22459da693 Reviewed-on: https://boringssl-review.googlesource.com/8981 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-30Adding Post-Handshake message handling.Steven Valdez
Change-Id: I5cc194fc0a3ba8283049078e5671c924ee23036c Reviewed-on: https://boringssl-review.googlesource.com/8980 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-30Splitting SSL session state.Steven Valdez
To prevent configuration/established session confusion, the handshake session state is separated into the configured session (ssl->session) and the newly created session (ssl->s3->new_session). Upon conclusion of the handshake, the finalized session is stored in (ssl->s3->established_session). During the handshake, any requests for the session (SSL_get_session) return a non-resumable session, to prevent resumption of a partially filled session. Sessions should only be cached upon the completion of the full handshake, using the resulting established_session. The semantics of accessors on the session are maintained mid-renego. Change-Id: I4358aecb71fce4fe14a6746c5af1416a69935078 Reviewed-on: https://boringssl-review.googlesource.com/8612 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-30Move post-handshake message handling out of read_app_data.David Benjamin
This finishes getting rid of ssl_read_bytes! Now we have separate entry-points for the various cases. For now, I've kept TLS handshake consuming records partially. When we do the BIO-less API, I expect that will need to change, since we won't have the record buffer available. (Instead, the ssl3_read_handshake_bytes and extend_handshake_buffer pair will look more like the DTLS side or Go and pull the entire record into init_buf.) This change opts to make read_app_data drive the message to completion in anticipation of DTLS 1.3. That hasn't been specified, but NewSessionTicket certainly will exist. Knowing that DTLS necessarily has interleave seems something better suited for the SSL_PROTOCOL_METHOD internals to drive. It needs refining, but SSL_PROTOCOL_METHOD is now actually a half-decent abstraction boundary between the higher-level protocol logic and DTLS/TLS-specific record-layer and message dispatchy bits. BUG=83 Change-Id: I9b4626bb8a29d9cb30174d9e6912bb420ed45aff Reviewed-on: https://boringssl-review.googlesource.com/9001 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-29Test that V2ClientHello must be the first record.David Benjamin
Regression tests for upstream's https://github.com/openssl/openssl/issues/1298. Also, given that we're now on our third generation of V2ClientHello handling, I'm sure we'll have a fourth and fifth and one of these days I'm going to mess this one up. :-) Change-Id: I6fd8f311ed0939fbbfd370448b637ccc06145021 Reviewed-on: https://boringssl-review.googlesource.com/9040 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-29Add |BN_mod_inverse_blinded| and use it in RSA blinding.Brian Smith
Yo dawg I herd you like blinding so I put inversion blinding in your RSA blinding so you can randomly mask your random mask. This improves upon the current situation where we pretend that |BN_mod_inverse_no_branch| is constant-time, and it avoids the need to exert a lot of effort to make a actually-constant-time modular inversion function just for RSA blinding. Note that if the random number generator weren't working correctly then the blinding of the inversion wouldn't be very effective, but in that case the RSA blinding itself would probably be completely busted, so we're not really losing anything by relying on blinding to blind the blinding. Change-Id: I771100f0ad8ed3c24e80dd859ec22463ef2a194f Reviewed-on: https://boringssl-review.googlesource.com/8923 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-29Accept the special token 'UNTRANSLATED_ERROR' instead of the expected error ↵EKR
code when -loose-errors argument is used. Usable for non-bssl shims Change-Id: I7e85a2677fe28a22103a975d517bbee900c44ac3 Reviewed-on: https://boringssl-review.googlesource.com/9050 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-29Add a test for BN_cmp_word.David Benjamin
This also adds a missing OPENSSL_EXPORT. Change-Id: I6c2400246280f68f51157e959438644976b1171b Reviewed-on: https://boringssl-review.googlesource.com/9041 Reviewed-by: Adam Langley <agl@google.com> Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-29Add BN_rand_range_ex and use internally.Brian Smith
There are many cases where we need |BN_rand_range| but with a minimum value other than 0. |BN_rand_range_ex| provides that. Change-Id: I564326c9206bf4e20a37414bdbce16a951c148ce Reviewed-on: https://boringssl-review.googlesource.com/8921 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-29Forbid interleaving app data in a HelloRequest.David Benjamin
We already forbid renego/app-data interleave. Forbid it within a HelloRequest too because that's nonsense. No one would ever send: [hs:HelloReq-] [app:Hello world] [hs:-uest] Add tests for this case. This is in preparation for our more complex TLS 1.3 post-handshake logic which is going to go through the usual handshake reassembly logic and, for sanity, will want to enforce this anyway. BUG=83 Change-Id: I80eb9f3333da3d751f98f25d9469860d1993a97a Reviewed-on: https://boringssl-review.googlesource.com/9000 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-29Make runner's -test parameter take glob patterns.David Benjamin
Per request from EKR. Also we have a lot of long test names, so this seems generally a good idea. Change-Id: Ie463f5367ec7d33005137534836005b571c8f424 Reviewed-on: https://boringssl-review.googlesource.com/9021 Reviewed-by: Adam Langley <agl@google.com>
2016-07-29Switch finish_handshake to release_current_message.David Benjamin
With the previous DTLS change, the dispatch layer only cares about the end of the handshake to know when to drop the current message. TLS 1.3 post-handshake messages will need a similar hook, so convert it to this lower-level one. BUG=83 Change-Id: I4c8c3ba55ba793afa065bf261a7bccac8816c348 Reviewed-on: https://boringssl-review.googlesource.com/8989 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-29Reject stray post-Finished messages in DTLS.David Benjamin
This is in preparation for switching finish_handshake to a release_current_message hook. finish_handshake in DTLS is also responsible for releasing any memory associated with extra messages in the handshake. Except that's not right and we need to make it an error anyway. Given that the rest of the DTLS dispatch layer already strongly assumes there is only one message in epoch one, putting the check in the fragment processing works fine enough. Add tests for this. This will certainly need revising when DTLS 1.3 happens (perhaps just a version check, perhaps bringing finish_handshake back as a function that can fail... which means we need a state just before SSL_ST_OK), but DTLS 1.3 post-handshake messages haven't really been written down, so let's do the easy thing for now and add a test for when it gets more interesting. This removes the sequence number reset in the DTLS code. That reset never did anything becase we don't and never will renego. We should make sure DTLS 1.3 does not bring the reset back for post-handshake stuff. (It was wrong in 1.2 too. Penultimate-flight retransmits and renego requests are ambiguous in DTLS.) BUG=83 Change-Id: I33d645a8550f73e74606030b9815fdac0c9fb682 Reviewed-on: https://boringssl-review.googlesource.com/8988 Reviewed-by: Adam Langley <agl@google.com>
2016-07-29Remove ssl->s3->message_complete in favor of ssl->init_msg.David Benjamin
This was only used so we knew when we had a current message to discard and when we didn't. With init_msg being tracked better, we can use that instead. As part of this, switch the V2ClientHello hack to not using reuse_message. Otherwise we have to fill in init_msg and friends in two places. The next change will require that we have a better handle on the "is there a current message" boolean. BUG=83 Change-Id: I917efacbad10806d492bbe51eda74c0779084d60 Reviewed-on: https://boringssl-review.googlesource.com/8987 Reviewed-by: Adam Langley <agl@google.com>
2016-07-29Use SSL3_HM_HEADER_LENGTH a bit more.David Benjamin
Somewhat clearer what it's for than just 4. Change-Id: Ie7bb89ccdce188d61741da203acd624b49b69058 Reviewed-on: https://boringssl-review.googlesource.com/8986 Reviewed-by: Adam Langley <agl@google.com>
2016-07-29Remove begin_handshake and allocate init_buf lazily.David Benjamin
For TLS 1.3, we will need to process more complex post-handshake messages. It is simplest if we use the same mechanism. In preparation, allow ssl3_get_message to be called at any point. Note that this stops reserving SSL3_RT_MAX_PLAIN_LENGTH in init_buf right off the bat. Instead it will grow as-needed to accomodate the handshake. SSL3_RT_MAX_PLAIN_LENGTH is rather larger than we probably need to receive, particularly as a server, so this seems a good plan. BUG=83 Change-Id: Id7f4024afc4c8a713b46b0d1625432315594350e Reviewed-on: https://boringssl-review.googlesource.com/8985 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-29Convert all of our test private keys to PKCS#8 PEM blobs.David Benjamin
Right now they're RSA PRIVATE KEY or EC PRIVATE KEY which requires a bit more effort to parse. It means the PEM header is necessary to parse these. OpenSSL and Go automagically convert the format, but other shims (namely NSS) may not. Change-Id: I9fa2767dcf1fe6ceeea546390759e1c364a8f16f Reviewed-on: https://boringssl-review.googlesource.com/9020 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-29Fix the comments for |SHA[256|384|512]_Transform|.Adam Langley
Change-Id: I6d552d26b3d72f6fffdc4d4d9fc3b5d82fb4e8bb Reviewed-on: https://boringssl-review.googlesource.com/9010 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-29Clear init_msg/init_num whenever we clear the backing store.David Benjamin
This API needs to be improved but, for the time being, keep the invariant reasonable. Change-Id: If94d41e7e7936e44de5ecb36da45f89f80df7784 Reviewed-on: https://boringssl-review.googlesource.com/8984 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-29Tidy up ssl3_get_message slightly.David Benjamin
Change-Id: Iccd86440bf8721098050fac220dc9bb80bbfc670 Reviewed-on: https://boringssl-review.googlesource.com/8983 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-28Implement KeyUpdate in Go.David Benjamin
Implemented in preparation for testing the C implementation. Tested against itself. BUG=74 Change-Id: Iec1b9ad22e09711fa4e67c97cc3eb257585c3ae5 Reviewed-on: https://boringssl-review.googlesource.com/8873 Reviewed-by: Nick Harper <nharper@chromium.org> Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-28Use Fermat's Little Theorem when converting points to affine.Brian Smith
Fermat's Little Theorem is already used for the custom curve implementations. Use it, for the same reasons, for the ec_montgomery-based implementations. I tested the performance (only) on x86-64 Windows. Change-Id: Ibf770fd3f2d3e2cfe69f06bc12c81171624ff557 Reviewed-on: https://boringssl-review.googlesource.com/8924 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-28Add tests for |BN_mod_inverse| with modulus 1.Brian Smith
Zero is only a valid input to or output of |BN_mod_inverse| when the modulus is one. |BN_MONT_CTX_set| actually depends on this, so test that this works. Change-Id: Ic18f1fe786f668394951d4309020c6ead95e5e28 Reviewed-on: https://boringssl-review.googlesource.com/8922 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-28Support accepting TLS 1.3 tickets on the Go client.David Benjamin
We still don't do anything useful with them, but we know not to put them in the session ticket field. In doing so, fix a bug in the CorruptTicket option where it would crash if tickets are exactly 40 byets in length. BUG=75 Change-Id: Id1039a58ed314a67d0af4f2c7e0617987c2bd6b5 Reviewed-on: https://boringssl-review.googlesource.com/8872 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-28Add support for sending TLS 1.3 tickets in Go.David Benjamin
Also parse out the ticket lifetime which was previously ignored. BUG=75 Change-Id: I6ba92017bd4f1b31da55fd85d2af529fd592de11 Reviewed-on: https://boringssl-review.googlesource.com/8871 Reviewed-by: Nick Harper <nharper@chromium.org> Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-28Take DHE ciphers out of 1.3 in Go.David Benjamin
We have no intention of implementing FFDHE and the DHE ciphers currently don't work in the 1.3 handshake anyway. Cipher suite negotiation is to be refactored in the spec so these cipher values won't be used for FFDHE anyway. Change-Id: I51547761d70a397dc3dd0391b71db98189f1a844 Reviewed-on: https://boringssl-review.googlesource.com/8874 Reviewed-by: Nick Harper <nharper@chromium.org> Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-28gofmt crypto/bn/check_bn_tests.go.Brian Smith
Some gerrit git hook says this is necessary. Change-Id: I8a7a0a0e6732688c965b43824fe54b2db79a4919 Reviewed-on: https://boringssl-review.googlesource.com/8990 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-27Support unimplemented tests in test runner.EKR
This change allows the shim to return a magic error code (89) to indicate that it doesn't implement some of the given flags for a test. Unimplemented tests are, by default, an error. The --allow-unimplemented flag to the test runner causes them to be ignored. This is done in preparation for non-BoringSSL shims. Change-Id: Iecfd545b9cf44df5e25b719bfd06275c8149311a Reviewed-on: https://boringssl-review.googlesource.com/8970 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-27Avoid one |BN_mod_inverse| in |RSA_check_key|.Brian Smith
|BN_mod_inverse| is expensive and leaky. In this case, we can avoid it completely by taking advantage of the fact that we already have the two values that are supposed to be inverses of each other. Change-Id: I2230b4166fb9d89c7445f9f7c045a4c9e4c377b3 Reviewed-on: https://boringssl-review.googlesource.com/8925 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-27Refactor BN_rand_range to reduce code duplication.Brian Smith
Besides reducing code duplication, also move the relative location of the check of |count|. Previously, the code was generating a random value and then terminating the loop without using it if |count| went to zero. Now the wasted call to |BN_rand| is not made. Also add a note about the applicability of the special case logic for |range| of the form |0b100...| to RSA blinding. Change-Id: Iaa33b9529f1665ac59aefcc8b371fa32445e7578 Reviewed-on: https://boringssl-review.googlesource.com/8960 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-27Remove OPENSSL_ALLOW_PROXY_CERTS.David Benjamin
One less random environment variable for us to be sensitive to. (We should probably unwind all this proxy cert stuff. I don't believe they are ever enabled.) Change-Id: I74993178679ea49e60c81d8416e502cbebf02ec9 Reviewed-on: https://boringssl-review.googlesource.com/8948 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-27Always check that the value returned by asn1_do_adb() is non-NULL.David Benjamin
(Imported from upstream's a9b23465243b6d692bb0b419bdbe0b1f5a849e9c, 5e102f96eb6fcdba1db2dba41132f92fa492aea0, and 9bda72880113b2b2262d290b23bdd1d3b19ff5b3.) Change-Id: Ib608acb86cc128cacf20811c21bf6b38b0520106 Reviewed-on: https://boringssl-review.googlesource.com/8944 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-27Fix ASN1_STRING_to_UTF8 could not convert NumericStringDavid Benjamin
tag2nbyte had -1 at 18th position, but underlying ASN1_mbstring_copy supports NumericString. tag2nbyte is also used in do_print_ex which will not be broken by setting 1 at 18th position of tag2nbyte (Imported from upstream's bd598cc405e981de259a07558e600b5a9ef64bd6.) Change-Id: Ie063afcaac8a7d5046cdb385059b991b92cd6659 Reviewed-on: https://boringssl-review.googlesource.com/8946 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-27Add SSL_send_fatal_alert.David Benjamin
WebRTC want to be able to send a random alert. Add an API for this. Change-Id: Id3113d68f25748729fd9e9a91dbbfa93eead12c3 Reviewed-on: https://boringssl-review.googlesource.com/8950 Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org> Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-26Fix omitted selector handling.David Benjamin
The selector field could be omitted because it has a DEFAULT value. In this case *sfld == NULL (sfld can never be NULL). This was not noticed because this was never used in existing ASN.1 modules. (Imported from upstream's c4210673313482edacede58d92e92c213d7a181a.) svaldez and I stared at this for a while and we believe this change is correct. It's also irrelevant because our only remaining ADB (ANY DEFINED BY) table is POLICYQUALINFO which does not allow its selector to be omitted. Also, if it did, it would be a slight change in behavior. We'd switch from using POLICYQUALINFO's default_tt (filling in an ASN1_ANY) to its null_tt (which doesn't exist, so error). Change-Id: If6a929e3dafca18431775b01958d0dae1c09f3b4 Reviewed-on: https://boringssl-review.googlesource.com/8943 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-26Fix an error path leak in int X509_ATTRIBUTE_set1_data()David Benjamin
(Imported from upstream's e6f65f769d87846bdc5b58ef8d2ef4074044022d.) Change-Id: I95df13561481e98faaf8227561228c151dd344b6 Reviewed-on: https://boringssl-review.googlesource.com/8942 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-26Import (unreachable) bsaes-armv7.pl XTS fixes.David Benjamin
This imports upstream's b62e9bf5cbbe278b7e0017c9234999dae68ee867 and c3bc7f498815b355533d96b54b9a09e030d4130c. This is a no-op since we don't use the XTS bits though keep the files in sync so long as we have them. Comparing to master, we're now up-to-date on that file except for a285992763f3961f69a8d86bf7dfff020a08cef9. (I've left that alone since that touches lots of files and we should probably get better test configuration before importing something scary like #undef __thumb2__.) Change-Id: Ie0556757c954ef559e03a6d62c940d5901ca704a Reviewed-on: https://boringssl-review.googlesource.com/8945 Reviewed-by: Adam Langley <agl@google.com>
2016-07-26Fix an error path leak in do_ext_nconf()David Benjamin
(Imported from upstream's 4457017587efae316ac10b159f2e5b0cc81d9921. This also applies the change in https://github.com/openssl/openssl/pull/1351.) Change-Id: Ief4e4b282f5e987981922d127b5345d374d009cf Reviewed-on: https://boringssl-review.googlesource.com/8941 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-26Check for overflow in CBB_add_u24.David Benjamin
All other CBB_add_u<N> functions take a narrowed type, but not every uint32_t may fit in a u24. Check for this rather than silently truncate. Change-Id: I23879ad0f4d2934f257e39e795cf93c6e3e878bf Reviewed-on: https://boringssl-review.googlesource.com/8940 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-26Commit-Queue config: effectively remove Andorid builders.Andrii Shyshkalov
This can be reverted, once the test runner on Android devices is fixed. BUG=chromium:631462 Change-Id: I1f9e38b4104f18c15bb942207c87e3b4b27472d2 Reviewed-on: https://boringssl-review.googlesource.com/8931 Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
2016-07-25Inline bio_set.David Benjamin
It's only called in one place. The comment about stack-allocated BIOs no longer applies. Change-Id: I5a3cec30bcb46bf1ee2bffd6117485383520b314 Reviewed-on: https://boringssl-review.googlesource.com/8902 Commit-Queue: David Benjamin <davidben@google.com> Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-07-25Add a packed renegotiation test.David Benjamin
Ridiculous as it is, the protocol does not forbid packing HelloRequest and Finished into the same record. Add a test for this case. Change-Id: I8e1455b261f56169309070bf44d14d40a63eae50 Reviewed-on: https://boringssl-review.googlesource.com/8901 Reviewed-by: Steven Valdez <svaldez@google.com> Reviewed-by: David Benjamin <davidben@google.com>
2016-07-25Fix funny line-wrapping.David Benjamin
Change-Id: I5afb917ff151a1cd19cb03152348b5e2eb774e55 Reviewed-on: https://boringssl-review.googlesource.com/8884 Reviewed-by: Steven Valdez <svaldez@google.com> Reviewed-by: David Benjamin <davidben@google.com>