Commit Graph

562 Commits

Author SHA1 Message Date
Steven Fackler a80a77bbb8 Initialize stream buffer 2015-06-27 19:42:13 -07:00
Steven Fackler 9d0acfe615 Fix set_hostname
It was previously failing to null terminate the hostname string (was
anyone actually using this?). Also move the macro expansion to the C
shim.
2015-06-27 19:37:45 -07:00
Steven Fackler 212acf0bb8 Add a test for connection negotiation failure 2015-06-25 23:07:25 -07:00
Steven Fackler c8d23f37a4 Fix EOF handling in retry wrapper 2015-06-25 22:47:53 -07:00
Joseph Glanville 6d53a3ed20 Test reading CN from test certificate 2015-05-18 02:41:42 +10:00
Joseph Glanville e7a5ecc8dd Add test for get_peer_certificate() 2015-05-16 19:37:31 +10:00
Joseph Glanville 5d9eaf53da Add accessor for peer_certificate 2015-05-16 19:20:38 +10:00
Steven Fackler 8a9aa0c657 Merge pull request #210 from manuels/pending
Add SslStream.pending()
2015-05-05 22:57:14 -04:00
Steven Fackler 00c17035ec Abstract over AsRef<Path> 2015-05-02 13:59:11 -07:00
Manuel Schölling c8fae312ad Add SslStream.pending() 2015-04-30 20:00:30 +02:00
Steven Fackler 73617dabfa Write through to underlying stream for every write call
cc #208
2015-04-30 00:18:23 -07:00
Steven Fackler 8027fff782 Fix nightly build issues 2015-04-15 09:10:22 -07:00
Steven Fackler 8eb5db45bf Fix non-dtls tests 2015-04-08 22:12:57 -07:00
Steven Fackler c5a16db97e Fix dtls tests
There's a reason static mut is unsafe...
2015-04-08 22:10:13 -07:00
Manuel Schölling b3eae0e3f6 Adapt code for rust-1.0.0-beta 2015-04-06 12:56:38 +02:00
Manuel Schölling 912cacf4bc Fix rebase errors 2015-04-06 12:26:10 +02:00
Manuel Schölling fb98f482e2 Add ability to load private keys from files and use raw keys and certificates for SslContext
Conflicts:
	openssl/src/crypto/pkey.rs
	openssl/src/ssl/tests.rs
2015-04-06 12:25:37 +02:00
Manuel Schölling 3c03dd9535 Add ability to load private keys from files and use raw keys and certificates for SslContext
Conflicts:
	openssl/src/ssl/tests.rs
2015-04-06 12:25:15 +02:00
Manuel Schölling 114253c55e Change SslContext::set_read_ahead(c_long) to SslContext::set_read_ahead(u32) 2015-04-06 12:23:11 +02:00
Manuel Schölling 362a7dfc93 Debug halteproblem with tests 2015-04-06 12:23:11 +02:00
Manuel Schölling dbef985e32 Move connected_socket to its own crate and fix SSL_CTX_set_read_ahead() 2015-04-06 12:23:11 +02:00
Manuel Schölling 5788f3bec8 Use latest OpenSSL version in travis tests and more verbose error message in ConnectedSocket 2015-04-06 12:22:51 +02:00
Manuel Schölling 014f59ae60 Fix detect_invalid_ipv4 test on OSX
Looks like the invalid IP 254.254.254.254 is fine for OSX
2015-04-06 12:22:51 +02:00
Manuel Schölling 3680763906 Fix OSX related compiler error and correct travis OpenSSL setup 2015-04-06 12:22:51 +02:00
Manuel Schölling 4f2978bbd3 Adjust sin_len/sin6_len for non-linux platforms
Fixing errors for platforms you don't own is really annoying ;)

Fixing errors
2015-04-06 12:22:51 +02:00
Manuel Schölling efbd4eee05 Fix portability issue and typo 2015-04-06 12:22:50 +02:00
Manuel Schölling 8a0e9d6cca Fix travis test setup for DTLS 2015-04-06 12:22:50 +02:00
Manuel Schölling 664600eadf Add DTLSv1 and DTLSv1.2 support 2015-04-06 12:22:50 +02:00
Manuel Schölling 5408b641dd Add connect() support for UDP sockets 2015-04-06 12:14:36 +02:00
Manuel Schölling 7e88d8c277 Fix errors in tests (SslVerifyPeer -> SSL_VERIFY_PEER) 2015-04-03 15:16:38 +02:00
Manuel Schölling 57f046e8ea Use raw pointers instead of ptr::Unique 2015-04-03 14:42:35 +02:00
Manuel Schölling e1d65fc2be Return Result<(),SslError> instead of Option<SslError> 2015-04-03 14:34:24 +02:00
Manuel Schölling b6c5c113f5 Add SslContext::add_extra_chain_cert() 2015-04-03 14:34:24 +02:00
Manuel Schölling 632d8398cf Add ability to load private keys from files and use raw keys and certificates for SslContext 2015-04-03 14:34:24 +02:00
Manuel Schölling b42202b858 Change SslVerifyMode to bitflags and add SSL_VERIFY_FAIL_IF_NO_PEER_CERT
SslVerifyMode was changed to bitflags to allow for bitwise operations
like (SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT).
2015-04-03 14:34:24 +02:00
Steven Fackler 4606687829 Stabilize openssl! 2015-04-02 21:12:05 -07:00
Steven Fackler f4761bb292 Remove two features 2015-04-02 13:59:55 -07:00
Sean McArthur 24b876521b rustup: changes to io::Error 2015-04-02 11:12:18 -07:00
Steven Fackler 121a667f9b Remove a bunch of use of core feature 2015-03-30 23:09:15 -07:00
Steven Fackler 2b1a9a7814 Fix verify data free function
Turns out this is called with a null pointer if you never set the data
which didn't end up doing anything until the recent zeroing drop
changes.

