2014-04-02 11:44:19 -04:00
|
|
|
USING: accessors alien io.ports io.sockets.private io.sockets.secure
|
|
|
|
io.sockets.secure.openssl io.sockets.windows kernel locals openssl
|
2014-07-07 22:44:40 -04:00
|
|
|
openssl.libcrypto openssl.libssl windows.winsock system ;
|
2013-10-11 12:26:44 -04:00
|
|
|
IN: io.sockets.secure.windows
|
|
|
|
|
|
|
|
M: openssl ssl-supported? t ;
|
2013-10-14 08:45:33 -04:00
|
|
|
M: openssl ssl-certificate-verification-supported? f ;
|
2013-10-11 12:26:44 -04:00
|
|
|
|
2014-07-07 21:45:22 -04:00
|
|
|
M: windows socket-handle handle>> alien-address ;
|
|
|
|
|
2013-10-11 12:26:44 -04:00
|
|
|
M: secure ((client)) ( addrspec -- handle )
|
2016-03-12 09:27:31 -05:00
|
|
|
[ addrspec>> ((client)) ] [ hostname>> ] bi <ssl-socket> ;
|
2013-10-11 12:26:44 -04:00
|
|
|
|
2013-10-14 08:45:33 -04:00
|
|
|
M: secure (get-local-address) ( handle remote -- sockaddr )
|
2013-10-16 11:34:31 -04:00
|
|
|
[ file>> ] [ addrspec>> ] bi* (get-local-address) ;
|
2013-10-14 08:45:33 -04:00
|
|
|
|
2016-03-02 18:29:59 -05:00
|
|
|
M: secure parse-sockaddr addrspec>> parse-sockaddr f <secure> ;
|
2013-10-11 12:26:44 -04:00
|
|
|
|
2014-04-02 11:44:19 -04:00
|
|
|
M:: secure establish-connection ( client-out addrspec -- )
|
|
|
|
client-out handle>> file>> :> socket
|
|
|
|
socket FIONBIO 1 set-ioctl-socket
|
|
|
|
socket <output-port> addrspec addrspec>> establish-connection
|
|
|
|
client-out addrspec secure-connection
|
|
|
|
socket FIONBIO 0 set-ioctl-socket ;
|
2014-07-07 21:34:41 -04:00
|
|
|
|
|
|
|
M: windows non-ssl-socket? win32-socket? ;
|