Jacek Caban : secur32: Improve SECPKG_ATTR_CIPHER_STRENGTHS stub.
Alexandre Julliard
julliard at winehq.org
Wed Mar 12 17:23:59 CDT 2008
Module: wine
Branch: master
Commit: 87368bb623849b500e6238903ac7e6dffb018e5b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=87368bb623849b500e6238903ac7e6dffb018e5b
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Mar 12 18:35:10 2008 +0100
secur32: Improve SECPKG_ATTR_CIPHER_STRENGTHS stub.
---
dlls/secur32/schannel.c | 12 ++++++++----
dlls/secur32/tests/schannel.c | 15 +++++++++++++++
2 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/dlls/secur32/schannel.c b/dlls/secur32/schannel.c
index b74e54c..742cdb3 100644
--- a/dlls/secur32/schannel.c
+++ b/dlls/secur32/schannel.c
@@ -39,7 +39,7 @@ static SECURITY_STATUS schan_QueryCredentialsAttributes(
if (pBuffer)
{
/* FIXME: get from CryptoAPI */
- FIXME("%d: stub\n", ulAttribute);
+ FIXME("SECPKG_ATTR_SUPPORTED_ALGS: stub\n");
ret = SEC_E_UNSUPPORTED_FUNCTION;
}
else
@@ -48,9 +48,13 @@ static SECURITY_STATUS schan_QueryCredentialsAttributes(
case SECPKG_ATTR_CIPHER_STRENGTHS:
if (pBuffer)
{
+ SecPkgCred_CipherStrengths *r = (SecPkgCred_CipherStrengths*)pBuffer;
+
/* FIXME: get from CryptoAPI */
- FIXME("%d: stub\n", ulAttribute);
- ret = SEC_E_UNSUPPORTED_FUNCTION;
+ FIXME("SECPKG_ATTR_CIPHER_STRENGTHS: semi-stub\n");
+ r->dwMinimumCipherStrength = 40;
+ r->dwMaximumCipherStrength = 168;
+ ret = SEC_E_OK;
}
else
ret = SEC_E_INTERNAL_ERROR;
@@ -59,7 +63,7 @@ static SECURITY_STATUS schan_QueryCredentialsAttributes(
if (pBuffer)
{
/* FIXME: get from OpenSSL? */
- FIXME("%d: stub\n", ulAttribute);
+ FIXME("SECPKG_ATTR_SUPPORTED_PROTOCOLS: stub\n");
ret = SEC_E_UNSUPPORTED_FUNCTION;
}
else
diff --git a/dlls/secur32/tests/schannel.c b/dlls/secur32/tests/schannel.c
index b19590a..2fc793b 100644
--- a/dlls/secur32/tests/schannel.c
+++ b/dlls/secur32/tests/schannel.c
@@ -31,6 +31,7 @@ static HMODULE secdll, crypt32dll;
static ACQUIRE_CREDENTIALS_HANDLE_FN_A pAcquireCredentialsHandleA;
static FREE_CREDENTIALS_HANDLE_FN pFreeCredentialsHandle;
+static QUERY_CREDENTIALS_ATTRIBUTES_FN_A pQueryCredentialsAttributesA;
static PCCERT_CONTEXT (WINAPI *pCertCreateCertificateContext)(DWORD,const BYTE*,DWORD);
static BOOL (WINAPI *pCertFreeCertificateContext)(PCCERT_CONTEXT);
@@ -120,6 +121,7 @@ static void InitFunctionPtrs(void)
{
GET_PROC(secdll, AcquireCredentialsHandleA);
GET_PROC(secdll, FreeCredentialsHandle);
+ GET_PROC(secdll, QueryCredentialsAttributesA);
}
GET_PROC(advapi32dll, CryptAcquireContextW);
@@ -134,6 +136,18 @@ static void InitFunctionPtrs(void)
#undef GET_PROC
}
+static void test_strength(PCredHandle handle)
+{
+ SecPkgCred_CipherStrengths strength = {-1,-1};
+ SECURITY_STATUS st;
+
+ st = pQueryCredentialsAttributesA(handle, SECPKG_ATTR_CIPHER_STRENGTHS, &strength);
+ ok(st == SEC_E_OK, "QueryCredentialsAttributesA failed: %u\n", GetLastError());
+ ok(strength.dwMinimumCipherStrength, "dwMinimumCipherStrength not changed\n");
+ ok(strength.dwMaximumCipherStrength, "dwMaximumCipherStrength not changed\n");
+ trace("strength %d - %d\n", strength.dwMinimumCipherStrength, strength.dwMaximumCipherStrength);
+}
+
static void testAcquireSecurityContext(void)
{
SECURITY_STATUS st;
@@ -347,6 +361,7 @@ static void testAcquireSecurityContext(void)
st = pAcquireCredentialsHandleA(NULL, unisp_name_a, SECPKG_CRED_INBOUND,
NULL, &schanCred, NULL, NULL, &cred, NULL);
ok(st == SEC_E_OK, "AcquireCredentialsHandleA failed: %08x\n", st);
+ test_strength(&cred);
pFreeCredentialsHandle(&cred);
/* How about more than one cert? */
More information about the wine-cvs
mailing list