Commit Graph

254 Commits (dadff2f062dbb72e66eab24cc6e155b6f56fdff2)

Author SHA1 Message Date
Björn Lindqvist 0e7fd0340d io.sockets.secure.openssl.tests: fix so you dont get an error when test times out 2016-11-19 23:40:12 +01:00
Björn Lindqvist c6361436bf io.sockets.secure.openssl: set connected to t after do-ssl-accept
This should prevent the SSL_shutdown:shutdown while in init error we've
been seeing
2016-11-19 19:05:53 +01:00
Björn Lindqvist 1b7b7e8260 io.sockets.secure.openssl: second |dispose seem to be redundant 2016-11-19 18:04:17 +01:00
Björn Lindqvist 2f12413595 io.sockets.windows: WSASocket-flags not needed 2016-08-04 23:55:56 +02:00
John Benediktsson b864d49e8c io.sockets: adding docs and tests for port-protocol. 2016-08-01 10:22:16 -07:00
John Benediktsson ab66a73744 io.sockets: adding port-protocol to match protocol-port. 2016-07-30 11:12:40 -07:00
Alexander Iljin b35294eade io.sockets.secure-docs: update and add some documentation 2016-06-22 11:27:26 -07:00
Doug Coleman c7041fe96e io.sockets.secure.windows: Windows sockets are a bit confused. Make a word
to get the handle out of two different paths. Probably needs more
refactoring but this makes it work.
2016-06-02 11:07:19 -07:00
Doug Coleman 05083ba503 io.sockets.secure.windows: No need to call file>> because we have a
win32-socket on the stack already.
2016-06-02 10:56:50 -07:00
Doug Coleman b63aaff1c5 io.sockets.secure: (server) needs a method on secure for Windows too. Move the method to a vocab that both platforms load. 2016-06-02 10:25:11 -07:00
John Benediktsson 498285d7dd unicode: make this the API for all unicode things. 2016-03-30 23:29:48 -07:00
Doug Coleman d3bc2035a2 factor: remove rest of double paren words. 2016-03-25 03:13:27 -07:00
John Benediktsson ebfa9402d4 io.sockets.unix: using getsockopt doesn't need to recurse. 2016-03-14 08:42:54 -07:00
Doug Coleman bb7161a46f io.sockets.secure.windows: Add some code for loading the certificates on
windows. Still disabled, and the CA certificates are duplicated.
2016-03-13 16:11:45 -07:00
John Benediktsson a58a2ff7b0 io.sockets.unix: don't need these imports. 2016-03-13 13:43:57 -07:00
John Benediktsson cd90435588 io.sockets.unix: refactor getsockopt into get-socket-option. 2016-03-13 13:34:29 -07:00
John Benediktsson b3fbafcf92 io.sockets.unix: adding tests for connection refused. 2016-03-13 13:15:45 -07:00
John Benediktsson 3fdbbe0fea io.sockets.unix: use getsockopt to check connect success. 2016-03-13 13:08:26 -07:00
Doug Coleman 460555785c io.sockets.secure.openssl: Fix docs. 2016-03-13 01:45:52 -08:00
Doug Coleman df3f58ae61 io.sockets.secure.openssl: Fix subject-name-match? for wildcard domains.
Also remove duplicate names before checking.
2016-03-12 20:22:47 -08:00
Benjamin Pollack b0d62bcdc3 io.sockets.secure: add SNI support for Windows
M: secure ((client)) is identical between Unix and Windows, so this probably
could be moved out of the platform-specific vocab, but doing it sanely would
require a refactor I'm not excited about, so punting on that for now.

