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
Doug Coleman
59f3b1ea57
Revert "factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!"
...
Needs a bit more work.
This reverts commit 7e54cc2824
.
2015-07-02 13:47:06 -07:00
Doug Coleman
7e54cc2824
factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!
2015-07-02 11:36:08 -07:00
Doug Coleman
999aa7c897
factor: clean up spaces in -tests files
2015-07-02 10:34:01 -07:00
Doug Coleman
e3cb325040
factor: clean up whitespace in -docs files
2015-07-02 10:31:22 -07:00
Doug Coleman
352e5de16a
core, basis, extra: Remove DOS line endings from files.
...
Remove whitespace from end of lines.
Add a newline to the end of each file.
2015-06-29 17:25:40 -07:00
John Benediktsson
b366a06c41
use reject instead of [ ... not ] filter.
2015-05-12 18:50:34 -07:00
John Benediktsson
7badef25ce
libc: reduce code duplication.
2014-11-21 10:19:12 -08:00
John Benediktsson
39093727b1
libc: rename (io-error) to throw-errno.
2014-11-21 09:29:45 -08:00
John Benediktsson
3f362dfc99
destructors: change check-disposed not to drop the disposable.
2014-11-21 08:19:05 -08:00
John Benediktsson
45bd145596
io: use errno case instead of cond.
2014-11-20 19:46:14 -08:00
Doug Coleman
831ec24b14
io.sockets.windows: Spacing cleanup.
2014-11-18 14:06:24 -08:00
Doug Coleman
cab001234a
io.sockets.windows: Fix unit test--recover leaves socket on stack, nip
...
it.
2014-11-18 14:02:44 -08:00
John Benediktsson
f79d61060e
io.buffers: cleanup interface a bit.
2014-11-16 18:54:24 -08:00
Björn Lindqvist
bbab41ade4
io.sockets.windows.tests: plugs the socket leaks ( #1104 )
2014-11-12 19:32:44 -08:00
John Benediktsson
8033741135
io/ui: slim down the USE: list
2014-10-24 17:33:27 -07:00
John Benediktsson
8c58b99b1d
Revert "openssl: define a startup-hook so that openssl initializes automatically"
...
This reverts commit 981ea313a0
.
Conflicts:
basis/openssl/openssl.factor
2014-08-05 12:14:53 -07:00
Doug Coleman
6ea98afc99
io.sockets.secure.openssl: We don't care what the error is as long as it fails.
2014-07-09 22:32:32 -07:00
Doug Coleman
377180baf6
io.sockets.secure.windows: Fix using, remove duplication.
2014-07-07 21:44:40 -05:00
Doug Coleman
59c5373263
io.sockets.secure: Another fix for cross-platform openssl.
2014-07-07 18:45:22 -07:00
Doug Coleman
075a86f5d9
io.sockets.secure: Move some code from secure.unix to secure.openssl. Add a hook for finding sockets to upgrade.
2014-07-07 18:34:41 -07:00
Björn Lindqvist
981ea313a0
openssl: define a startup-hook so that openssl initializes automatically
2014-06-06 14:12:09 -07:00
Doug Coleman
50ca01a4d8
io.sockets.windows: Fix using.
2014-04-23 20:07:32 -07:00
John Benediktsson
e3323818cc
io.sockets.secure.openssl: disable tests for now.
2014-04-22 08:16:53 -07:00
John Benediktsson
06912460b4
io.sockets.secure.openssl: use must-fail-with.
2014-04-22 07:41:23 -07:00
John Benediktsson
6f87c2afc7
io.sockets: use must-fail-with for resolve-host errors.
2014-04-20 10:02:04 -07:00
John Benediktsson
24cb41aa13
io.sockets: don't need "0 or" for addrinfo.
2014-04-20 09:30:03 -07:00
Björn Lindqvist
e1206d5ef1
io.sockets: add word addrinfo-error to signal host lookup failures
...
If the getaddrinfo call fails, and you want to handle that failure in
a structured way, then you need a designated error type to know what
went wrong.
2014-04-20 09:29:31 -07:00
Björn Lindqvist
516ffcc311
io.sockets.secure.openssl.tests: more and better SSL_connect tests
...
Better error handling so it should be easier to see why the tests fail
on the build server (#1036 ).
2014-04-18 10:06:46 -07:00
Björn Lindqvist
df3417c5b7
io.sockets.secure.openssl: more docs
2014-04-18 10:06:46 -07:00
Björn Lindqvist
e473ef628d
io.sockets.secure.openssl: big refactoring, all error handling merged into one check-ssl-error word
2014-04-18 10:06:46 -07:00
Björn Lindqvist
a3eba146fd
io.sockets: example for the with-socket function
2014-04-14 08:42:09 -07:00
Björn Lindqvist
b79bd45908
io.sockets: example for resolve-host
2014-04-14 08:42:08 -07:00
Doug Coleman
d123f589f7
io.sockets.secure.openssl: Check error code in unit test.
2014-04-08 12:08:58 -07:00
Doug Coleman
a02e8e3cda
io.sockets.secure.openssl: Fix using list.
2014-04-02 23:11:52 -05:00
Björn Lindqvist
ee19a97869
io.sockets.windows: wrap ioctlsocket and related constants to enable
...
setting sockets in non-blocking mode
2014-04-02 16:50:20 -05:00
Björn Lindqvist
f8387a08ae
Merge:
...
io.sockets.secure.windows: use non-blocking sockets to prevent
SSL_connect from blocking
On Windows, SSL_connect may hang forever if the server doesn't send any
data. To counteract that we temporarily set the socket non-blocking and
then call select in the wait-for-fd method.
Conflicts:
basis/io/sockets/secure/openssl/openssl-tests.factor
2014-04-02 12:16:51 -05:00
Björn Lindqvist
4d8f3e8a78
io.sockets.secure.openssl: do-ssl-connect needs to call wait-for-fd
2014-04-02 12:13:21 -05:00
Björn Lindqvist
eaca04de3b
libc: several vocabs now need to depend on libc
2014-04-02 12:13:00 -05:00
Björn Lindqvist
753b2f0177
io.files: make wait-for-fd generic and dispatch depending on backend
...
do-ssl-accept need to call wait-for-fd so it needs to be generic. On
windows it's a noop but on unix it will wait for the fd.
2014-04-02 12:12:49 -05:00
Björn Lindqvist
6421af3401
io.sockets.secure.*: unification of lots of platform-independent code
...
Code that is duplicated in the backends moved to
io.sockets.secure.openssl. The wait-for-fd verb used by do-ssl-accept
doesn't have any equivalent on Windows so that needs to be
implemented.
2014-04-02 12:12:37 -05:00
Björn Lindqvist
5f38df7741
io.sockets.secure.windows: reading and writing from ssl sockets
...
Unified the drain and refill generics and put their definition in
io.files. They are now used by both the windows and unix ssl backend
for io. Windows ssl kind of works now, but the error cases are not
implemented correctly.
2014-04-02 12:12:14 -05:00
Björn Lindqvist
6ed3a09b5d
io.sockets.secure: new hook variable ssl-certificate-verification-supported?
...
t if the backend is able to verify certificates, f
otherwise. Currently certificate validation isn't implemented on Windows
2014-04-02 12:11:53 -05:00
John Benediktsson
0a2fef0775
io.sockets: change protocol-port to handle ``f`` on all platforms.
2014-03-12 07:27:39 -07:00
Björn Lindqvist
39b13b6736
io.sockets.secure.openssl: guard against SSL_get_peer_certificate returning null
2014-03-06 18:41:37 +01:00
Doug Coleman
a71e2d8060
io.sockets.secure.openssl: Fix docs.
2013-11-28 12:59:36 -06:00
John Benediktsson
53592b9c7d
io.sockets.secure.windows: add platforms.txt.
2013-11-16 16:20:34 -08:00
Doug Coleman
4bcb356ba8
io.sockets.secure.openssl: libssl error is opaque, check that cert files
...
exist in Factor beforehand so we can get a nicer error message.
Add missing USE: and neaten up the list.
2013-11-16 15:59:31 -08:00
Björn Lindqvist
5f2238f7d4
io.sockets.secure.windows: secure socket implementation for windows, it works reasonably but certificate validation is not working correctly yet
2013-10-11 10:23:40 -07:00
Björn Lindqvist
729bd8a362
io.sockets.secure.openssl.tests: remove windows.winsock import and another test for subject-name
2013-10-11 10:23:40 -07:00
Björn Lindqvist
ad627a1395
openssl.libssl: on windows the X509_* family of functions is in a
...
different dll than the other functions in libssl
2013-10-11 10:23:40 -07:00
Björn Lindqvist
bc56b5099f
io.sockets, urls: move documentation for protocol-port
2013-09-16 17:31:37 -07:00
Björn Lindqvist
7c179f876c
unix.ffi, windows.winsock: wraps for servent functions
2013-09-16 17:31:37 -07:00
John Benediktsson
32b07016b0
io.sockets.secure.openssl: some style improvements.
2013-09-16 17:24:31 -07:00
Björn Lindqvist
44a1d61bd4
io.sockets.secure: common-name -> subject-name
2013-09-16 17:17:48 -07:00
Björn Lindqvist
c2fd5031e0
io.sockets.secure, io.sockets.secure.openssl: improved host name verification that takes into account a certificates subject alternative names.
2013-09-16 17:17:48 -07:00
Björn Lindqvist
f4f60b8ba3
io.sockets.secure.openssl: support for getting issuer name
2013-09-16 17:17:47 -07:00
Doug Coleman
bcc86baf45
io.sockets: Minor cleanup.
2012-08-26 00:04:53 -07:00
Doug Coleman
30673f65cf
io.ports: More correct memory handling. There are still leaks in the tests...
2012-08-25 19:44:22 -07:00
John Benediktsson
8343c88f4d
io.sockets: fix stack effect names.
2012-08-02 14:49:50 -07:00
John Benediktsson
2398580eb8
io.sockets.secure.unix.debug: move to io.sockets.secure.debug (not unix specific).
2012-07-19 19:17:52 -07:00
Doug Coleman
1da8666a70
io.sockets.unix: Needs to still use namespaces. Clean up using lists.
2012-07-19 00:53:09 -07:00
Doug Coleman
42f4dc36b2
namespaces: Rename ``bind`` to ``with-variables``. Update a few places that called ``global [ ] with-variables`` to use ``with-global``.
2012-07-19 00:02:47 -07:00
John Benediktsson
5cc30f46f5
using if-zero in more places.
2012-07-16 15:45:21 -07:00
John Benediktsson
f53f6993ec
io.sockets: fix stack effect for <broadcast>.
2012-05-29 15:47:15 -07:00
John Benediktsson
2db76ac23c
io.sockets.windows: get the handle from the handle.
2012-05-29 11:20:55 -07:00
John Benediktsson
51fcae2d8b
io.sockets: adding "broadcast port", ideally would just be +broadcast+ or something, but this works.
2012-05-29 10:46:19 -07:00
Doug Coleman
3507b9bad7
classes:
...
- Allow methods to dispatch off union{ } and intersection{ } classes.
- Add not{ } anonymous-complement syntax.
- Define class-name for anonymous-union/intersection/complement and maybes, and clean up pprint.
- Change maybe: foo to maybe{ foo }
- Call sort-classes when making anonymous-union/anonymous-intersection classes so that they are canonicalized.
2012-05-03 19:45:30 -07:00
Joe Groff
255d024e51
io.sockets: remove unneeded USING: values
2011-11-29 09:46:51 -08:00
Joe Groff
943596575a
use radix literals
2011-11-23 19:03:40 -08:00
Doug Coleman
067f9830ef
classes.union: Define a maybe: word that makes a tuple that acts as an anonymous union for a type and f. Updated all the places we define UNION: ?foo foo POSTPONE: f ;. Fixes #416 and lots of headaches.
2011-11-22 01:56:13 -08:00
Joe Groff
1c99568492
io.sockets.windows: plug receive-from memory leak
...
Should fix #387 .
2011-11-11 17:56:04 -08:00
Doug Coleman
94db86a6db
Make "foo.private" require load foo instead.
...
Move require from vocabs.loader to vocabs. Update everything.
Fixes #201 .
2011-11-02 11:50:03 -07:00
Doug Coleman
51c033a1f6
Fix all failures in the linux64 build email
2011-10-24 19:33:09 -07:00
Doug Coleman
f9257959fd
Rename class to class-of
2011-10-24 06:47:42 -05:00
John Benediktsson
fb2aab3545
Remove unused words. Fixes #132 .
2011-10-19 11:01:16 -07:00
Doug Coleman
24a6895436
io.sockets.windows - Add a using, output count to fix compile error. Not bad for having no Windows box.
2011-10-17 23:28:22 -07:00
Joe Groff
90e1002349
io.sockets: rename (receive) to (receive-unsafe)
2011-10-17 21:23:37 -07:00
Joe Groff
68621c4d79
io.sockets.windows: recv to byte-array via malloc
...
WSARecvFrom on Windows does its work asynchronously, so the buffer cannot be in the managed heap during the extent of the operation.
2011-10-17 21:23:36 -07:00
Joe Groff
8fc0be3c2f
io.sockets: remove unix.ffi inserted by auto-use
2011-10-17 21:23:36 -07:00