Head check on SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS option

2012-12-05 Thread no_spam_98
The SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS option only affects how the OUTBOUND 
(i.e. SSL_write) records are split (or not), correct?  It doesn't define any 
behavior for how the INBOUND records (i.e. SSL_read) should be split (or not), 
correct?

So, it's possible that different sides of an SSL connection could be splitting 
(or not) the records different ways.  For example, suppose the client does NOT 
have the SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS option set, but the server does.  
In this scenario the records coming from the client going to the server would 
be split and contain empty fragments, but the records coming from the server 
going to the client would NOT contain empty fragments.  Is that correct?

Thank you.


SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS option...

2008-04-09 Thread Prabhu S
Hi,

The client is configured with SSLv3_client_method.

*ctx = SSL_CTX_new(SSLv3_client_method());*

 Whenever the client tries to connect to server with any CBC ciphers like
DES-CBC3-SHA, the SSL handshake is successful but when the
client tries to send data to server,say 10 bytes, I see from ethereal that
two application records are sent. But the server does not report reading
that data. With cipher RC4-MD5, this is not seen. 10 bytes are sent in one
application record and server reports the receiving of that particular data.

Now when I set the *SSL_CTX_set_options*
with*SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS
*(or SSL_OP_ALL), data exchange with CBC ciphers are successful.

What is happening here? Can someone please explain the theory behind
*SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS
*option?

Thanks,
Prabhu. S


Re: SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS option...

2008-04-09 Thread jimmy bahuleyan

Prabhu S wrote:

Hi,

The client is configured with SSLv3_client_method.
   
*ctx = SSL_CTX_new(SSLv3_client_method());*


 Whenever the client tries to connect to server with any CBC ciphers 
like DES-CBC3-SHA, the SSL handshake is successful but when the
client tries to send data to server,say 10 bytes, I see from ethereal 
that two application records are sent. But the server does not report 
reading that data. With cipher RC4-MD5, this is not seen. 10 bytes are 
sent in one application record and server reports the receiving of that 
particular data.


Now when I set the *SSL_CTX_set_options* with* 
SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS *(or SSL_OP_ALL), data exchange with 
CBC ciphers are successful.


It's isn't exactly unsuccessful with the empty fragments. (They only 
apply for block ciphers, so you don't have it with RC4).




What is happening here? Can someone please explain the theory behind 
*SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS *option?




See http://www.openssl.org/~bodo/tls-cbc.txt

-jb
--
Real computer scientists don't comment their code.  The identifiers are
so long they can't afford the disk space.
__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   [EMAIL PROTECTED]