Also use a map of indexes since statics in generic functions don't
monomorphize
2015-03-29 10:18:30 -07:00
Florian Hartwig 7c079698fc Fix error with current rust nightly 2015-03-29 15:19:34 +02:00
Steven Fackler 2453c0f96c Fix npn feature 2015-03-25 22:02:14 -07:00
Steven Fackler 36c90bb205 Fix deprecation warnings 2015-03-25 21:50:21 -07:00
Marko Lalic f50577909e openssl: Add tests for server-side NPN 2015-03-23 08:41:15 +01:00
Marko Lalic 8f05e0452a openssl: Add tests for client-side NPN
An additional `openssl` process is spun up before the tests are ran.
This process has NPN enabled with some default protocols.
2015-03-23 08:41:15 +01:00
Marko Lalic be674a28e0 openssl: Advertise NPN protocols for server sockets
If a server socket is created with a context on which the
`set_npn_protocols` method has been called, during TLS connection
establishment, the server will advertise the list of protocols given to
the method, in case the client indicates that it supports the NPN TLS
extension.
2015-03-23 08:41:15 +01:00
Marko Lalic 8931299eab openssl: Add methods to get the protocol selected by NPN
The method is added to the `Ssl` struct, since this is how the native
OpenSSL API works. It is also added to the `SslStream` convenience
struct, since the `Ssl` instance that it wraps is not public and clients
may want to check which protocol is in use on a particular SSL stream.
2015-03-23 08:41:15 +01:00
Marko Lalic 5689ad9260 openssl: Implement client-side NPN protocol selection
After the `set_npn_protocols` method of the `SslContext` struct is
called, any future TLS connections established with this context will
perform NPN negotiation.

The chosen protocol is the one with the highest priority in the
server's protocol list that is also in the client's protocol list.
(This is the default behavior provided by OpenSSL's
`SSL_select_next_proto` function.)

If there is no overlap between the two lists, no error is raised.
2015-03-23 08:41:15 +01:00
Marko Lalic 83c279013b openssl: Add method for setting protocols to be used in NPN
A new method `set_npn_protocols` is added to the `SslContext` struct,
when the `npn` feature is enabled.

The method takes a list of protocols that are supported by the peer.
These protocols will be used during Next Protocol Negotiation.

The method saves the given list within the extra data of the OpenSSL
Context structure, so that the list can be referred to later on by the
callbacks invoked during TLS connection establishment.
2015-03-23 08:41:15 +01:00
Steven Fackler a65b03c89e Fix warnings 2015-03-10 19:38:44 -07:00
Steven Fackler 8b8736fb46 Merge pull request #172 from reaperhulk/add-ssl-ctx-set-get-options
add support for SSL_CTX_set_options and SSL_CTX_get_options
2015-03-07 08:43:30 -08:00
Aaron Weiss c3eee3b194 Added try_clone to SslStream for SslStream<TcpStream>. 2015-03-02 16:32:25 -05:00
Steven Fackler 6991cc6a30 Convert to new IO. 2015-02-24 23:01:57 -08:00
Paul Kehrer 8940bd767b add support for SSL_CTX_clear_options and use bitflags 2015-02-23 19:39:23 -06:00
Paul Kehrer 06ba41ad47 add support for SSL_CTX_set_options and SSL_CTX_get_options
fixes #168
2015-02-22 15:45:00 -06:00
Kevin Butler cb0e1688c8 Update depreciated code 2015-02-20 21:04:01 +00:00
Kevin Butler 00e4941a75 Unique<T> now derefs to *mut T 2015-02-20 20:43:07 +00:00
Steven Fackler 4e83bebb4b Rename method for clarity 2015-02-16 23:28:47 -08:00
Steven Fackler e52d02171b Properly handle errors in write 2015-02-16 22:38:34 -08:00
Steven Fackler f0eb8e39e3 Deal with openssl errors in read
I'm not sure of a great way to generate this case in a test,
unfortunately.

Closes #157
2015-02-16 22:21:13 -08:00
Robin Gloster fabc1da31e rustup to current master 2015-02-12 18:25:45 +01:00
Steven Fackler ec65b0c67b Move docs to this repo and auto build 2015-02-07 21:30:05 -08:00