diff --git a/patches/bcrypt-Improvements/0028-bcrypt-Partial-implementation-of-BCryptImportKey-and.patch b/patches/bcrypt-Improvements/0028-bcrypt-Partial-implementation-of-BCryptImportKey-and.patch index 9d6bef02..3d1d2147 100644 --- a/patches/bcrypt-Improvements/0028-bcrypt-Partial-implementation-of-BCryptImportKey-and.patch +++ b/patches/bcrypt-Improvements/0028-bcrypt-Partial-implementation-of-BCryptImportKey-and.patch @@ -1,4 +1,4 @@ -From f9a0c45bab75625d7ce4fcf0cbc49407e87a7a43 Mon Sep 17 00:00:00 2001 +From 8970fffeee459389818a2e96940393692d082e95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sun, 13 Aug 2017 04:28:43 +0200 Subject: bcrypt: Partial implementation of BCryptImportKey and @@ -8,8 +8,9 @@ Subject: bcrypt: Partial implementation of BCryptImportKey and dlls/bcrypt/bcrypt.spec | 4 +- dlls/bcrypt/bcrypt_main.c | 101 +++++++++++++++++++++++++++++++++++++++++++++ dlls/bcrypt/tests/bcrypt.c | 46 +++++++++++++++++++++ + dlls/ncrypt/ncrypt.spec | 4 +- include/bcrypt.h | 14 +++++++ - 4 files changed, 163 insertions(+), 2 deletions(-) + 5 files changed, 165 insertions(+), 4 deletions(-) diff --git a/dlls/bcrypt/bcrypt.spec b/dlls/bcrypt/bcrypt.spec index f5911d2cd40..f8a8c45a1d5 100644 @@ -34,10 +35,10 @@ index f5911d2cd40..f8a8c45a1d5 100644 @ stdcall BCryptOpenAlgorithmProvider(ptr wstr wstr long) @ stub BCryptQueryContextConfiguration diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c -index d269083eca3..2b476484a52 100644 +index 80b0480265a..dc865ea9d07 100644 --- a/dlls/bcrypt/bcrypt_main.c +++ b/dlls/bcrypt/bcrypt_main.c -@@ -1007,6 +1007,13 @@ static NTSTATUS key_get_tag( struct key *key, UCHAR *tag, ULONG len ) +@@ -1016,6 +1016,13 @@ static NTSTATUS key_get_tag( struct key *key, UCHAR *tag, ULONG len ) return STATUS_SUCCESS; } @@ -51,7 +52,7 @@ index d269083eca3..2b476484a52 100644 static NTSTATUS key_destroy( struct key *key ) { if (key->handle) pgnutls_cipher_deinit( key->handle ); -@@ -1074,6 +1081,12 @@ static NTSTATUS key_get_tag( struct key *key, UCHAR *tag, ULONG len ) +@@ -1083,6 +1090,12 @@ static NTSTATUS key_get_tag( struct key *key, UCHAR *tag, ULONG len ) return STATUS_NOT_IMPLEMENTED; } @@ -64,7 +65,7 @@ index d269083eca3..2b476484a52 100644 static NTSTATUS key_destroy( struct key *key ) { ERR( "support for keys not available at build time\n" ); -@@ -1140,6 +1153,94 @@ NTSTATUS WINAPI BCryptDuplicateKey( BCRYPT_KEY_HANDLE handle, BCRYPT_KEY_HANDLE +@@ -1149,6 +1162,94 @@ NTSTATUS WINAPI BCryptDuplicateKey( BCRYPT_KEY_HANDLE handle, BCRYPT_KEY_HANDLE return STATUS_SUCCESS; } @@ -160,7 +161,7 @@ index d269083eca3..2b476484a52 100644 { struct key *key = handle; diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c -index 9f34a549789..32e25a94a55 100644 +index 3bc1ee526f3..98d4961879c 100644 --- a/dlls/bcrypt/tests/bcrypt.c +++ b/dlls/bcrypt/tests/bcrypt.c @@ -47,6 +47,9 @@ static NTSTATUS (WINAPI *pBCryptDecrypt)(BCRYPT_KEY_HANDLE, PUCHAR, ULONG, VOID @@ -173,7 +174,7 @@ index 9f34a549789..32e25a94a55 100644 static void test_BCryptGenRandom(void) { -@@ -1540,6 +1543,46 @@ static void test_BCryptDecrypt(void) +@@ -1572,6 +1575,46 @@ static void test_BCryptDecrypt(void) ok(ret == STATUS_SUCCESS, "got %08x\n", ret); } @@ -220,7 +221,7 @@ index 9f34a549789..32e25a94a55 100644 START_TEST(bcrypt) { HMODULE module; -@@ -1568,6 +1611,8 @@ START_TEST(bcrypt) +@@ -1600,6 +1643,8 @@ START_TEST(bcrypt) pBCryptDecrypt = (void *)GetProcAddress(module, "BCryptDecrypt"); pBCryptDuplicateKey = (void *)GetProcAddress(module, "BCryptDuplicateKey"); pBCryptDestroyKey = (void *)GetProcAddress(module, "BCryptDestroyKey"); @@ -229,7 +230,7 @@ index 9f34a549789..32e25a94a55 100644 test_BCryptGenRandom(); test_BCryptGetFipsAlgorithmMode(); -@@ -1581,6 +1626,7 @@ START_TEST(bcrypt) +@@ -1613,6 +1658,7 @@ START_TEST(bcrypt) test_BCryptGenerateSymmetricKey(); test_BCryptEncrypt(); test_BCryptDecrypt(); @@ -237,6 +238,28 @@ index 9f34a549789..32e25a94a55 100644 if (pBCryptHash) /* >= Win 10 */ test_BcryptHash(); +diff --git a/dlls/ncrypt/ncrypt.spec b/dlls/ncrypt/ncrypt.spec +index b14a332e18f..478c2cfb1da 100644 +--- a/dlls/ncrypt/ncrypt.spec ++++ b/dlls/ncrypt/ncrypt.spec +@@ -22,7 +22,7 @@ + @ stub BCryptEnumContexts + @ stub BCryptEnumProviders + @ stub BCryptEnumRegisteredProviders +-@ stub BCryptExportKey ++@ stdcall BCryptExportKey(ptr ptr wstr ptr long ptr long) bcrypt.BCryptExportKey + @ stub BCryptFinalizeKeyPair + @ stdcall BCryptFinishHash(ptr ptr long long) bcrypt.BCryptFinishHash + @ stub BCryptFreeBuffer +@@ -33,7 +33,7 @@ + @ stdcall BCryptGetProperty(ptr wstr ptr long ptr long) bcrypt.BCryptGetProperty + @ stdcall BCryptHash(ptr ptr long ptr long ptr long) bcrypt.BCryptHash + @ stdcall BCryptHashData(ptr ptr long long) bcrypt.BCryptHashData +-@ stub BCryptImportKey ++@ stdcall BCryptImportKey(ptr ptr wstr ptr ptr long ptr long long) bcrypt.BCryptImportKey + @ stub BCryptImportKeyPair + @ stub BCryptKeyDerivation + @ stdcall BCryptOpenAlgorithmProvider(ptr wstr wstr long) bcrypt.BCryptOpenAlgorithmProvider diff --git a/include/bcrypt.h b/include/bcrypt.h index acf2f30e21c..de812ffe333 100644 --- a/include/bcrypt.h