Fixes #1551
2016-03-12 09:27:31 -05:00
Björn Lindqvist 2713153273 io.sockets.tests: these needs to be conditional, in case you are ipv4 only 2016-03-10 04:11:23 +01:00
Doug Coleman a1f3378365 io.sockets: Default make-sockaddr-outgoing to make-sockaddr. 2016-03-08 09:21:49 -08:00
Doug Coleman 3cd2775855 io.sockets.unix: Fix ipv6 sends for udp on osx. 2016-03-08 04:46:26 -08:00
Doug Coleman a12a56f777 io.sockets: Special-case 0.0.0.0 and f for outgoing sockets so we can use
them on windows. Add some tests that shouldn't fail. Fixes #85.
2016-03-08 02:27:01 -08:00
Doug Coleman 027a9fb1a2 io.sockets: Fix send-once for inet6. 2016-03-07 16:58:56 -08:00
Doug Coleman 05a8ac2423 Revert "io.sockets: Windows doesn't recognize 0.0.0.0. Add a method for"
This reverts commit 2c82dfb51b.
2016-03-07 14:31:40 -08:00
Doug Coleman 2c82dfb51b io.sockets: Windows doesn't recognize 0.0.0.0. Add a method for
resolve-localhost for Windows, and make the default ipv4 make-sockaddr use
127.0.0.1 since we are making a sockaddr for ipv4 anyway and 127.0.0.1 is
cross-platform. Fixes #85.
2016-03-07 14:07:01 -08:00
John Benediktsson ee134373f0 ip-parser: some cleanup, move ipv6 parsing here. 2016-03-05 09:51:37 -08:00
Benjamin Pollack e707374085 Make <inet4> and <ipv4> use ip-parser:parse-ipv4
Fixes #1209
2016-03-05 09:11:56 -05:00
Doug Coleman a303637850 io.sockets.secure.windows: Try to fix compile error. 2016-03-05 02:57:39 -08:00
Doug Coleman c077ee91e9 openssl: More ciphers. 2016-03-04 18:42:35 +00:00
Doug Coleman 46c9143232 openssl: call SSL_CTX_set_ecdh_auto() for forward secrecy. 2016-03-04 10:05:09 -08:00
Doug Coleman 0bfe6ff826 openssl: support more protocols for forward secrecy. 2016-03-04 09:19:08 -08:00
Doug Coleman 3576c0930c openssl: Prefer tls1.2. Only use secure ciphers. 2016-03-04 09:15:12 -08:00
Benjamin Pollack e83e791a7a Do not attempt to set an SNI hostname on a server 2016-03-03 13:58:31 -08:00
Benjamin Pollack 62d1425971 Add SNI support to Factor
Fixes #1527
2016-03-03 09:48:20 -08:00
Benjamin Pollack bfd656df17 Dump everything before TLSv1
All versions of SSL are deprecated and have major security issues. Just
kill the whole thing. If you want to deliberately expose yourself to
POODLE, you can do it on your own time.
2016-03-01 19:43:06 -05:00
Doug Coleman 3f07cbd194 io.sockets.secure.openssl: Nuke RSA. 2016-03-01 14:02:47 -08:00
Benjamin Pollack 12af22f3ee openssl: only set RSA keys if required to do so
Modern OpenSSL and LibreSSL both do not require SSL_CTX_set_tmp_rsa to
be called unless SSL_CTX_need_tmp_rsa returns true, and LibreSSL and
OpenSSL compiled with deprecation warnings both will fail if this
happens. This commit resolves that.

With this change, it becomes possible to use LibreSSL in place of
OpenSSL with Factor.
2016-02-23 08:11:04 -05:00
Benjamin Pollack 8073c8a77e Update OpenSSL calls to work with LibreSSL/newer OpenSSL
RSA_generate_key has been deprecated, and is not available in either
LibreSSL or newer OpenSSL that are not compiled with deprecated call
support. This commit switches to the still-supported
RSA_generate_key_ex, which is supported by both libraries.

Note that this is still insufficient for Factor to work under LibreSSL,
though we now get a call further than before.
2016-02-22 14:21:39 -08:00
Doug Coleman 69d5a3a276 io.sockets: remove send-n-times, broadcast-n-times. 2016-02-20 18:37:08 -08:00
Doug Coleman e4347f5254 io.sockets: Add more utility words for working with udp. 2016-02-19 19:21:13 -08:00
Björn Lindqvist 0a3b4b4872 io.sockets.secure.debug: use <test-secure-config> in some places
the word can be reused in a few places when setting up ssl. it removes
some duplicated code
2015-10-04 01:25:11 +02:00
John Benediktsson e477f6996f Fix comments to be ! not #!. 2015-09-08 16:15:10 -07:00
John Benediktsson ceb75057da change ERROR: words from throw-foo back to foo. 2015-08-13 16:13:05 -07:00
Doug Coleman b6be8685c3 basis: ERROR: changes. 2015-08-13 03:20:39 -07:00
John Benediktsson 5eec781b40 use ``if*`` instead of ``dup [ ] [ drop ] if``. 2015-07-20 22:24:30 -07:00
John Benediktsson 5d6632514a io.sockets: make host-name a hook and throw correct errors. 2015-07-16 13:15:14 -07:00
Doug Coleman 892c62e1dc factor: second stab at [ ] [ ] unit-test -> { } [ ] unit-test 2015-07-03 09:39:59 -07:00