• M
    Implement write pipeline support in libssl · d102d9df
    Matt Caswell 提交于
    Use the new pipeline cipher capability to encrypt multiple records being
    written out all in one go. Two new SSL/SSL_CTX parameters can be used to
    control how this works: max_pipelines and split_send_fragment.
    
    max_pipelines defines the maximum number of pipelines that can ever be used
    in one go for a single connection. It must always be less than or equal to
    SSL_MAX_PIPELINES (currently defined to be 32). By default only one
    pipeline will be used (i.e. normal non-parallel operation).
    
    split_send_fragment defines how data is split up into pipelines. The number
    of pipelines used will be determined by the amount of data provided to the
    SSL_write call divided by split_send_fragment. For example if
    split_send_fragment is set to 2000 and max_pipelines is 4 then:
    SSL_write called with 0-2000 bytes == 1 pipeline used
    SSL_write called with 2001-4000 bytes == 2 pipelines used
    SSL_write called with 4001-6000 bytes == 3 pipelines used
    SSL_write_called with 6001+ bytes == 4 pipelines used
    
    split_send_fragment must always be less than or equal to max_send_fragment.
    By default it is set to be equal to max_send_fragment. This will mean that
    the same number of records will always be created as would have been
    created in the non-parallel case, although the data will be apportioned
    differently. In the parallel case data will be spread equally between the
    pipelines.
    Reviewed-by: NTim Hudson <tjh@openssl.org>
    d102d9df
ssl_locl.h 82.7 KB