Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
7681c358
Commit
7681c358
authored
Jul 08, 2022
by
Hans Leidekker
Committed by
Alexandre Julliard
Jul 12, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msv1_0: Add support for SECPKG_ATTR_KEY_INFO.
parent
19d18bbb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
1 deletion
+37
-1
main.c
dlls/msv1_0/main.c
+37
-1
No files found.
dlls/msv1_0/main.c
View file @
7681c358
...
...
@@ -30,6 +30,7 @@
#include "ntsecpkg.h"
#include "rpc.h"
#include "wincred.h"
#include "wincrypt.h"
#include "lmwksta.h"
#include "lmapibuf.h"
#include "lmerr.h"
...
...
@@ -1134,7 +1135,6 @@ static NTSTATUS NTAPI ntlm_SpQueryContextAttributes( LSA_SEC_HANDLE handle, ULON
X
(
SECPKG_ATTR_ACCESS_TOKEN
);
X
(
SECPKG_ATTR_AUTHORITY
);
X
(
SECPKG_ATTR_DCE_INFO
);
X
(
SECPKG_ATTR_KEY_INFO
);
X
(
SECPKG_ATTR_LIFESPAN
);
X
(
SECPKG_ATTR_NAMES
);
X
(
SECPKG_ATTR_NATIVE_NAMES
);
...
...
@@ -1169,6 +1169,42 @@ static NTSTATUS NTAPI ntlm_SpQueryContextAttributes( LSA_SEC_HANDLE handle, ULON
info
->
NegotiationState
=
SECPKG_NEGOTIATION_COMPLETE
;
return
SEC_E_OK
;
}
case
SECPKG_ATTR_KEY_INFO
:
{
struct
ntlm_ctx
*
ctx
=
(
struct
ntlm_ctx
*
)
handle
;
SecPkgContext_KeyInfoW
*
info
=
(
SecPkgContext_KeyInfoW
*
)
buf
;
SEC_WCHAR
*
signature_alg
;
ULONG
signature_size
,
signature_algid
;
if
(
ctx
->
flags
&
FLAG_NEGOTIATE_KEY_EXCHANGE
)
{
signature_alg
=
(
SEC_WCHAR
*
)
L"HMAC-MD5"
;
signature_size
=
sizeof
(
L"HMAC-MD5"
);
signature_algid
=
0xffffff76
;
}
else
{
signature_alg
=
(
SEC_WCHAR
*
)
L"RSADSI RC4-CRC32"
;
signature_size
=
sizeof
(
L"RSADSI RC4-CRC32"
);
signature_algid
=
0xffffff7c
;
}
if
(
!
(
info
->
sSignatureAlgorithmName
=
RtlAllocateHeap
(
GetProcessHeap
(),
0
,
signature_size
)))
return
SEC_E_INSUFFICIENT_MEMORY
;
wcscpy
(
info
->
sSignatureAlgorithmName
,
signature_alg
);
if
(
!
(
info
->
sEncryptAlgorithmName
=
RtlAllocateHeap
(
GetProcessHeap
(),
0
,
sizeof
(
L"RSADSI RC4"
)
)))
{
RtlFreeHeap
(
GetProcessHeap
(),
0
,
info
->
sSignatureAlgorithmName
);
return
SEC_E_INSUFFICIENT_MEMORY
;
}
wcscpy
(
info
->
sEncryptAlgorithmName
,
L"RSADSI RC4"
);
info
->
KeySize
=
sizeof
(
ctx
->
session_key
)
*
8
;
info
->
SignatureAlgorithm
=
signature_algid
;
info
->
EncryptAlgorithm
=
CALG_RC4
;
return
SEC_E_OK
;
}
#undef X
default:
FIXME
(
"unknown attribute %lu
\n
"
,
attr
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment