Title: intoto Stationery
 
Hi.,
 
Following is  the comments written on s3_pkt.c before the function ssl3_read_bytes
 
Return up to 'len' payload bytes received in 'type' records.
 * 'type' is one of the following:
 *
 *   -  SSL3_RT_HANDSHAKE (when ssl3_get_message calls us)
 *   -  SSL3_RT_APPLICATION_DATA (when ssl3_read calls us)
 *   -  0 (during a shutdown, no data has to be returned)
 *
 * If we don't have stored data to work from, read a SSL/TLS record first
 * (possibly multiple records if we still don't have anything to return).
 *
 * This function must handle any surprises the peer may have for us, such as
 * Alert records (e.g. close_notify), ChangeCipherSpec records (not really
 * a surprise, but handled as if it were), or renegotiation requests.
 * Also if record payloads contain fragments too small to process, we store
 * them until there is enough for the respective protocol (the record protocol
 * may use arbitrary fragmentation and even interleaving):
 *     Change cipher spec protocol
 *             just 1 byte needed, no need for keeping anything stored
 *     Alert protocol
 *             2 bytes needed (AlertLevel, AlertDescription)
 *     Handshake protocol
 *             4 bytes needed (HandshakeType, uint24 length) -- we just have
 *             to detect unexpected Client Hello and Hello Request messages
 *             here, anything else is handled by higher layers
 *     Application data protocol
 *             none of our business
 */
Can anyone explain what the highlighted line means? Does app data get cached
within the ssl read buffers and the app end getting some WANT errors?
For example if the given application buffer size to SSL_read happens to be less
than the next incoming SSL Record size, what will happen? how does SSL_read
handle this case, i.e if I pass a 16K buffer and I have 2 records on the receive
queue which are 10k and 8k, how much of the data will SSL_read return and will
the remaining 6k of the 2nd record get cached within ssl read buffers?
 
Also if I set the SO_RCVLOWAT option to 4bytes, can I avoid caching of
SSL Handshake messages?
 
My requirement is that I dont want SSL to cache any bytes whatsoever.
 
Kindly help me on this.
 
Thanks
--Gayathri
 
 
 
 
 

Reply via email to