secur32: Fix default return flags for schannel contexts.

Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Hans Leidekker 2019-02-08 09:58:13 +01:00 committed by Alexandre Julliard
parent e31bc3dbdb
commit 5a0de62cf9
2 changed files with 4 additions and 11 deletions

View file

@ -915,17 +915,9 @@ static SECURITY_STATUS SEC_ENTRY schan_InitializeSecurityContextW(
pInput->pBuffers[1].cbBuffer = pInput->pBuffers[0].cbBuffer-ctx->transport.in.offset;
}
*pfContextAttr = 0;
if (ctx->req_ctx_attr & ISC_REQ_REPLAY_DETECT)
*pfContextAttr |= ISC_RET_REPLAY_DETECT;
if (ctx->req_ctx_attr & ISC_REQ_SEQUENCE_DETECT)
*pfContextAttr |= ISC_RET_SEQUENCE_DETECT;
if (ctx->req_ctx_attr & ISC_REQ_CONFIDENTIALITY)
*pfContextAttr |= ISC_RET_CONFIDENTIALITY;
*pfContextAttr = ISC_RET_REPLAY_DETECT | ISC_RET_SEQUENCE_DETECT | ISC_RET_CONFIDENTIALITY | ISC_RET_STREAM;
if (ctx->req_ctx_attr & ISC_REQ_ALLOCATE_MEMORY)
*pfContextAttr |= ISC_RET_ALLOCATED_MEMORY;
if (ctx->req_ctx_attr & ISC_REQ_STREAM)
*pfContextAttr |= ISC_RET_STREAM;
if (ctx->req_ctx_attr & ISC_REQ_USE_SUPPLIED_CREDS)
*pfContextAttr |= ISC_RET_USED_SUPPLIED_CREDS;

View file

@ -860,7 +860,7 @@ todo_wine
buf->BufferType = SECBUFFER_TOKEN;
status = InitializeSecurityContextA(&cred_handle, &context, (SEC_CHAR *)"localhost",
ISC_REQ_CONFIDENTIALITY|ISC_REQ_STREAM|ISC_REQ_USE_SUPPLIED_CREDS,
ISC_REQ_USE_SUPPLIED_CREDS,
0, 0, &buffers[1], 0, NULL, &buffers[0], &attrs, NULL);
buffers[1].pBuffers[0].cbBuffer = buf_size;
}
@ -871,7 +871,8 @@ todo_wine
skip("Handshake failed\n");
return;
}
ok(attrs & (ISC_RET_CONFIDENTIALITY|ISC_RET_STREAM|ISC_RET_USED_SUPPLIED_CREDS), "got %08x\n", attrs);
ok(attrs == (ISC_RET_REPLAY_DETECT|ISC_RET_SEQUENCE_DETECT|ISC_RET_CONFIDENTIALITY|ISC_RET_STREAM|ISC_RET_USED_SUPPLIED_CREDS),
"got %08x\n", attrs);
status = QueryCredentialsAttributesA(&cred_handle, SECPKG_CRED_ATTR_NAMES, &names);
ok(status == SEC_E_NO_CREDENTIALS || status == SEC_E_UNSUPPORTED_FUNCTION /* before Vista */, "expected SEC_E_NO_CREDENTIALS, got %08x\n", status);