Re: Replacement of functions that operate with sockets

2011-06-22 Thread David Schwartz
On 6/22/2011 3:20 AM, ml.vladimbe...@gmail.com wrote: Where can I find this example with BIO pairs? I can't understand only with openssl's documentation how to work with BIO pairs. I will be grateful for the help. Look in ssl/ssltest.c, in the doit_biopair function. DS _

Re: Replacement of functions that operate with sockets

2011-06-22 Thread ml.vladimbelov
David Schwartz(Wednesday, June 22, 2011 12:04 PM) : I do exactly this using BIO pairs. I manage all four data streams. When the application wants to send data to the other side, I hand it to OpenSSL. When I receive data on the socket, I hand it to OpenSSL. When I can send data on the socket, I

Re: Replacement of functions that operate with sockets

2011-06-22 Thread David Schwartz
On 6/21/2011 2:53 AM, ml.vladimbe...@gmail.com wrote: Jim, for me the main goal to replace functions that operate with sockets is performance. I want to use OpenSSL with Windows IO Completion ports. The method that you suggest is very interesting but the main is not achieved - OpenSSL is still w

Re: Replacement of functions that operate with sockets

2011-06-22 Thread David Schwartz
On 6/21/2011 2:40 AM, ml.vladimbe...@gmail.com wrote: The fourth function is SSL_EncryptUserData, which encrypt our own application data before we can send their to secure channel: int SSL_EncryptApplicationData(char *buf_in, int buf_in_len, char buf_out, int buf_out_len, int *need_buf_out_len)

Re: Replacement of functions that operate with sockets

2011-06-21 Thread ml.vladimbelov
Some corrections of SSL_EncryptApplicationData function. By SSL/TLS protocol data is send in packets not more than defined value(as i know 16Kb). That's why we must define this function differently and add one function for freeing buffers: typedef struct TBUFS { char *buf; int

Re: Replacement of functions that operate with sockets

2011-06-21 Thread ml.vladimbelov
Jim Segrave wrote: Why not simply create a second socket - your app reads from that, does whatever is needed and writes to the openssl socket. When openssl writes to its socket, you read it, do whatever, then write it out your socket? Jim, for me the main goal to replace functions that operat

Re: Replacement of functions that operate with sockets

2011-06-21 Thread ml.vladimbelov
David Schwartz wrote: Well that wouldn't work as stated. How would OpenSSL know when it was time to call WriteSocket? You will have to call into OpenSSL when you want to see if has any data it needs to write to the socket. In fact, you will have to manage *four* I/O streams to and from OpenSSL

Re: Replacement of functions that operate with sockets

2011-06-21 Thread Jim Segrave
On Mon 20 Jun 2011 (11:00 -0700), David Schwartz wrote: > On 6/15/2011 11:57 AM, ml.vladimbe...@gmail.com wrote: >> Hello. >> By default OpenSSL itself works with sockets. I would want to implement >> operation with sockets without admitting it to OpenSSL. I.e. for >> example, when OpenSSL wants to

Re: Replacement of functions that operate with sockets

2011-06-20 Thread David Schwartz
On 6/15/2011 11:57 AM, ml.vladimbe...@gmail.com wrote: Hello. By default OpenSSL itself works with sockets. I would want to implement operation with sockets without admitting it to OpenSSL. I.e. for example, when OpenSSL wants to write down something in a socket, it should cause my function and I

Re: Replacement of functions that operate with sockets

2011-06-15 Thread Michael S. Zick
On Wed June 15 2011, Wim Lewis wrote: > > On 15 Jun 2011, at 11:57 AM, wrote: > > Whether is it possible to implement? I have read in the documentation about > > BIO-functions, and could not understand is it possible to implement or not. > > Thanks for any help or suggestions. > > Yes, this is

Re: Replacement of functions that operate with sockets

2011-06-15 Thread Wim Lewis
On 15 Jun 2011, at 11:57 AM, wrote: > Whether is it possible to implement? I have read in the documentation about > BIO-functions, and could not understand is it possible to implement or not. > Thanks for any help or suggestions. Yes, this is possible. It is asked on this mailing list every no