Handbook Glossary
factorcode.org
<ssl-socket> ( winsock hostname -- ssl )


Vocabulary
io.sockets.secure.openssl

Inputs
winsockan object
hostnamean object


Outputs
sslan object


Definition
USING: accessors alien.strings io.encodings.utf8
io.sockets.secure kernel openssl openssl.libcrypto
openssl.libssl ;

IN: io.sockets.secure.openssl

:: <ssl-socket> ( winsock hostname -- ssl )
winsock socket-handle BIO_NOCLOSE BIO_new_socket
dup ssl-error
:> bio winsock <ssl-handle> :> handle handle handle>>
:> native-handle hostname [
utf8 string>alien
native-handle swap SSL_set_tlsext_host_name ssl-error
] when* native-handle bio bio SSL_set_bio handle ;