FreeRDP/libfreerdp/crypto
Hardening dd6d829550 Allow transport_write calls to be non-blocking
This big patch allows to have non-blocking writes. To achieve
this, it slightly changes the way transport is handled. The misc transport
layers are handled with OpenSSL BIOs. In the chain we insert a
bufferedBIO that will bufferize write calls that couldn't be honored.

For an access with Tls security the BIO chain would look like this:
  FreeRdp Code ===> SSL bio ===> buffered BIO ===> socket BIO

The buffered BIO will store bytes that couldn't be send because of
blocking write calls.

This patch also rework TSG so that it would look like this in the
case of SSL security with TSG:
                                         (TSG in)
                              > SSL BIO => buffered BIO ==> socket BIO
                             /
FreeRdp => SSL BIO => TSG BIO
                             \
                              > SSL BIO => buffered BIO ==> socket BIO
                                        (TSG out)

So from the FreeRDP point of view sending something is only BIO_writing
on the frontBio (last BIO on the left).
2014-05-21 17:42:31 +02:00
..
test Changes for base64 2014-05-11 22:49:10 +02:00
base64.c Changes for base64 2014-05-11 22:49:10 +02:00
ber.c wfreerdp: fix most build warnings 2014-02-10 22:12:13 -05:00
certificate.c Treat OOM cases 2014-04-09 16:07:06 +02:00
CMakeLists.txt Changes for base64 2014-05-11 22:49:10 +02:00
crypto.c Adds some check to treat OOM problems + RDP security fix 2014-03-25 23:13:08 +01:00
der.c freerdp: purge deprecated stream utils 2013-05-08 16:09:16 -04:00
er.c Fixed issues found with clang-analyzer 2013-09-05 12:14:33 +02:00
per.c wfreerdp: fix most build warnings 2014-02-10 22:12:13 -05:00
tls.c Allow transport_write calls to be non-blocking 2014-05-21 17:42:31 +02:00