11using Dates
22using OpenSSL
33using Sockets
4+ using Test
45
56function test_server ()
67 x509_certificate = X509Certificate ()
@@ -22,54 +23,47 @@ function test_server()
2223 sign_certificate (x509_certificate, evp_pkey)
2324
2425 server_socket = listen (5000 )
25- try
26- accepted_socket = accept (server_socket)
26+ accepted_socket = accept (server_socket)
2727
28- # Create and configure server SSLContext.
29- ssl_ctx = OpenSSL. SSLContext (OpenSSL. TLSServerMethod ())
30- _ = OpenSSL. ssl_set_options (ssl_ctx, OpenSSL. SSL_OP_NO_COMPRESSION)
28+ # Create and configure server SSLContext.
29+ ssl_ctx = OpenSSL. SSLContext (OpenSSL. TLSServerMethod ())
30+ _ = OpenSSL. ssl_set_options (ssl_ctx, OpenSSL. SSL_OP_NO_COMPRESSION)
3131
32- OpenSSL. ssl_set_ciphersuites (ssl_ctx, " TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256" )
33- OpenSSL. ssl_use_certificate (ssl_ctx, x509_certificate)
34- OpenSSL. ssl_use_private_key (ssl_ctx, evp_pkey)
32+ OpenSSL. ssl_set_ciphersuites (ssl_ctx, " TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256" )
33+ OpenSSL. ssl_use_certificate (ssl_ctx, x509_certificate)
34+ OpenSSL. ssl_use_private_key (ssl_ctx, evp_pkey)
3535
36- ssl = SSLStream (ssl_ctx, accepted_socket)
36+ ssl = SSLStream (ssl_ctx, accepted_socket)
3737
38- OpenSSL. accept (ssl)
38+ OpenSSL. accept (ssl)
3939
40- @test ! eof (ssl)
41- request = readavailable (ssl)
42- reply = " reply: $(String (request)) "
40+ @test ! eof (ssl)
41+ request = readavailable (ssl)
42+ reply = " reply: $(String (request)) "
43+
44+ # eof(ssl) will block
4345
44- # eof(ssl) will block
46+ # Verify the are no more bytes available in the stream.
47+ @test bytesavailable (ssl) == 0
4548
46- # Verify the are no more bytes available in the stream.
47- @test bytesavailable (ssl) == 0
49+ unsafe_write (ssl, pointer (reply), length (reply))
4850
49- write (ssl, reply)
51+ close (ssl)
52+ finalize (ssl_ctx)
5053
51- try
52- close (ssl)
53- catch
54- end
55- finalize (ssl_ctx)
56- finally
57- close (server_socket)
58- end
5954 return nothing
6055end
6156
6257function test_client ()
6358 tcp_stream = connect (5000 )
6459
6560 ssl_ctx = OpenSSL. SSLContext (OpenSSL. TLSClientMethod ())
66- ssl_options = OpenSSL. ssl_set_options (ssl_ctx, OpenSSL. SSL_OP_NO_COMPRESSION)
61+ _ = OpenSSL. ssl_set_options (ssl_ctx, OpenSSL. SSL_OP_NO_COMPRESSION)
6762
6863 # Create SSL stream.
6964 ssl = SSLStream (ssl_ctx, tcp_stream)
7065
71- # TODO expose connect
72- OpenSSL. connect (ssl)
66+ connect (ssl; require_ssl_verification = false )
7367
7468 # Verify the server certificate.
7569 x509_server_cert = OpenSSL. get_peer_certificate (ssl)
@@ -87,12 +81,8 @@ function test_client()
8781
8882 response_str = String (readavailable (ssl))
8983
90- @test response_str == " reply: $request_str "
84+ @test response_str == " reply: $( request_str) "
9185
92- try
93- close (ssl)
94- catch
95- end
86+ close (ssl)
9687 finalize (ssl_ctx)
97- return nothing
9888end
0 commit comments