mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Added bcrypt-BCryptSecretAgreement patchset
This commit is contained in:
parent
7a2d7b751d
commit
d25f4cf2e2
@ -0,0 +1,91 @@
|
||||
From 72d00367b9863fd84d47623b6811552e155fca84 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 5 Feb 2019 10:00:26 +1100
|
||||
Subject: [PATCH] bcrypt: Add BCryptDestroySecret/BCryptSecretAgreement stubs
|
||||
|
||||
---
|
||||
dlls/bcrypt/bcrypt.spec | 4 ++--
|
||||
dlls/bcrypt/bcrypt_main.c | 16 ++++++++++++++++
|
||||
include/bcrypt.h | 3 +++
|
||||
3 files changed, 21 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt.spec b/dlls/bcrypt/bcrypt.spec
|
||||
index 052a099..dfe08e7 100644
|
||||
--- a/dlls/bcrypt/bcrypt.spec
|
||||
+++ b/dlls/bcrypt/bcrypt.spec
|
||||
@@ -11,7 +11,7 @@
|
||||
@ stdcall BCryptDeriveKeyPBKDF2(ptr ptr long ptr long int64 ptr long long)
|
||||
@ stdcall BCryptDestroyHash(ptr)
|
||||
@ stdcall BCryptDestroyKey(ptr)
|
||||
-@ stub BCryptDestroySecret
|
||||
+@ stdcall BCryptDestroySecret(ptr)
|
||||
@ stdcall BCryptDuplicateHash(ptr ptr ptr long long)
|
||||
@ stdcall BCryptDuplicateKey(ptr ptr ptr long long)
|
||||
@ stdcall BCryptEncrypt(ptr ptr long ptr ptr long ptr long ptr long)
|
||||
@@ -44,7 +44,7 @@
|
||||
@ stdcall BCryptRemoveContextFunction(long wstr long wstr)
|
||||
@ stdcall BCryptRemoveContextFunctionProvider(long wstr long wstr wstr)
|
||||
@ stub BCryptResolveProviders
|
||||
-@ stub BCryptSecretAgreement
|
||||
+@ stdcall BCryptSecretAgreement(ptr ptr ptr long)
|
||||
@ stub BCryptSetAuditingInterface
|
||||
@ stub BCryptSetContextFunctionProperty
|
||||
@ stdcall BCryptSetProperty(ptr wstr ptr long long)
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 80bd14b..36451c9 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -1556,6 +1556,22 @@ NTSTATUS WINAPI BCryptDeriveKeyPBKDF2( BCRYPT_ALG_HANDLE handle,
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
+NTSTATUS WINAPI BCryptSecretAgreement(BCRYPT_KEY_HANDLE handle, BCRYPT_KEY_HANDLE key, BCRYPT_SECRET_HANDLE *secret, ULONG flags)
|
||||
+{
|
||||
+ FIXME( "%p, %p, %p, %08x\n", handle, key, secret, flags );
|
||||
+
|
||||
+ if(secret)
|
||||
+ *secret = (BCRYPT_SECRET_HANDLE *)0xDEADFEED;
|
||||
+
|
||||
+ return STATUS_SUCCESS;
|
||||
+}
|
||||
+
|
||||
+NTSTATUS WINAPI BCryptDestroySecret(BCRYPT_SECRET_HANDLE secret)
|
||||
+{
|
||||
+ FIXME( "%p\n", secret );
|
||||
+ return STATUS_SUCCESS;
|
||||
+}
|
||||
+
|
||||
BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
|
||||
{
|
||||
switch (reason)
|
||||
diff --git a/include/bcrypt.h b/include/bcrypt.h
|
||||
index ba78c1d..866914c 100644
|
||||
--- a/include/bcrypt.h
|
||||
+++ b/include/bcrypt.h
|
||||
@@ -211,6 +211,7 @@ typedef PVOID BCRYPT_ALG_HANDLE;
|
||||
typedef PVOID BCRYPT_KEY_HANDLE;
|
||||
typedef PVOID BCRYPT_HANDLE;
|
||||
typedef PVOID BCRYPT_HASH_HANDLE;
|
||||
+typedef PVOID BCRYPT_SECRET_HANDLE;
|
||||
|
||||
/* Flags for BCryptGenRandom */
|
||||
#define BCRYPT_RNG_USE_ENTROPY_IN_BUFFER 0x00000001
|
||||
@@ -228,6 +229,7 @@ NTSTATUS WINAPI BCryptDecrypt(BCRYPT_KEY_HANDLE, PUCHAR, ULONG, VOID *, PUCHAR,
|
||||
NTSTATUS WINAPI BCryptDeriveKeyPBKDF2(BCRYPT_ALG_HANDLE, PUCHAR, ULONG, PUCHAR, ULONG, ULONGLONG, PUCHAR, ULONG, ULONG);
|
||||
NTSTATUS WINAPI BCryptDestroyHash(BCRYPT_HASH_HANDLE);
|
||||
NTSTATUS WINAPI BCryptDestroyKey(BCRYPT_KEY_HANDLE);
|
||||
+NTSTATUS WINAPI BCryptDestroySecret(BCRYPT_SECRET_HANDLE);
|
||||
NTSTATUS WINAPI BCryptDuplicateHash(BCRYPT_HASH_HANDLE, BCRYPT_HASH_HANDLE *, UCHAR *, ULONG, ULONG);
|
||||
NTSTATUS WINAPI BCryptEncrypt(BCRYPT_KEY_HANDLE, PUCHAR, ULONG, VOID *, PUCHAR, ULONG, PUCHAR, ULONG, ULONG *, ULONG);
|
||||
NTSTATUS WINAPI BCryptEnumAlgorithms(ULONG, ULONG *, BCRYPT_ALGORITHM_IDENTIFIER **, ULONG);
|
||||
@@ -242,6 +244,7 @@ NTSTATUS WINAPI BCryptHash(BCRYPT_ALG_HANDLE, PUCHAR, ULONG, PUCHAR, ULONG, PUCH
|
||||
NTSTATUS WINAPI BCryptHashData(BCRYPT_HASH_HANDLE, PUCHAR, ULONG, ULONG);
|
||||
NTSTATUS WINAPI BCryptImportKeyPair(BCRYPT_ALG_HANDLE, BCRYPT_KEY_HANDLE, LPCWSTR, BCRYPT_KEY_HANDLE *, UCHAR *, ULONG, ULONG);
|
||||
NTSTATUS WINAPI BCryptOpenAlgorithmProvider(BCRYPT_ALG_HANDLE *, LPCWSTR, LPCWSTR, ULONG);
|
||||
+NTSTATUS WINAPI BCryptSecretAgreement(BCRYPT_KEY_HANDLE, BCRYPT_KEY_HANDLE, BCRYPT_SECRET_HANDLE *, ULONG);
|
||||
NTSTATUS WINAPI BCryptSetProperty(BCRYPT_HANDLE, LPCWSTR, PUCHAR, ULONG, ULONG);
|
||||
NTSTATUS WINAPI BCryptVerifySignature(BCRYPT_KEY_HANDLE, void *, UCHAR *, ULONG, UCHAR *, ULONG, ULONG);
|
||||
|
||||
--
|
||||
1.9.1
|
||||
|
@ -0,0 +1,78 @@
|
||||
From 315b52406fbddcaf9289b2a47e8498fba49f8278 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Tue, 5 Feb 2019 10:09:59 +1100
|
||||
Subject: [PATCH] bcrypt: Add BCryptDeriveKey stub
|
||||
|
||||
---
|
||||
dlls/bcrypt/bcrypt.spec | 2 +-
|
||||
dlls/bcrypt/bcrypt_main.c | 7 +++++++
|
||||
include/bcrypt.h | 15 +++++++++++++++
|
||||
3 files changed, 23 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt.spec b/dlls/bcrypt/bcrypt.spec
|
||||
index dfe08e7..4946ee5 100644
|
||||
--- a/dlls/bcrypt/bcrypt.spec
|
||||
+++ b/dlls/bcrypt/bcrypt.spec
|
||||
@@ -7,7 +7,7 @@
|
||||
@ stdcall BCryptCreateHash(ptr ptr ptr long ptr long long)
|
||||
@ stdcall BCryptDecrypt(ptr ptr long ptr ptr long ptr long ptr long)
|
||||
@ stub BCryptDeleteContext
|
||||
-@ stub BCryptDeriveKey
|
||||
+@ stdcall BCryptDeriveKey(ptr wstr ptr ptr long ptr long)
|
||||
@ stdcall BCryptDeriveKeyPBKDF2(ptr ptr long ptr long int64 ptr long long)
|
||||
@ stdcall BCryptDestroyHash(ptr)
|
||||
@ stdcall BCryptDestroyKey(ptr)
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 36451c9..ca2f274 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -1572,6 +1572,13 @@ NTSTATUS WINAPI BCryptDestroySecret(BCRYPT_SECRET_HANDLE secret)
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
+NTSTATUS WINAPI BCryptDeriveKey(BCRYPT_SECRET_HANDLE secret, LPCWSTR kdf, BCryptBufferDesc *parameter,
|
||||
+ PUCHAR derived, ULONG derived_size, ULONG *result, ULONG flags)
|
||||
+{
|
||||
+ FIXME( "%p, %s, %p, %p, %d, %p, %08x\n", secret, debugstr_w(kdf), parameter, derived, derived_size, result, flags );
|
||||
+ return STATUS_INTERNAL_ERROR;
|
||||
+}
|
||||
+
|
||||
BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
|
||||
{
|
||||
switch (reason)
|
||||
diff --git a/include/bcrypt.h b/include/bcrypt.h
|
||||
index 866914c..a5abf23 100644
|
||||
--- a/include/bcrypt.h
|
||||
+++ b/include/bcrypt.h
|
||||
@@ -204,6 +204,20 @@ typedef struct _BCRYPT_KEY_DATA_BLOB_HEADER
|
||||
ULONG cbKeyData;
|
||||
} BCRYPT_KEY_DATA_BLOB_HEADER, *PBCRYPT_KEY_DATA_BLOB_HEADER;
|
||||
|
||||
+typedef struct _BCryptBuffer
|
||||
+{
|
||||
+ ULONG cbBuffer;
|
||||
+ ULONG BufferType;
|
||||
+ void *pvBuffer;
|
||||
+} BCryptBuffer, *PBCryptBuffer;
|
||||
+
|
||||
+typedef struct _BCryptBufferDesc
|
||||
+{
|
||||
+ ULONG ulVersion;
|
||||
+ ULONG cBuffers;
|
||||
+ PBCryptBuffer pBuffers;
|
||||
+} BCryptBufferDesc, *PBCryptBufferDesc;
|
||||
+
|
||||
#define BCRYPT_KEY_DATA_BLOB_MAGIC 0x4d42444b
|
||||
#define BCRYPT_KEY_DATA_BLOB_VERSION1 1
|
||||
|
||||
@@ -226,6 +240,7 @@ typedef PVOID BCRYPT_SECRET_HANDLE;
|
||||
NTSTATUS WINAPI BCryptCloseAlgorithmProvider(BCRYPT_ALG_HANDLE, ULONG);
|
||||
NTSTATUS WINAPI BCryptCreateHash(BCRYPT_ALG_HANDLE, BCRYPT_HASH_HANDLE *, PUCHAR, ULONG, PUCHAR, ULONG, ULONG);
|
||||
NTSTATUS WINAPI BCryptDecrypt(BCRYPT_KEY_HANDLE, PUCHAR, ULONG, VOID *, PUCHAR, ULONG, PUCHAR, ULONG, ULONG *, ULONG);
|
||||
+NTSTATUS WINAPI BCryptDeriveKey(BCRYPT_SECRET_HANDLE, LPCWSTR, BCryptBufferDesc*, PUCHAR, ULONG, ULONG *, ULONG);
|
||||
NTSTATUS WINAPI BCryptDeriveKeyPBKDF2(BCRYPT_ALG_HANDLE, PUCHAR, ULONG, PUCHAR, ULONG, ULONGLONG, PUCHAR, ULONG, ULONG);
|
||||
NTSTATUS WINAPI BCryptDestroyHash(BCRYPT_HASH_HANDLE);
|
||||
NTSTATUS WINAPI BCryptDestroyKey(BCRYPT_KEY_HANDLE);
|
||||
--
|
||||
1.9.1
|
||||
|
2
patches/bcrypt-BCryptSecretAgreement/definition
Normal file
2
patches/bcrypt-BCryptSecretAgreement/definition
Normal file
@ -0,0 +1,2 @@
|
||||
Fixes: [46564] Add BCryptDestroySecret/BCryptSecretAgreement stubs.
|
||||
Depends: bcrypt-BCryptGenerateKeyPair
|
@ -98,6 +98,7 @@ patch_enable_all ()
|
||||
enable_avifile_dll16_AVIStreamGetFrame="$1"
|
||||
enable_bcrypt_BCryptDeriveKeyPBKDF2="$1"
|
||||
enable_bcrypt_BCryptGenerateKeyPair="$1"
|
||||
enable_bcrypt_BCryptSecretAgreement="$1"
|
||||
enable_comctl32_Listview_DrawItem="$1"
|
||||
enable_comdlg32_lpstrFileTitle="$1"
|
||||
enable_configure_Absolute_RPATH="$1"
|
||||
@ -459,6 +460,9 @@ patch_enable ()
|
||||
bcrypt-BCryptGenerateKeyPair)
|
||||
enable_bcrypt_BCryptGenerateKeyPair="$2"
|
||||
;;
|
||||
bcrypt-BCryptSecretAgreement)
|
||||
enable_bcrypt_BCryptSecretAgreement="$2"
|
||||
;;
|
||||
comctl32-Listview_DrawItem)
|
||||
enable_comctl32_Listview_DrawItem="$2"
|
||||
;;
|
||||
@ -2190,6 +2194,13 @@ if test "$enable_nvapi_Stub_DLL" -eq 1; then
|
||||
enable_nvcuda_CUDA_Support=1
|
||||
fi
|
||||
|
||||
if test "$enable_bcrypt_BCryptSecretAgreement" -eq 1; then
|
||||
if test "$enable_bcrypt_BCryptGenerateKeyPair" -gt 1; then
|
||||
abort "Patchset bcrypt-BCryptGenerateKeyPair disabled, but bcrypt-BCryptSecretAgreement depends on that."
|
||||
fi
|
||||
enable_bcrypt_BCryptGenerateKeyPair=1
|
||||
fi
|
||||
|
||||
if test "$enable_advapi32_Token_Integrity_Level" -eq 1; then
|
||||
if test "$enable_Staging" -gt 1; then
|
||||
abort "Patchset Staging disabled, but advapi32-Token_Integrity_Level depends on that."
|
||||
@ -2566,6 +2577,26 @@ if test "$enable_bcrypt_BCryptGenerateKeyPair" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset bcrypt-BCryptSecretAgreement
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * bcrypt-BCryptGenerateKeyPair
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#46564] Add BCryptDestroySecret/BCryptSecretAgreement stubs.
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/bcrypt/bcrypt.spec, dlls/bcrypt/bcrypt_main.c, include/bcrypt.h
|
||||
# |
|
||||
if test "$enable_bcrypt_BCryptSecretAgreement" -eq 1; then
|
||||
patch_apply bcrypt-BCryptSecretAgreement/0001-bcrypt-Add-BCryptDestroySecret-BCryptSecretAgreement.patch
|
||||
patch_apply bcrypt-BCryptSecretAgreement/0002-bcrypt-Add-BCryptDeriveKey-stub.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Alistair Leslie-Hughes", "bcrypt: Add BCryptDestroySecret/BCryptSecretAgreement stubs.", 1 },';
|
||||
printf '%s\n' '+ { "Alistair Leslie-Hughes", "bcrypt: Add BCryptDeriveKey stub.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset comctl32-Listview_DrawItem
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
|
Loading…
x
Reference in New Issue
Block a user