You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Rebased against c3beca6c8fc8c07ecd992e64f8f8d0dda3a10ac8
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
From 493f7a848054d2d11d4f9c915a46055ba6f2bf24 Mon Sep 17 00:00:00 2001
|
||||
From eafc346618f1b1c5355f67ccb4381ac708d8cffe Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 04:38:15 +0100
|
||||
Subject: [PATCH] bcrypt/tests: Add test for bugs in BCryptGetProperty.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 2938bda81ec62e4cfee5b1af3ed4d218ce673eff Mon Sep 17 00:00:00 2001
|
||||
From 65adbaee97870e85cab097ac3d6b2929d1d69ffd Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 05:37:02 +0100
|
||||
Subject: [PATCH] bcrypt/tests: Add tests for AES GCM mode.
|
||||
|
@@ -1,18 +1,18 @@
|
||||
From 882e1172fa4b2ad6f3746d8d3f1fa40eaa2cd40c Mon Sep 17 00:00:00 2001
|
||||
From 53b662ae4f93b518e1e140f765c04b23a1fc10c7 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 06:18:01 +0100
|
||||
Subject: [PATCH] bcrypt: Pass object to get_{alg,hash}_property instead of
|
||||
alg_id.
|
||||
|
||||
---
|
||||
dlls/bcrypt/bcrypt_main.c | 30 +++++++++++++++---------------
|
||||
1 file changed, 15 insertions(+), 15 deletions(-)
|
||||
dlls/bcrypt/bcrypt_main.c | 32 ++++++++++++++++----------------
|
||||
1 file changed, 16 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index c064b63..b23e1ea 100644
|
||||
index 72b5df2..c780976 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -509,15 +509,15 @@ static NTSTATUS generic_alg_property( enum alg_id id, const WCHAR *prop, UCHAR *
|
||||
@@ -510,15 +510,15 @@ static NTSTATUS generic_alg_property( enum alg_id id, const WCHAR *prop, UCHAR *
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ index c064b63..b23e1ea 100644
|
||||
{
|
||||
case ALG_ID_AES:
|
||||
if (!strcmpW( prop, BCRYPT_BLOCK_LENGTH ))
|
||||
@@ -566,11 +566,11 @@ static NTSTATUS get_alg_property( enum alg_id id, const WCHAR *prop, UCHAR *buf,
|
||||
@@ -567,11 +567,11 @@ static NTSTATUS get_alg_property( enum alg_id id, const WCHAR *prop, UCHAR *buf,
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ index c064b63..b23e1ea 100644
|
||||
if (status == STATUS_NOT_IMPLEMENTED)
|
||||
FIXME( "unsupported property %s\n", debugstr_w(prop) );
|
||||
return status;
|
||||
@@ -590,12 +590,12 @@ NTSTATUS WINAPI BCryptGetProperty( BCRYPT_HANDLE handle, LPCWSTR prop, UCHAR *bu
|
||||
@@ -591,12 +591,12 @@ NTSTATUS WINAPI BCryptGetProperty( BCRYPT_HANDLE handle, LPCWSTR prop, UCHAR *bu
|
||||
case MAGIC_ALG:
|
||||
{
|
||||
const struct algorithm *alg = (const struct algorithm *)object;
|
||||
@@ -60,7 +60,7 @@ index c064b63..b23e1ea 100644
|
||||
}
|
||||
default:
|
||||
WARN( "unknown magic %08x\n", object->magic );
|
||||
@@ -768,7 +768,7 @@ NTSTATUS WINAPI BCryptHash( BCRYPT_ALG_HANDLE algorithm, UCHAR *secret, ULONG se
|
||||
@@ -769,7 +769,7 @@ NTSTATUS WINAPI BCryptHash( BCRYPT_ALG_HANDLE algorithm, UCHAR *secret, ULONG se
|
||||
}
|
||||
|
||||
#if defined(HAVE_GNUTLS_CIPHER_INIT) || defined(HAVE_COMMONCRYPTO_COMMONCRYPTOR_H) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
|
||||
@@ -69,7 +69,7 @@ index c064b63..b23e1ea 100644
|
||||
{
|
||||
ULONG ret = 0, size = sizeof(ret);
|
||||
get_alg_property( alg, BCRYPT_BLOCK_LENGTH, (UCHAR *)&ret, sizeof(ret), &size );
|
||||
@@ -787,27 +787,27 @@ struct key
|
||||
@@ -788,27 +788,27 @@ struct key
|
||||
ULONG secret_len;
|
||||
};
|
||||
|
||||
@@ -93,8 +93,9 @@ index c064b63..b23e1ea 100644
|
||||
}
|
||||
|
||||
- if (!(key->block_size = get_block_size( id ))) return STATUS_INVALID_PARAMETER;
|
||||
- if (!(buffer = heap_alloc( secret_len ))) return STATUS_NO_MEMORY;
|
||||
+ if (!(key->block_size = get_block_size( alg ))) return STATUS_INVALID_PARAMETER;
|
||||
if (!(buffer = HeapAlloc( GetProcessHeap(), 0, secret_len ))) return STATUS_NO_MEMORY;
|
||||
+ if (!(buffer = heap_alloc( GetProcessHeap(), 0, secret_len ))) return STATUS_NO_MEMORY;
|
||||
memcpy( buffer, secret, secret_len );
|
||||
|
||||
- key->alg_id = id;
|
||||
@@ -102,7 +103,7 @@ index c064b63..b23e1ea 100644
|
||||
key->handle = 0; /* initialized on first use */
|
||||
key->secret = buffer;
|
||||
key->secret_len = secret_len;
|
||||
@@ -1011,7 +1011,7 @@ struct key
|
||||
@@ -1012,7 +1012,7 @@ struct key
|
||||
ULONG block_size;
|
||||
};
|
||||
|
||||
@@ -111,14 +112,14 @@ index c064b63..b23e1ea 100644
|
||||
{
|
||||
ERR( "support for keys not available at build time\n" );
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
@@ -1060,7 +1060,7 @@ NTSTATUS WINAPI BCryptGenerateSymmetricKey( BCRYPT_ALG_HANDLE algorithm, BCRYPT_
|
||||
if (!(key = HeapAlloc( GetProcessHeap(), 0, sizeof(*key) ))) return STATUS_NO_MEMORY;
|
||||
@@ -1061,7 +1061,7 @@ NTSTATUS WINAPI BCryptGenerateSymmetricKey( BCRYPT_ALG_HANDLE algorithm, BCRYPT_
|
||||
if (!(key = heap_alloc( sizeof(*key) ))) return STATUS_NO_MEMORY;
|
||||
key->hdr.magic = MAGIC_KEY;
|
||||
|
||||
- if ((status = key_init( key, alg->id, secret, secret_len )))
|
||||
+ if ((status = key_init( key, alg, secret, secret_len )))
|
||||
{
|
||||
HeapFree( GetProcessHeap(), 0, key );
|
||||
heap_free( key );
|
||||
return status;
|
||||
--
|
||||
1.9.1
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From b97cc4c8df55e42e30d7d241fe7db1f49f7e2bc5 Mon Sep 17 00:00:00 2001
|
||||
From d5d11e2ada220c0bfcd11a9975ef4ef242254937 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 06:08:33 +0100
|
||||
Subject: [PATCH] bcrypt: Implement BCryptSetProperty for algorithms.
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] bcrypt: Implement BCryptSetProperty for algorithms.
|
||||
2 files changed, 67 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index b23e1ea..46e188f 100644
|
||||
index c780976..190baca 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -191,6 +191,12 @@ enum alg_id
|
||||
@@ -192,6 +192,12 @@ enum alg_id
|
||||
ALG_ID_SHA512
|
||||
};
|
||||
|
||||
@@ -25,7 +25,7 @@ index b23e1ea..46e188f 100644
|
||||
#define MAX_HASH_OUTPUT_BYTES 64
|
||||
#define MAX_HASH_BLOCK_BITS 1024
|
||||
|
||||
@@ -215,6 +221,7 @@ struct algorithm
|
||||
@@ -216,6 +222,7 @@ struct algorithm
|
||||
{
|
||||
struct object hdr;
|
||||
enum alg_id id;
|
||||
@@ -33,15 +33,15 @@ index b23e1ea..46e188f 100644
|
||||
BOOL hmac;
|
||||
};
|
||||
|
||||
@@ -297,6 +304,7 @@ NTSTATUS WINAPI BCryptOpenAlgorithmProvider( BCRYPT_ALG_HANDLE *handle, LPCWSTR
|
||||
if (!(alg = HeapAlloc( GetProcessHeap(), 0, sizeof(*alg) ))) return STATUS_NO_MEMORY;
|
||||
@@ -298,6 +305,7 @@ NTSTATUS WINAPI BCryptOpenAlgorithmProvider( BCRYPT_ALG_HANDLE *handle, LPCWSTR
|
||||
if (!(alg = heap_alloc( sizeof(*alg) ))) return STATUS_NO_MEMORY;
|
||||
alg->hdr.magic = MAGIC_ALG;
|
||||
alg->id = alg_id;
|
||||
+ alg->mode = MODE_ID_CBC;
|
||||
alg->hmac = flags & BCRYPT_ALG_HANDLE_HMAC_FLAG;
|
||||
|
||||
*handle = alg;
|
||||
@@ -566,6 +574,40 @@ static NTSTATUS get_alg_property( const struct algorithm *alg, const WCHAR *prop
|
||||
@@ -567,6 +575,40 @@ static NTSTATUS get_alg_property( const struct algorithm *alg, const WCHAR *prop
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ index b23e1ea..46e188f 100644
|
||||
static NTSTATUS get_hash_property( const struct hash *hash, const WCHAR *prop, UCHAR *buf, ULONG size, ULONG *ret_size )
|
||||
{
|
||||
NTSTATUS status;
|
||||
@@ -605,8 +647,28 @@ NTSTATUS WINAPI BCryptGetProperty( BCRYPT_HANDLE handle, LPCWSTR prop, UCHAR *bu
|
||||
@@ -606,8 +648,28 @@ NTSTATUS WINAPI BCryptGetProperty( BCRYPT_HANDLE handle, LPCWSTR prop, UCHAR *bu
|
||||
|
||||
NTSTATUS WINAPI BCryptSetProperty( BCRYPT_HANDLE handle, const WCHAR *prop, UCHAR *value, ULONG size, ULONG flags )
|
||||
{
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 66a2dae258c8a257f904e4235ce1e77451e40cc5 Mon Sep 17 00:00:00 2001
|
||||
From a386ddc14722a35509d1f3a19c037fcb3ff1b465 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 06:46:11 +0100
|
||||
Subject: [PATCH] bcrypt: Implement BCryptGetProperty for BCRYPT_CHAINING_MODE.
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] bcrypt: Implement BCryptGetProperty for BCRYPT_CHAINING_MODE.
|
||||
2 files changed, 11 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 46e188f..714cb91 100644
|
||||
index 190baca..4ffac3f 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -539,17 +539,18 @@ static NTSTATUS get_alg_property( const struct algorithm *alg, const WCHAR *prop
|
||||
@@ -540,17 +540,18 @@ static NTSTATUS get_alg_property( const struct algorithm *alg, const WCHAR *prop
|
||||
}
|
||||
if (!strcmpW( prop, BCRYPT_CHAINING_MODE ))
|
||||
{
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From c5e9448e8fa27c7ff1ce7826f8ac15c8d825ac9e Mon Sep 17 00:00:00 2001
|
||||
From 9ec7993211eab9a3a44bc326cdd7a2abed377b46 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 06:50:28 +0100
|
||||
Subject: [PATCH] bcrypt: Implement BCryptGetProperty for
|
||||
@@ -10,10 +10,10 @@ Subject: [PATCH] bcrypt: Implement BCryptGetProperty for
|
||||
2 files changed, 22 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 714cb91..dc5a4f2 100644
|
||||
index 4ffac3f..485a71e 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -565,6 +565,20 @@ static NTSTATUS get_alg_property( const struct algorithm *alg, const WCHAR *prop
|
||||
@@ -566,6 +566,20 @@ static NTSTATUS get_alg_property( const struct algorithm *alg, const WCHAR *prop
|
||||
}
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From bd66e10e4141e514145c1be5444ae200919d7505 Mon Sep 17 00:00:00 2001
|
||||
From df838a6fa3107044fd151f441148d768e408779e Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 07:21:27 +0100
|
||||
Subject: [PATCH] bcrypt: Fix string comparison in set_alg_property.
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] bcrypt: Fix string comparison in set_alg_property.
|
||||
2 files changed, 13 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index dc5a4f2..725c285 100644
|
||||
index 485a71e..a903437 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -596,14 +596,12 @@ static NTSTATUS set_alg_property( struct algorithm *alg, const WCHAR *prop, UCHA
|
||||
@@ -597,14 +597,12 @@ static NTSTATUS set_alg_property( struct algorithm *alg, const WCHAR *prop, UCHA
|
||||
case ALG_ID_AES:
|
||||
if (!strcmpW( prop, BCRYPT_CHAINING_MODE ))
|
||||
{
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 143cf9efb5def04f854657b90d5c26847d6f72f9 Mon Sep 17 00:00:00 2001
|
||||
From 0a0013fd0f077161a0975c2c83889bae85a37be0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 07:46:57 +0100
|
||||
Subject: [PATCH] bcrypt: Implement BCryptEncrypt for AES GCM mode.
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] bcrypt: Implement BCryptEncrypt for AES GCM mode.
|
||||
2 files changed, 51 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 725c285..b7e1957 100644
|
||||
index a903437..381c11f 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -62,6 +62,12 @@ MAKE_FUNCPTR(gnutls_global_set_log_level);
|
||||
@@ -63,6 +63,12 @@ MAKE_FUNCPTR(gnutls_global_set_log_level);
|
||||
MAKE_FUNCPTR(gnutls_perror);
|
||||
#undef MAKE_FUNCPTR
|
||||
|
||||
@@ -25,7 +25,7 @@ index 725c285..b7e1957 100644
|
||||
static void gnutls_log( int level, const char *msg )
|
||||
{
|
||||
TRACE( "<%d> %s", level, msg );
|
||||
@@ -856,6 +862,7 @@ struct key
|
||||
@@ -857,6 +863,7 @@ struct key
|
||||
{
|
||||
struct object hdr;
|
||||
enum alg_id alg_id;
|
||||
@@ -33,7 +33,7 @@ index 725c285..b7e1957 100644
|
||||
ULONG block_size;
|
||||
gnutls_cipher_hd_t handle;
|
||||
UCHAR *secret;
|
||||
@@ -883,6 +890,7 @@ static NTSTATUS key_init( struct key *key, struct algorithm *alg, const UCHAR *s
|
||||
@@ -884,6 +891,7 @@ static NTSTATUS key_init( struct key *key, struct algorithm *alg, const UCHAR *s
|
||||
memcpy( buffer, secret, secret_len );
|
||||
|
||||
key->alg_id = alg->id;
|
||||
@@ -41,7 +41,7 @@ index 725c285..b7e1957 100644
|
||||
key->handle = 0; /* initialized on first use */
|
||||
key->secret = buffer;
|
||||
key->secret_len = secret_len;
|
||||
@@ -895,9 +903,13 @@ static gnutls_cipher_algorithm_t get_gnutls_cipher( const struct key *key )
|
||||
@@ -896,9 +904,13 @@ static gnutls_cipher_algorithm_t get_gnutls_cipher( const struct key *key )
|
||||
switch (key->alg_id)
|
||||
{
|
||||
case ALG_ID_AES:
|
||||
@@ -58,7 +58,7 @@ index 725c285..b7e1957 100644
|
||||
default:
|
||||
FIXME( "algorithm %u not supported\n", key->alg_id );
|
||||
return GNUTLS_CIPHER_UNKNOWN;
|
||||
@@ -1083,12 +1095,14 @@ static NTSTATUS key_destroy( struct key *key )
|
||||
@@ -1084,12 +1096,14 @@ static NTSTATUS key_destroy( struct key *key )
|
||||
struct key
|
||||
{
|
||||
struct object hdr;
|
||||
@@ -73,7 +73,7 @@ index 725c285..b7e1957 100644
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@@ -1168,17 +1182,37 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1169,17 +1183,37 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
padding, iv, iv_len, output, output_len, ret_len, flags );
|
||||
|
||||
if (!key || key->hdr.magic != MAGIC_KEY) return STATUS_INVALID_HANDLE;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From dac0dade33e4623251bc8375fb39b3d0fdc5cead Mon Sep 17 00:00:00 2001
|
||||
From 8391836c505c33c0f0671dde92585d53c4f2885c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 07:53:10 +0100
|
||||
Subject: [PATCH] bcrypt: Implement BCryptDecrypt for AES GCM mode.
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] bcrypt: Implement BCryptDecrypt for AES GCM mode.
|
||||
2 files changed, 27 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index b7e1957..c7298fb 100644
|
||||
index 381c11f..28e3b30 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -1260,17 +1260,35 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1261,17 +1261,35 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
padding, iv, iv_len, output, output_len, ret_len, flags );
|
||||
|
||||
if (!key || key->hdr.magic != MAGIC_KEY) return STATUS_INVALID_HANDLE;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 87e8a5e0eeaab01ae5092be876b8d6195e19ed5b Mon Sep 17 00:00:00 2001
|
||||
From 8a7e13f2942197a83e9f5b7b8bbbd7ef684bcd1a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 08:02:36 +0100
|
||||
Subject: [PATCH] bcrypt: Add support for computing/comparing cipher tag.
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] bcrypt: Add support for computing/comparing cipher tag.
|
||||
2 files changed, 45 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index c7298fb..e7377f2 100644
|
||||
index 28e3b30..12d61e8 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -49,6 +49,9 @@ static HINSTANCE instance;
|
||||
@@ -50,6 +50,9 @@ static HINSTANCE instance;
|
||||
#if defined(HAVE_GNUTLS_CIPHER_INIT) && !defined(HAVE_COMMONCRYPTO_COMMONCRYPTOR_H)
|
||||
WINE_DECLARE_DEBUG_CHANNEL(winediag);
|
||||
|
||||
@@ -22,7 +22,7 @@ index c7298fb..e7377f2 100644
|
||||
static void *libgnutls_handle;
|
||||
#define MAKE_FUNCPTR(f) static typeof(f) * p##f
|
||||
MAKE_FUNCPTR(gnutls_cipher_decrypt2);
|
||||
@@ -68,6 +71,11 @@ MAKE_FUNCPTR(gnutls_perror);
|
||||
@@ -69,6 +72,11 @@ MAKE_FUNCPTR(gnutls_perror);
|
||||
#define GNUTLS_CIPHER_AES_256_GCM 94
|
||||
#endif
|
||||
|
||||
@@ -34,7 +34,7 @@ index c7298fb..e7377f2 100644
|
||||
static void gnutls_log( int level, const char *msg )
|
||||
{
|
||||
TRACE( "<%d> %s", level, msg );
|
||||
@@ -101,6 +109,12 @@ static BOOL gnutls_initialize(void)
|
||||
@@ -102,6 +110,12 @@ static BOOL gnutls_initialize(void)
|
||||
LOAD_FUNCPTR(gnutls_perror)
|
||||
#undef LOAD_FUNCPTR
|
||||
|
||||
@@ -47,7 +47,7 @@ index c7298fb..e7377f2 100644
|
||||
if ((ret = pgnutls_global_init()) != GNUTLS_E_SUCCESS)
|
||||
{
|
||||
pgnutls_perror( ret );
|
||||
@@ -976,6 +990,19 @@ static NTSTATUS key_decrypt( struct key *key, const UCHAR *input, ULONG input_le
|
||||
@@ -977,6 +991,19 @@ static NTSTATUS key_decrypt( struct key *key, const UCHAR *input, ULONG input_le
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ index c7298fb..e7377f2 100644
|
||||
static NTSTATUS key_destroy( struct key *key )
|
||||
{
|
||||
if (key->handle) pgnutls_cipher_deinit( key->handle );
|
||||
@@ -1126,6 +1153,12 @@ static NTSTATUS key_decrypt( struct key *key, const UCHAR *input, ULONG input_le
|
||||
@@ -1127,6 +1154,12 @@ static NTSTATUS key_decrypt( struct key *key, const UCHAR *input, ULONG input_le
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ index c7298fb..e7377f2 100644
|
||||
static NTSTATUS key_destroy( struct key *key )
|
||||
{
|
||||
ERR( "support for keys not available at build time\n" );
|
||||
@@ -1210,7 +1243,7 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1211,7 +1244,7 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
if ((status = key_encrypt( key, input, input_len, output, output_len )))
|
||||
return status;
|
||||
|
||||
@@ -89,7 +89,7 @@ index c7298fb..e7377f2 100644
|
||||
}
|
||||
|
||||
if ((status = key_set_params( key, iv, iv_len ))) return status;
|
||||
@@ -1269,6 +1302,7 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1270,6 +1303,7 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
if (key->mode == MODE_ID_GCM)
|
||||
{
|
||||
BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO *auth_info = padding;
|
||||
@@ -97,7 +97,7 @@ index c7298fb..e7377f2 100644
|
||||
|
||||
if (!auth_info) return STATUS_INVALID_PARAMETER;
|
||||
if (!auth_info->pbNonce) return STATUS_INVALID_PARAMETER;
|
||||
@@ -1286,6 +1320,11 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1287,6 +1321,11 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
if ((status = key_decrypt( key, input, input_len, output, output_len )))
|
||||
return status;
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 2ee7e08d3f3da05d27ff004cac69aa136c93baf0 Mon Sep 17 00:00:00 2001
|
||||
From 91c7e05a9845d2caad78e292774cffeb67b342ca Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 08:28:24 +0100
|
||||
Subject: [PATCH] bcrypt: Implement BCryptDuplicateKey.
|
||||
@@ -23,10 +23,10 @@ index f00f55c..fcd0f6d 100644
|
||||
@ stdcall BCryptEnumAlgorithms(long ptr ptr long)
|
||||
@ stub BCryptEnumContextFunctionProviders
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index e7377f2..9b86812 100644
|
||||
index 12d61e8..5591850 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -912,6 +912,24 @@ static NTSTATUS key_init( struct key *key, struct algorithm *alg, const UCHAR *s
|
||||
@@ -913,6 +913,24 @@ static NTSTATUS key_init( struct key *key, struct algorithm *alg, const UCHAR *s
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ index e7377f2..9b86812 100644
|
||||
static gnutls_cipher_algorithm_t get_gnutls_cipher( const struct key *key )
|
||||
{
|
||||
switch (key->alg_id)
|
||||
@@ -1133,6 +1151,13 @@ static NTSTATUS key_init( struct key *key, struct algorithm *alg, UCHAR *secret,
|
||||
@@ -1134,6 +1152,13 @@ static NTSTATUS key_init( struct key *key, struct algorithm *alg, UCHAR *secret,
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ index e7377f2..9b86812 100644
|
||||
static NTSTATUS key_set_params( struct key *key, UCHAR *iv, ULONG iv_len )
|
||||
{
|
||||
ERR( "support for keys not available at build time\n" );
|
||||
@@ -1192,6 +1217,30 @@ NTSTATUS WINAPI BCryptGenerateSymmetricKey( BCRYPT_ALG_HANDLE algorithm, BCRYPT_
|
||||
@@ -1193,6 +1218,30 @@ NTSTATUS WINAPI BCryptGenerateSymmetricKey( BCRYPT_ALG_HANDLE algorithm, BCRYPT_
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 436f61185069a5b28a5e1036ac47e985eaee1d0d Mon Sep 17 00:00:00 2001
|
||||
From 2211b77a46bed8baf2e327aaa2809006f0776717 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 08:30:43 +0100
|
||||
Subject: [PATCH] bcrypt/tests: Add tests for BCryptDuplicateKey.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 0143046b208f307d961e0f2a443c28b6d4459836 Mon Sep 17 00:00:00 2001
|
||||
From 2b1715f4d088c7281cd0d97281635ea47fe24124 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 08:41:31 +0100
|
||||
Subject: [PATCH] bcrypt: Allow to call BCryptSetProperty on key objects.
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] bcrypt: Allow to call BCryptSetProperty on key objects.
|
||||
2 files changed, 40 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 9b86812..a7e7afc 100644
|
||||
index 5591850..2bb8f8f 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -245,6 +245,9 @@ struct algorithm
|
||||
@@ -246,6 +246,9 @@ struct algorithm
|
||||
BOOL hmac;
|
||||
};
|
||||
|
||||
@@ -22,7 +22,7 @@ index 9b86812..a7e7afc 100644
|
||||
NTSTATUS WINAPI BCryptGenRandom(BCRYPT_ALG_HANDLE handle, UCHAR *buffer, ULONG count, ULONG flags)
|
||||
{
|
||||
const DWORD supported_flags = BCRYPT_USE_SYSTEM_PREFERRED_RNG;
|
||||
@@ -695,8 +698,8 @@ NTSTATUS WINAPI BCryptSetProperty( BCRYPT_HANDLE handle, const WCHAR *prop, UCHA
|
||||
@@ -696,8 +699,8 @@ NTSTATUS WINAPI BCryptSetProperty( BCRYPT_HANDLE handle, const WCHAR *prop, UCHA
|
||||
}
|
||||
case MAGIC_KEY:
|
||||
{
|
||||
@@ -33,7 +33,7 @@ index 9b86812..a7e7afc 100644
|
||||
}
|
||||
default:
|
||||
WARN( "unknown magic %08x\n", object->magic );
|
||||
@@ -930,6 +933,31 @@ static NTSTATUS key_duplicate( struct key *key_orig, struct key *key_copy )
|
||||
@@ -931,6 +934,31 @@ static NTSTATUS key_duplicate( struct key *key_orig, struct key *key_copy )
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ index 9b86812..a7e7afc 100644
|
||||
static gnutls_cipher_algorithm_t get_gnutls_cipher( const struct key *key )
|
||||
{
|
||||
switch (key->alg_id)
|
||||
@@ -1158,6 +1186,12 @@ static NTSTATUS key_duplicate( struct key *key_orig, struct key *key_copy )
|
||||
@@ -1159,6 +1187,12 @@ static NTSTATUS key_duplicate( struct key *key_orig, struct key *key_copy )
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From c17ad9aa3225c31f132e1bf20da65ca36ae396e8 Mon Sep 17 00:00:00 2001
|
||||
From 47242ae4cb2f6bd7ffbf5eb9ae22a354916147c6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 15:01:19 +0100
|
||||
Subject: [PATCH] bcrypt: Add support for auth data in AES GCM mode.
|
||||
@@ -8,10 +8,10 @@ Subject: [PATCH] bcrypt: Add support for auth data in AES GCM mode.
|
||||
1 file changed, 36 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index a7e7afc..0dc0645 100644
|
||||
index 2bb8f8f..117e351 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -50,7 +50,8 @@ static HINSTANCE instance;
|
||||
@@ -51,7 +51,8 @@ static HINSTANCE instance;
|
||||
WINE_DECLARE_DEBUG_CHANNEL(winediag);
|
||||
|
||||
/* Not present in gnutls version < 3.0 */
|
||||
@@ -21,7 +21,7 @@ index a7e7afc..0dc0645 100644
|
||||
|
||||
static void *libgnutls_handle;
|
||||
#define MAKE_FUNCPTR(f) static typeof(f) * p##f
|
||||
@@ -71,7 +72,12 @@ MAKE_FUNCPTR(gnutls_perror);
|
||||
@@ -72,7 +73,12 @@ MAKE_FUNCPTR(gnutls_perror);
|
||||
#define GNUTLS_CIPHER_AES_256_GCM 94
|
||||
#endif
|
||||
|
||||
@@ -35,7 +35,7 @@ index a7e7afc..0dc0645 100644
|
||||
{
|
||||
return GNUTLS_E_UNKNOWN_CIPHER_TYPE;
|
||||
}
|
||||
@@ -114,6 +120,11 @@ static BOOL gnutls_initialize(void)
|
||||
@@ -115,6 +121,11 @@ static BOOL gnutls_initialize(void)
|
||||
WARN("gnutls_cipher_tag not found\n");
|
||||
pgnutls_cipher_tag = compat_gnutls_cipher_tag;
|
||||
}
|
||||
@@ -47,7 +47,7 @@ index a7e7afc..0dc0645 100644
|
||||
|
||||
if ((ret = pgnutls_global_init()) != GNUTLS_E_SUCCESS)
|
||||
{
|
||||
@@ -1008,6 +1019,19 @@ static NTSTATUS key_set_params( struct key *key, UCHAR *iv, ULONG iv_len )
|
||||
@@ -1009,6 +1020,19 @@ static NTSTATUS key_set_params( struct key *key, UCHAR *iv, ULONG iv_len )
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ index a7e7afc..0dc0645 100644
|
||||
static NTSTATUS key_encrypt( struct key *key, const UCHAR *input, ULONG input_len, UCHAR *output,
|
||||
ULONG output_len )
|
||||
{
|
||||
@@ -1198,6 +1222,12 @@ static NTSTATUS key_set_params( struct key *key, UCHAR *iv, ULONG iv_len )
|
||||
@@ -1199,6 +1223,12 @@ static NTSTATUS key_set_params( struct key *key, UCHAR *iv, ULONG iv_len )
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ index a7e7afc..0dc0645 100644
|
||||
static NTSTATUS key_encrypt( struct key *key, const UCHAR *input, ULONG input_len, UCHAR *output,
|
||||
ULONG output_len )
|
||||
{
|
||||
@@ -1323,6 +1353,8 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1324,6 +1354,8 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
if (!output) return STATUS_SUCCESS;
|
||||
if (output_len < *ret_len) return STATUS_BUFFER_TOO_SMALL;
|
||||
|
||||
@@ -89,7 +89,7 @@ index a7e7afc..0dc0645 100644
|
||||
if ((status = key_encrypt( key, input, input_len, output, output_len )))
|
||||
return status;
|
||||
|
||||
@@ -1400,6 +1432,8 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1401,6 +1433,8 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
if (!output) return STATUS_SUCCESS;
|
||||
if (output_len < *ret_len) return STATUS_BUFFER_TOO_SMALL;
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From a03acf90d2f3803b3fb923d2ab337abfa9421a78 Mon Sep 17 00:00:00 2001
|
||||
From 04ad5960981996bdf3c9f14e40da3a9044e55b60 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 15:01:38 +0100
|
||||
Subject: [PATCH] bcrypt/tests: Add tests for auth data in AES GCM mode.
|
||||
|
@@ -1,37 +1,38 @@
|
||||
From be6a7cd60499a83baff70922b253c477401b76b9 Mon Sep 17 00:00:00 2001
|
||||
From 02d978a02918d24f9b7dd502a560081a9ce1c980 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 26 Dec 2016 16:20:57 +0100
|
||||
Subject: [PATCH] bcrypt: Avoid crash in tests when compiling without gnutls
|
||||
support.
|
||||
|
||||
---
|
||||
dlls/bcrypt/bcrypt_main.c | 11 ++++++++++-
|
||||
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||
dlls/bcrypt/bcrypt_main.c | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 0dc0645..036a92d 100644
|
||||
index 117e351..d17224c 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -1268,12 +1268,17 @@ NTSTATUS WINAPI BCryptGenerateSymmetricKey( BCRYPT_ALG_HANDLE algorithm, BCRYPT_
|
||||
@@ -1269,12 +1269,19 @@ NTSTATUS WINAPI BCryptGenerateSymmetricKey( BCRYPT_ALG_HANDLE algorithm, BCRYPT_
|
||||
if (!alg || alg->hdr.magic != MAGIC_ALG) return STATUS_INVALID_HANDLE;
|
||||
if (object) FIXME( "ignoring object buffer\n" );
|
||||
|
||||
- if (!(key = HeapAlloc( GetProcessHeap(), 0, sizeof(*key) ))) return STATUS_NO_MEMORY;
|
||||
+ if (!(key = HeapAlloc( GetProcessHeap(), 0, sizeof(*key) )))
|
||||
+
|
||||
if (!(key = heap_alloc( sizeof(*key) ))) return STATUS_NO_MEMORY;
|
||||
+ {
|
||||
+ *handle = NULL;
|
||||
+ return STATUS_NO_MEMORY;
|
||||
+ }
|
||||
+
|
||||
key->hdr.magic = MAGIC_KEY;
|
||||
|
||||
if ((status = key_init( key, alg, secret, secret_len )))
|
||||
{
|
||||
HeapFree( GetProcessHeap(), 0, key );
|
||||
heap_free( key );
|
||||
+ *handle = NULL;
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -1293,11 +1298,15 @@ NTSTATUS WINAPI BCryptDuplicateKey( BCRYPT_KEY_HANDLE handle, BCRYPT_KEY_HANDLE
|
||||
@@ -1294,11 +1301,15 @@ NTSTATUS WINAPI BCryptDuplicateKey( BCRYPT_KEY_HANDLE handle, BCRYPT_KEY_HANDLE
|
||||
if (!key_orig || key_orig->hdr.magic != MAGIC_KEY) return STATUS_INVALID_HANDLE;
|
||||
if (!handle_copy) return STATUS_INVALID_PARAMETER;
|
||||
if (!(key_copy = HeapAlloc( GetProcessHeap(), 0, sizeof(*key_copy) )))
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 5c5e35a8418c64ee5b79ffc96b81d66e0b12c743 Mon Sep 17 00:00:00 2001
|
||||
From f7a292fc7e53b5d2300b68e2e3234fad3eb80c57 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 5 Mar 2017 23:18:03 +0100
|
||||
Subject: [PATCH] bcrypt: Implement support for ECB chain mode.
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] bcrypt: Implement support for ECB chain mode.
|
||||
2 files changed, 244 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 036a92d..a471d51 100644
|
||||
index d17224c..420f668 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -224,6 +224,7 @@ enum alg_id
|
||||
@@ -225,6 +225,7 @@ enum alg_id
|
||||
|
||||
enum mode_id
|
||||
{
|
||||
@@ -20,7 +20,7 @@ index 036a92d..a471d51 100644
|
||||
MODE_ID_CBC,
|
||||
MODE_ID_GCM
|
||||
};
|
||||
@@ -576,8 +577,9 @@ static NTSTATUS get_alg_property( const struct algorithm *alg, const WCHAR *prop
|
||||
@@ -577,8 +578,9 @@ static NTSTATUS get_alg_property( const struct algorithm *alg, const WCHAR *prop
|
||||
const WCHAR *mode;
|
||||
switch (alg->mode)
|
||||
{
|
||||
@@ -31,7 +31,7 @@ index 036a92d..a471d51 100644
|
||||
default: return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@@ -630,7 +632,12 @@ static NTSTATUS set_alg_property( struct algorithm *alg, const WCHAR *prop, UCHA
|
||||
@@ -631,7 +633,12 @@ static NTSTATUS set_alg_property( struct algorithm *alg, const WCHAR *prop, UCHA
|
||||
case ALG_ID_AES:
|
||||
if (!strcmpW( prop, BCRYPT_CHAINING_MODE ))
|
||||
{
|
||||
@@ -45,7 +45,7 @@ index 036a92d..a471d51 100644
|
||||
{
|
||||
alg->mode = MODE_ID_CBC;
|
||||
return STATUS_SUCCESS;
|
||||
@@ -948,7 +955,12 @@ static NTSTATUS set_key_property( struct key *key, const WCHAR *prop, UCHAR *val
|
||||
@@ -949,7 +956,12 @@ static NTSTATUS set_key_property( struct key *key, const WCHAR *prop, UCHAR *val
|
||||
{
|
||||
if (!strcmpW( prop, BCRYPT_CHAINING_MODE ))
|
||||
{
|
||||
@@ -59,7 +59,7 @@ index 036a92d..a471d51 100644
|
||||
{
|
||||
key->mode = MODE_ID_CBC;
|
||||
return STATUS_SUCCESS;
|
||||
@@ -978,6 +990,7 @@ static gnutls_cipher_algorithm_t get_gnutls_cipher( const struct key *key )
|
||||
@@ -979,6 +991,7 @@ static gnutls_cipher_algorithm_t get_gnutls_cipher( const struct key *key )
|
||||
switch (key->mode)
|
||||
{
|
||||
case MODE_ID_GCM: return GNUTLS_CIPHER_AES_128_GCM;
|
||||
@@ -67,7 +67,7 @@ index 036a92d..a471d51 100644
|
||||
case MODE_ID_CBC:
|
||||
default: return GNUTLS_CIPHER_AES_128_CBC;
|
||||
}
|
||||
@@ -989,6 +1002,7 @@ static gnutls_cipher_algorithm_t get_gnutls_cipher( const struct key *key )
|
||||
@@ -990,6 +1003,7 @@ static gnutls_cipher_algorithm_t get_gnutls_cipher( const struct key *key )
|
||||
|
||||
static NTSTATUS key_set_params( struct key *key, UCHAR *iv, ULONG iv_len )
|
||||
{
|
||||
@@ -75,7 +75,7 @@ index 036a92d..a471d51 100644
|
||||
gnutls_cipher_algorithm_t cipher;
|
||||
gnutls_datum_t secret, vector;
|
||||
int ret;
|
||||
@@ -1002,15 +1016,18 @@ static NTSTATUS key_set_params( struct key *key, UCHAR *iv, ULONG iv_len )
|
||||
@@ -1003,15 +1017,18 @@ static NTSTATUS key_set_params( struct key *key, UCHAR *iv, ULONG iv_len )
|
||||
if ((cipher = get_gnutls_cipher( key )) == GNUTLS_CIPHER_UNKNOWN)
|
||||
return STATUS_NOT_SUPPORTED;
|
||||
|
||||
@@ -100,7 +100,7 @@ index 036a92d..a471d51 100644
|
||||
{
|
||||
pgnutls_perror( ret );
|
||||
return STATUS_INTERNAL_ERROR;
|
||||
@@ -1382,11 +1399,15 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1385,11 +1402,15 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
if (!output) return STATUS_SUCCESS;
|
||||
if (output_len < *ret_len) return STATUS_BUFFER_TOO_SMALL;
|
||||
|
||||
@@ -116,7 +116,7 @@ index 036a92d..a471d51 100644
|
||||
bytes_left -= key->block_size;
|
||||
src += key->block_size;
|
||||
dst += key->block_size;
|
||||
@@ -1469,11 +1490,15 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1472,11 +1493,15 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
else if (output_len < *ret_len)
|
||||
return STATUS_BUFFER_TOO_SMALL;
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 5ed0e3dc801a79e8a187c1006e4b829427814135 Mon Sep 17 00:00:00 2001
|
||||
From d517939ffb93bd49d13376770b1b270f9338b2ee Mon Sep 17 00:00:00 2001
|
||||
From: Andrew Wesie <awesie@gmail.com>
|
||||
Date: Mon, 1 May 2017 22:57:43 -0500
|
||||
Subject: [PATCH] bcrypt: Fix BCryptEncrypt with AES_GCM and no input and no
|
||||
@@ -11,10 +11,10 @@ Signed-off-by: Andrew Wesie <awesie@gmail.com>
|
||||
2 files changed, 19 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index a471d51..d985337 100644
|
||||
index 420f668..005c98d 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -1376,7 +1376,7 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1379,7 +1379,7 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
|
||||
*ret_len = input_len;
|
||||
if (flags & BCRYPT_BLOCK_PADDING) return STATUS_INVALID_PARAMETER;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 8dec986ed00a13f49022bedd5b63c1b9343a9709 Mon Sep 17 00:00:00 2001
|
||||
From e0684348c300573e6729ce235fce2f49a1760f29 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 13 Aug 2017 04:28:43 +0200
|
||||
Subject: [PATCH] bcrypt: Partial implementation of BCryptImportKey and
|
||||
@@ -35,10 +35,10 @@ index fcd0f6d..28c2394 100644
|
||||
@ stdcall BCryptOpenAlgorithmProvider(ptr wstr wstr long)
|
||||
@ stub BCryptQueryContextConfiguration
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index d985337..46e7ab1 100644
|
||||
index 005c98d..bfe4708 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -1090,6 +1090,13 @@ static NTSTATUS key_get_tag( struct key *key, UCHAR *tag, ULONG len )
|
||||
@@ -1091,6 +1091,13 @@ static NTSTATUS key_get_tag( struct key *key, UCHAR *tag, ULONG len )
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ index d985337..46e7ab1 100644
|
||||
static NTSTATUS key_destroy( struct key *key )
|
||||
{
|
||||
if (key->handle) pgnutls_cipher_deinit( key->handle );
|
||||
@@ -1265,6 +1272,12 @@ static NTSTATUS key_get_tag( struct key *key, UCHAR *tag, ULONG len )
|
||||
@@ -1266,6 +1273,12 @@ static NTSTATUS key_get_tag( struct key *key, UCHAR *tag, ULONG len )
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ index d985337..46e7ab1 100644
|
||||
static NTSTATUS key_destroy( struct key *key )
|
||||
{
|
||||
ERR( "support for keys not available at build time\n" );
|
||||
@@ -1331,6 +1344,94 @@ NTSTATUS WINAPI BCryptDuplicateKey( BCRYPT_KEY_HANDLE handle, BCRYPT_KEY_HANDLE
|
||||
@@ -1334,6 +1347,94 @@ NTSTATUS WINAPI BCryptDuplicateKey( BCRYPT_KEY_HANDLE handle, BCRYPT_KEY_HANDLE
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 34937c9def50791d3588c4b618df284de5ecc8e8 Mon Sep 17 00:00:00 2001
|
||||
From 9f5728e55070f4e5d5ad91a06f6837c1513c2917 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 13 Aug 2017 05:04:21 +0200
|
||||
Subject: [PATCH] bcrypt: Add support for 192 and 256 bit aes keys.
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] bcrypt: Add support for 192 and 256 bit aes keys.
|
||||
2 files changed, 44 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 46e7ab1..0c07c1f 100644
|
||||
index bfe4708..2cd1271 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -989,11 +989,21 @@ static gnutls_cipher_algorithm_t get_gnutls_cipher( const struct key *key )
|
||||
@@ -990,11 +990,21 @@ static gnutls_cipher_algorithm_t get_gnutls_cipher( const struct key *key )
|
||||
WARN( "handle block size\n" );
|
||||
switch (key->mode)
|
||||
{
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user