Module: wine Branch: master Commit: 842e0a5316225accc75cf472a51de9c20efe4857 URL: http://source.winehq.org/git/wine.git/?a=commit;h=842e0a5316225accc75cf472a5...
Author: Ken Thomases ken@codeweavers.com Date: Sun Mar 13 18:57:29 2011 -0500
secur32: Use schan_imp_get_connection_info to get MAC size.
---
dlls/secur32/schannel.c | 33 +++++++++++++++++++-------------- 1 files changed, 19 insertions(+), 14 deletions(-)
diff --git a/dlls/secur32/schannel.c b/dlls/secur32/schannel.c index 7b00c1d..ae12b8e 100644 --- a/dlls/secur32/schannel.c +++ b/dlls/secur32/schannel.c @@ -1041,20 +1041,25 @@ static SECURITY_STATUS SEC_ENTRY schan_QueryContextAttributesW( { case SECPKG_ATTR_STREAM_SIZES: { - SecPkgContext_StreamSizes *stream_sizes = buffer; - gnutls_mac_algorithm_t mac = pgnutls_mac_get(ctx->session); - size_t mac_size = pgnutls_mac_get_key_size(mac); - unsigned int block_size = schan_imp_get_session_cipher_block_size(ctx->session); - - TRACE("Using %zu mac bytes, block size %u\n", mac_size, block_size); - - /* These are defined by the TLS RFC */ - stream_sizes->cbHeader = 5; - stream_sizes->cbTrailer = mac_size + 256; /* Max 255 bytes padding + 1 for padding size */ - stream_sizes->cbMaximumMessage = 1 << 14; - stream_sizes->cbBuffers = 4; - stream_sizes->cbBlockSize = block_size; - return SEC_E_OK; + SecPkgContext_ConnectionInfo info; + SECURITY_STATUS status = schan_imp_get_connection_info(ctx->session, &info); + if (status == SEC_E_OK) + { + SecPkgContext_StreamSizes *stream_sizes = buffer; + size_t mac_size = info.dwHashStrength; + unsigned int block_size = schan_imp_get_session_cipher_block_size(ctx->session); + + TRACE("Using %zu mac bytes, block size %u\n", mac_size, block_size); + + /* These are defined by the TLS RFC */ + stream_sizes->cbHeader = 5; + stream_sizes->cbTrailer = mac_size + 256; /* Max 255 bytes padding + 1 for padding size */ + stream_sizes->cbMaximumMessage = 1 << 14; + stream_sizes->cbBuffers = 4; + stream_sizes->cbBlockSize = block_size; + } + + return status; } case SECPKG_ATTR_REMOTE_CERT_CONTEXT: {