I see you got it working! Just some comments below

On 05/06/15 12:34, Lorenzo Miniero wrote:
> I've started looking into filters and I have some doubts, though, also
> taking into account what you suggested, and I apologize again if this
> turns out to be silly. As far as I've understood, what I should do is
> changing the current pattern I use for outgoing packets:
> 
>       application < memBIO < ssl
> 
> to something like this:
> 
>       application < memBIO < filter < ssl
> 
> or this:
> 
>       application < filter < memBIO < ssl
> 
> that is, a new BIO filter that enforces the fragmentation I talked
> about. Not exactly sure about which one should be the way to go, but
> I've given this some thought.

I took a very brief look at your code and I see you went with the first
option. That's fine, although I would have done it slightly differently:

application <--   -- ssl
              |   |
              |   V
              filter
              ^   V
              memBIO

i.e. the filter does all the reading and writing to the memBIO. libssl
calls BIO_write(), the filter takes note of the packet sizes, and then
writes to the membBIO. When the application wants to read data it calls
BIO_read on the filter, and the filter figures out how big the packet
needs to be and reads that amount out of the memBIO. Your way works too
though.

Matt


_______________________________________________
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users

Reply via email to