0
0
mirror of https://github.com/OpenVPN/openvpn3.git synced 2024-09-20 12:12:15 +02:00
openvpn3/test/ssl
Arne Schwabe 012e7e8226
Refactor InitProcess to use refcounting
Although the init calls were protected by a mutex more than consumer of
the API will the second one if the uninit was called too early.

While at it, move from explicit init/uninit calls to RAII.

Signed-off-by: Arne Schwabe <arne@openvpn.net>
2020-09-02 20:37:01 +02:00
..
.gitignore Updated Windows client for VS 2015. 2015-06-09 11:21:41 -06:00
ca.crt mbedTLS: Port from polarssl-1.3 to mbedtls-2.3 (functional) 2017-03-18 12:24:54 -06:00
client.crt mbedTLS: Port from polarssl-1.3 to mbedtls-2.3 (functional) 2017-03-18 12:24:54 -06:00
client.key mbedTLS: Port from polarssl-1.3 to mbedtls-2.3 (functional) 2017-03-18 12:24:54 -06:00
CMakeLists.txt Move CMAKE module path to root directory 2020-01-30 14:52:57 +01:00
dh.pem mbedTLS: Port from polarssl-1.3 to mbedtls-2.3 (functional) 2017-03-18 12:24:54 -06:00
go Added i/o abstraction layer. 2017-03-30 15:48:14 -06:00
proto.cpp Refactor InitProcess to use refcounting 2020-09-02 20:37:01 +02:00
protowin.h Ported minicrypto lib to OS X for PolarSSL optimization. 2014-03-04 17:42:00 -07:00
README.txt mbedTLS: Port from polarssl-1.3 to mbedtls-2.3 (symbol renames) 2017-03-18 12:24:54 -06:00
server.crt mbedTLS: Port from polarssl-1.3 to mbedtls-2.3 (functional) 2017-03-18 12:24:54 -06:00
server.key mbedTLS: Port from polarssl-1.3 to mbedtls-2.3 (functional) 2017-03-18 12:24:54 -06:00
tls-auth.key Updated proto unit test with fresh certs/keys. 2013-01-30 21:08:55 +00:00
tls-crypt-v2-client.key tls-crypt-v2: implement abstract metadata parser 2018-12-06 09:19:22 +10:00
tls-crypt-v2-server.key tls-crypt-v2: implement abstract metadata parser 2018-12-06 09:19:22 +10:00

Building proto.cpp sample:

On Mac

  Build with MbedTLS client and server (no minicrypto ASM algs for MbedTLS):

    MTLS=1 build proto

  Build with MbedTLS client and server using 4 concurrent threads (no minicrypto ASM algs for MbedTLS):

    -DN_THREADS=4" MTLS=1 build proto

  Build with MbedTLS client and OpenSSL server (no minicrypto ASM algs for MbedTLS):

    MTLS=1 OSSL=1 OPENSSL_SYS=1 build proto

  Build with OpenSSL client and server:

    OSSL=1 OPENSSL_SYS=1 build proto

  Build with AppleSSL client and OpenSSL server:

    SSL_BOTH=1 OPENSSL_SYS=1 build proto

  Build with MbedTLS client and server + minicrypto lib:

    MTLS=1 MINI=1 build proto

  Build with MbedTLS client and server (no minicrypto ASM algs for MbedTLS),
  except substitute AppleSSL crypto algs for the client side:

    HYBRID=1 build proto

On Linux:

  Build with MbedTLS client and server (no ASM crypto algs):

    MTLS=1 NOSSL=1 build proto

  Build with OpenSSL client and server:

    OSSL=1 build proto

  Build with MbedTLS client and OpenSSL server:

    MTLS=1 OSSL=1 build proto

  Build with MbedTLS client and server (no ASM crypto algs)
  using Profile-Guided Optimization:

    PGEN=1 MTLS=1 NOSSL=1 build proto && ./proto && PUSE=1 MTLS=1 NOSSL=1 build proto

Variations:

  To simulate less data-channel activity and more SSL renegotiations
  (RENEG default is 900):

  GCC_EXTRA="-DRENEG=90" build proto

  For verbose output, lower the number of xmit/recv iterations by defining
  ITER to be 10000 or less, e.g.

    GCC_EXTRA="-DITER=1000" build proto

  Crypto self-test (MbedTLS must be built with DEBUG_BUILD=1 or SELF_TEST=1):

    ./proto test

Caveats:

 When using MbedTLS as both client and server, make sure to build
 MbedTLS on Mac OS X with OSX_SERVER=1.

Typical output:

  $ time ./proto
  *** app bytes=73301015 net_bytes=146383320 data_bytes=36327640 prog=0000218807/0000218806 D=12600/600/12600/800 N=1982/1982 SH=17800/17800 HE=3/6
  real	0m11.003s
  user	0m10.981s
  sys	0m0.004s