mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Updated bcrypt-Improvements patchset
This commit is contained in:
parent
7d1d3410c8
commit
f03920a32a
@ -1,4 +1,4 @@
|
||||
From eafc346618f1b1c5355f67ccb4381ac708d8cffe Mon Sep 17 00:00:00 2001
|
||||
From 73d73983bcb5d63470998096e502fabbf82bc06d 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 65adbaee97870e85cab097ac3d6b2929d1d69ffd Mon Sep 17 00:00:00 2001
|
||||
From f7f71658aa091abc71f4dff1449a2ef4db396590 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,15 +1,15 @@
|
||||
From 53b662ae4f93b518e1e140f765c04b23a1fc10c7 Mon Sep 17 00:00:00 2001
|
||||
From 96fcffc63b4777700544f938f10e868acf71a177 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 | 32 ++++++++++++++++----------------
|
||||
1 file changed, 16 insertions(+), 16 deletions(-)
|
||||
dlls/bcrypt/bcrypt_main.c | 40 ++++++++++++++++++++--------------------
|
||||
1 file changed, 20 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 72b5df2..c780976 100644
|
||||
index 72b5df2..7b37e1b 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -510,15 +510,15 @@ static NTSTATUS generic_alg_property( enum alg_id id, const WCHAR *prop, UCHAR *
|
||||
@ -93,9 +93,8 @@ index 72b5df2..c780976 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 = heap_alloc( GetProcessHeap(), 0, secret_len ))) return STATUS_NO_MEMORY;
|
||||
if (!(buffer = heap_alloc( secret_len ))) return STATUS_NO_MEMORY;
|
||||
memcpy( buffer, secret, secret_len );
|
||||
|
||||
- key->alg_id = id;
|
||||
@ -103,6 +102,37 @@ index 72b5df2..c780976 100644
|
||||
key->handle = 0; /* initialized on first use */
|
||||
key->secret = buffer;
|
||||
key->secret_len = secret_len;
|
||||
@@ -909,25 +909,25 @@ struct key
|
||||
ULONG secret_len;
|
||||
};
|
||||
|
||||
-static NTSTATUS key_init( struct key *key, enum alg_id id, const UCHAR *secret, ULONG secret_len )
|
||||
+static NTSTATUS key_init( struct key *key, struct algorithm *alg, const UCHAR *secret, ULONG secret_len )
|
||||
{
|
||||
UCHAR *buffer;
|
||||
|
||||
- switch (id)
|
||||
+ switch (alg->id)
|
||||
{
|
||||
case ALG_ID_AES:
|
||||
break;
|
||||
|
||||
default:
|
||||
- FIXME( "algorithm %u not supported\n", id );
|
||||
+ FIXME( "algorithm %u not supported\n", alg->id );
|
||||
return STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
- if (!(key->block_size = get_block_size( id ))) return STATUS_INVALID_PARAMETER;
|
||||
+ if (!(key->block_size = get_block_size( alg ))) return STATUS_INVALID_PARAMETER;
|
||||
if (!(buffer = heap_alloc( secret_len ))) return STATUS_NO_MEMORY;
|
||||
memcpy( buffer, secret, secret_len );
|
||||
|
||||
- key->alg_id = id;
|
||||
+ key->alg_id = alg->id;
|
||||
key->ref_encrypt = NULL; /* initialized on first use */
|
||||
key->ref_decrypt = NULL;
|
||||
key->secret = buffer;
|
||||
@@ -1012,7 +1012,7 @@ struct key
|
||||
ULONG block_size;
|
||||
};
|
||||
|
@ -1,4 +1,4 @@
|
||||
From d5d11e2ada220c0bfcd11a9975ef4ef242254937 Mon Sep 17 00:00:00 2001
|
||||
From 1d2d95c30925b24b337978b0ad203ff4353f7ec1 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,7 +9,7 @@ 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 c780976..190baca 100644
|
||||
index 7b37e1b..1db0a16 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -192,6 +192,12 @@ enum alg_id
|
||||
|
@ -1,4 +1,4 @@
|
||||
From a386ddc14722a35509d1f3a19c037fcb3ff1b465 Mon Sep 17 00:00:00 2001
|
||||
From 049fa305cf5b74336cac77ebaaef109aeb94364f 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,7 +9,7 @@ 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 190baca..4ffac3f 100644
|
||||
index 1db0a16..f55c7d4 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -540,17 +540,18 @@ static NTSTATUS get_alg_property( const struct algorithm *alg, const WCHAR *prop
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9ec7993211eab9a3a44bc326cdd7a2abed377b46 Mon Sep 17 00:00:00 2001
|
||||
From 943d83df3c24ff415863425287e6ba5434bfe927 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,7 +10,7 @@ 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 4ffac3f..485a71e 100644
|
||||
index f55c7d4..089ef45 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -566,6 +566,20 @@ static NTSTATUS get_alg_property( const struct algorithm *alg, const WCHAR *prop
|
||||
|
@ -1,4 +1,4 @@
|
||||
From df838a6fa3107044fd151f441148d768e408779e Mon Sep 17 00:00:00 2001
|
||||
From 2987f2d44eec9ab8269e0af331cdc7bf16d6383e 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,7 +9,7 @@ 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 485a71e..a903437 100644
|
||||
index 089ef45..9cd58c6 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -597,14 +597,12 @@ static NTSTATUS set_alg_property( struct algorithm *alg, const WCHAR *prop, UCHA
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 0a0013fd0f077161a0975c2c83889bae85a37be0 Mon Sep 17 00:00:00 2001
|
||||
From fe6fae656c8755b7eb96f7cba4828bd45e7efaec 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,7 +9,7 @@ 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 a903437..381c11f 100644
|
||||
index 9cd58c6..88f3ef2 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -63,6 +63,12 @@ MAKE_FUNCPTR(gnutls_global_set_log_level);
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 8391836c505c33c0f0671dde92585d53c4f2885c Mon Sep 17 00:00:00 2001
|
||||
From 9fdb049ba640b416515052670a2c2f7cdc285190 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,7 +9,7 @@ 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 381c11f..28e3b30 100644
|
||||
index 88f3ef2..533344b 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -1261,17 +1261,35 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 8a7e13f2942197a83e9f5b7b8bbbd7ef684bcd1a Mon Sep 17 00:00:00 2001
|
||||
From d28a934a7013ac3ab6b97c333ff404d2e76e829a 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,7 +9,7 @@ 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 28e3b30..12d61e8 100644
|
||||
index 533344b..0ea8c68 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -50,6 +50,9 @@ static HINSTANCE instance;
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 91c7e05a9845d2caad78e292774cffeb67b342ca Mon Sep 17 00:00:00 2001
|
||||
From c529d8ff61ab26fcd3d558f96f86196af037290f 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,7 +23,7 @@ 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 12d61e8..5591850 100644
|
||||
index 0ea8c68..5f7f86a 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -913,6 +913,24 @@ static NTSTATUS key_init( struct key *key, struct algorithm *alg, const UCHAR *s
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 2211b77a46bed8baf2e327aaa2809006f0776717 Mon Sep 17 00:00:00 2001
|
||||
From c8e9ffd4e5bcc6de9b8e59ff9eb98fb316970363 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 2b1715f4d088c7281cd0d97281635ea47fe24124 Mon Sep 17 00:00:00 2001
|
||||
From c625100431c570195863b2ed7e3c17c160426f26 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,7 +9,7 @@ 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 5591850..2bb8f8f 100644
|
||||
index 5f7f86a..d57cc6f 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -246,6 +246,9 @@ struct algorithm
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 47242ae4cb2f6bd7ffbf5eb9ae22a354916147c6 Mon Sep 17 00:00:00 2001
|
||||
From 819a2d3c4c10b2512760e554f7f1c142ec9fc07a 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,7 +8,7 @@ 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 2bb8f8f..117e351 100644
|
||||
index d57cc6f..506ed70 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -51,7 +51,8 @@ static HINSTANCE instance;
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 04ad5960981996bdf3c9f14e40da3a9044e55b60 Mon Sep 17 00:00:00 2001
|
||||
From 3c7e2cb0745400c3e48229b7fa3baf224e2e849b 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,4 +1,4 @@
|
||||
From 02d978a02918d24f9b7dd502a560081a9ce1c980 Mon Sep 17 00:00:00 2001
|
||||
From a86334fac65af406c7e634fbf4f68c4796fb1f41 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
|
||||
@ -9,7 +9,7 @@ Subject: [PATCH] bcrypt: Avoid crash in tests when compiling without gnutls
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 117e351..d17224c 100644
|
||||
index 506ed70..b52d289 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -1269,12 +1269,19 @@ NTSTATUS WINAPI BCryptGenerateSymmetricKey( BCRYPT_ALG_HANDLE algorithm, BCRYPT_
|
||||
|
@ -1,4 +1,4 @@
|
||||
From f7a292fc7e53b5d2300b68e2e3234fad3eb80c57 Mon Sep 17 00:00:00 2001
|
||||
From ce3479faa24fcaab430d2c62c1d0c386089206b6 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,7 +9,7 @@ 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 d17224c..420f668 100644
|
||||
index b52d289..6859788 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -225,6 +225,7 @@ enum alg_id
|
||||
|
@ -1,4 +1,4 @@
|
||||
From d517939ffb93bd49d13376770b1b270f9338b2ee Mon Sep 17 00:00:00 2001
|
||||
From d0f750269e6c667bf459ed53bb748a0f558eaa47 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,7 +11,7 @@ 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 420f668..005c98d 100644
|
||||
index 6859788..bb92c04 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -1379,7 +1379,7 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e0684348c300573e6729ce235fce2f49a1760f29 Mon Sep 17 00:00:00 2001
|
||||
From 3617913e722505d39009bc2dc2f32ba05289ff42 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,7 +35,7 @@ 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 005c98d..bfe4708 100644
|
||||
index bb92c04..f00a154 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -1091,6 +1091,13 @@ static NTSTATUS key_get_tag( struct key *key, UCHAR *tag, ULONG len )
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9f5728e55070f4e5d5ad91a06f6837c1513c2917 Mon Sep 17 00:00:00 2001
|
||||
From 7345fd134e82db7d3c53cf67bb4374496c1ed650 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,7 +9,7 @@ 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 bfe4708..2cd1271 100644
|
||||
index f00a154..44c334f 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -990,11 +990,21 @@ static gnutls_cipher_algorithm_t get_gnutls_cipher( const struct key *key )
|
||||
|
@ -1,14 +1,14 @@
|
||||
From c720c7cffa486b64b860822e765fb7818c2c2081 Mon Sep 17 00:00:00 2001
|
||||
From fccac8005af4ef28211ab1ce6ca67d9e069eb951 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 29 Sep 2017 18:31:55 +0200
|
||||
Subject: [PATCH] bcrypt: Preparation for asymmetric keys.
|
||||
|
||||
---
|
||||
dlls/bcrypt/bcrypt_main.c | 316 ++++++++++++++++++++++++++++++----------------
|
||||
1 file changed, 207 insertions(+), 109 deletions(-)
|
||||
dlls/bcrypt/bcrypt_main.c | 340 +++++++++++++++++++++++++++++++---------------
|
||||
1 file changed, 231 insertions(+), 109 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 2cd1271..7eca112 100644
|
||||
index 44c334f..8568d35 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -238,16 +238,17 @@ static const struct {
|
||||
@ -50,7 +50,7 @@ index 2cd1271..7eca112 100644
|
||||
enum mode_id mode;
|
||||
ULONG block_size;
|
||||
gnutls_cipher_hd_t handle;
|
||||
@@ -905,7 +904,17 @@ struct key
|
||||
@@ -905,7 +904,39 @@ struct key
|
||||
ULONG secret_len;
|
||||
};
|
||||
|
||||
@ -65,34 +65,6 @@ index 2cd1271..7eca112 100644
|
||||
+ } u;
|
||||
+};
|
||||
+
|
||||
+static NTSTATUS key_symmetric_init( struct key *key, struct algorithm *alg, const UCHAR *secret, ULONG secret_len )
|
||||
{
|
||||
UCHAR *buffer;
|
||||
|
||||
@@ -921,34 +930,64 @@ static NTSTATUS key_init( struct key *key, struct algorithm *alg, const UCHAR *s
|
||||
return STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
- if (!(key->block_size = get_block_size( alg ))) return STATUS_INVALID_PARAMETER;
|
||||
- if (!(buffer = heap_alloc( GetProcessHeap(), 0, secret_len ))) return STATUS_NO_MEMORY;
|
||||
+ if (!(key->u.s.block_size = get_block_size( alg ))) return STATUS_INVALID_PARAMETER;
|
||||
+ if (!(buffer = heap_alloc( secret_len ))) return STATUS_NO_MEMORY;
|
||||
memcpy( buffer, secret, secret_len );
|
||||
|
||||
- key->alg_id = alg->id;
|
||||
- key->mode = alg->mode;
|
||||
- key->handle = 0; /* initialized on first use */
|
||||
- key->secret = buffer;
|
||||
- key->secret_len = secret_len;
|
||||
+ key->alg_id = alg->id;
|
||||
+ key->u.s.mode = alg->mode;
|
||||
+ key->u.s.handle = 0; /* initialized on first use */
|
||||
+ key->u.s.secret = buffer;
|
||||
+ key->u.s.secret_len = secret_len;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
+static inline BOOL key_is_symmetric( struct key *key )
|
||||
+{
|
||||
+ return alg_props[key->alg_id].symmetric;
|
||||
@ -103,26 +75,65 @@ index 2cd1271..7eca112 100644
|
||||
+ return !alg_props[key->alg_id].symmetric;
|
||||
+}
|
||||
+
|
||||
static NTSTATUS key_duplicate( struct key *key_orig, struct key *key_copy )
|
||||
+static NTSTATUS key_symmetric_get_mode( struct key *key, enum mode_id *mode )
|
||||
+{
|
||||
+ *mode = key->u.s.mode;
|
||||
+ return STATUS_SUCCESS;
|
||||
+}
|
||||
+
|
||||
+static NTSTATUS key_symmetric_get_blocksize( struct key *key, ULONG *size )
|
||||
+{
|
||||
+ *size = key->u.s.block_size;
|
||||
+ return STATUS_SUCCESS;
|
||||
+}
|
||||
+
|
||||
+static NTSTATUS key_symmetric_init( struct key *key, struct algorithm *alg, const UCHAR *secret, ULONG secret_len )
|
||||
{
|
||||
UCHAR *buffer;
|
||||
|
||||
@@ -921,15 +952,15 @@ static NTSTATUS key_init( struct key *key, struct algorithm *alg, const UCHAR *s
|
||||
return STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
- if (!(key->block_size = get_block_size( alg ))) return STATUS_INVALID_PARAMETER;
|
||||
+ if (!(key->u.s.block_size = get_block_size( alg ))) return STATUS_INVALID_PARAMETER;
|
||||
if (!(buffer = heap_alloc( secret_len ))) return STATUS_NO_MEMORY;
|
||||
memcpy( buffer, secret, secret_len );
|
||||
|
||||
key->alg_id = alg->id;
|
||||
- key->mode = alg->mode;
|
||||
- key->handle = 0; /* initialized on first use */
|
||||
- key->secret = buffer;
|
||||
- key->secret_len = secret_len;
|
||||
+ key->u.s.mode = alg->mode;
|
||||
+ key->u.s.handle = 0; /* initialized on first use */
|
||||
+ key->u.s.secret = buffer;
|
||||
+ key->u.s.secret_len = secret_len;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
@@ -938,37 +969,48 @@ static NTSTATUS key_duplicate( struct key *key_orig, struct key *key_copy )
|
||||
{
|
||||
UCHAR *buffer;
|
||||
|
||||
- if (!(buffer = HeapAlloc( GetProcessHeap(), 0, key_orig->secret_len ))) return STATUS_NO_MEMORY;
|
||||
- memcpy( buffer, key_orig->secret, key_orig->secret_len );
|
||||
-
|
||||
key_copy->hdr = key_orig->hdr;
|
||||
key_copy->alg_id = key_orig->alg_id;
|
||||
+ key_copy->hdr = key_orig->hdr;
|
||||
+ key_copy->alg_id = key_orig->alg_id;
|
||||
|
||||
- key_copy->hdr = key_orig->hdr;
|
||||
- key_copy->alg_id = key_orig->alg_id;
|
||||
- key_copy->mode = key_orig->mode;
|
||||
- key_copy->block_size = key_orig->block_size;
|
||||
- key_copy->handle = NULL;
|
||||
- key_copy->secret = buffer;
|
||||
- key_copy->secret_len = key_orig->secret_len;
|
||||
|
||||
+ if (key_is_symmetric(key_orig))
|
||||
+ {
|
||||
+ if (!(buffer = HeapAlloc( GetProcessHeap(), 0, key_orig->u.s.secret_len ))) return STATUS_NO_MEMORY;
|
||||
+ memcpy( buffer, key_orig->u.s.secret, key_orig->u.s.secret_len );
|
||||
+
|
||||
|
||||
- return STATUS_SUCCESS;
|
||||
+ key_copy->u.s.mode = key_orig->u.s.mode;
|
||||
+ key_copy->u.s.block_size = key_orig->u.s.block_size;
|
||||
+ key_copy->u.s.handle = NULL;
|
||||
@ -135,21 +146,9 @@ index 2cd1271..7eca112 100644
|
||||
+ {
|
||||
+ return STATUS_NOT_IMPLEMENTED;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static NTSTATUS key_symmetric_get_mode( struct key *key, enum mode_id *mode )
|
||||
+{
|
||||
+ *mode = key->u.s.mode;
|
||||
+ return STATUS_SUCCESS;
|
||||
+}
|
||||
+
|
||||
+static NTSTATUS key_symmetric_get_blocksize( struct key *key, ULONG *size )
|
||||
+{
|
||||
+ *size = key->u.s.block_size;
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -956,19 +995,22 @@ static NTSTATUS set_key_property( struct key *key, const WCHAR *prop, UCHAR *val
|
||||
static NTSTATUS set_key_property( struct key *key, const WCHAR *prop, UCHAR *value, ULONG size, ULONG flags )
|
||||
{
|
||||
if (!strcmpW( prop, BCRYPT_CHAINING_MODE ))
|
||||
{
|
||||
@ -329,7 +328,36 @@ index 2cd1271..7eca112 100644
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
#elif defined(HAVE_COMMONCRYPTO_COMMONCRYPTOR_H) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1080
|
||||
@@ -1231,59 +1277,80 @@ struct key
|
||||
@@ -1127,6 +1173,28 @@ struct key
|
||||
ULONG secret_len;
|
||||
};
|
||||
|
||||
+static inline BOOL key_is_symmetric( struct key *key )
|
||||
+{
|
||||
+ return alg_props[key->alg_id].symmetric;
|
||||
+}
|
||||
+
|
||||
+static inline BOOL key_is_asymmetric( struct key *key )
|
||||
+{
|
||||
+ return !alg_props[key->alg_id].symmetric;
|
||||
+}
|
||||
+
|
||||
+static NTSTATUS key_symmetric_get_mode( struct key *key, enum mode_id *mode )
|
||||
+{
|
||||
+ *mode = key->u.s.mode;
|
||||
+ return STATUS_SUCCESS;
|
||||
+}
|
||||
+
|
||||
+static NTSTATUS key_symmetric_get_blocksize( struct key *key, ULONG *size )
|
||||
+{
|
||||
+ *size = key->u.s.block_size;
|
||||
+ return STATUS_SUCCESS;
|
||||
+}
|
||||
+
|
||||
static NTSTATUS key_init( struct key *key, struct algorithm *alg, const UCHAR *secret, ULONG secret_len )
|
||||
{
|
||||
UCHAR *buffer;
|
||||
@@ -1231,59 +1299,82 @@ struct key
|
||||
ULONG block_size;
|
||||
};
|
||||
|
||||
@ -343,6 +371,7 @@ index 2cd1271..7eca112 100644
|
||||
+static inline BOOL key_is_asymmetric( struct key *key )
|
||||
+{
|
||||
+ ERR( "support for keys not available at build time\n" );
|
||||
+ return 0;
|
||||
+};
|
||||
+
|
||||
+static NTSTATUS key_symmetric_init( struct key *key, struct algorithm *alg, UCHAR *secret, ULONG secret_len )
|
||||
@ -354,20 +383,21 @@ index 2cd1271..7eca112 100644
|
||||
|
||||
static NTSTATUS key_duplicate( struct key *key_orig, struct key *key_copy )
|
||||
{
|
||||
+ ERR( "support for keys not available at build time\n" );
|
||||
+ return STATUS_NOT_IMPLEMENTED;
|
||||
+}
|
||||
+
|
||||
+static NTSTATUS key_symmetric_get_mode( struct key *key, enum mode_id *mode )
|
||||
+{
|
||||
ERR( "support for keys not available at build time\n" );
|
||||
- key_copy->mode = MODE_ID_CBC;
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
+static NTSTATUS key_symmetric_get_mode( struct key *key, enum mode_id *mode )
|
||||
+{
|
||||
+ ERR( "support for keys not available at build time\n" );
|
||||
+ return STATUS_NOT_IMPLEMENTED;
|
||||
+}
|
||||
+
|
||||
+static NTSTATUS key_symmetric_get_blocksize( struct key *key, ULONG *size )
|
||||
+{
|
||||
+ ERR( "support for keys not available at build time\n" );
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
@ -419,7 +449,7 @@ index 2cd1271..7eca112 100644
|
||||
{
|
||||
ERR( "support for keys not available at build time\n" );
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
@@ -1318,7 +1385,7 @@ NTSTATUS WINAPI BCryptGenerateSymmetricKey( BCRYPT_ALG_HANDLE algorithm, BCRYPT_
|
||||
@@ -1318,7 +1409,7 @@ NTSTATUS WINAPI BCryptGenerateSymmetricKey( BCRYPT_ALG_HANDLE algorithm, BCRYPT_
|
||||
|
||||
key->hdr.magic = MAGIC_KEY;
|
||||
|
||||
@ -428,7 +458,7 @@ index 2cd1271..7eca112 100644
|
||||
{
|
||||
heap_free( key );
|
||||
*handle = NULL;
|
||||
@@ -1415,13 +1482,19 @@ NTSTATUS WINAPI BCryptExportKey( BCRYPT_KEY_HANDLE export_key, BCRYPT_KEY_HANDLE
|
||||
@@ -1415,13 +1506,19 @@ NTSTATUS WINAPI BCryptExportKey( BCRYPT_KEY_HANDLE export_key, BCRYPT_KEY_HANDLE
|
||||
if (!key || key->hdr.magic != MAGIC_KEY) return STATUS_INVALID_HANDLE;
|
||||
if (!output || !output_len || !size) return STATUS_INVALID_PARAMETER;
|
||||
|
||||
@ -449,7 +479,7 @@ index 2cd1271..7eca112 100644
|
||||
return status;
|
||||
|
||||
if (!strcmpW( type, BCRYPT_KEY_DATA_BLOB ))
|
||||
@@ -1462,19 +1535,30 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1462,19 +1559,30 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
struct key *key = handle;
|
||||
ULONG bytes_left = input_len;
|
||||
UCHAR *buf, *src, *dst;
|
||||
@ -481,7 +511,7 @@ index 2cd1271..7eca112 100644
|
||||
{
|
||||
BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO *auth_info = padding;
|
||||
|
||||
@@ -1485,7 +1569,7 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1485,7 +1593,7 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
if (auth_info->dwFlags & BCRYPT_AUTH_MODE_CHAIN_CALLS_FLAG)
|
||||
FIXME( "call chaining not implemented\n" );
|
||||
|
||||
@ -490,7 +520,7 @@ index 2cd1271..7eca112 100644
|
||||
return status;
|
||||
|
||||
*ret_len = input_len;
|
||||
@@ -1493,46 +1577,48 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1493,46 +1601,48 @@ NTSTATUS WINAPI BCryptEncrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
if (input && !output) return STATUS_SUCCESS;
|
||||
if (output_len < *ret_len) return STATUS_BUFFER_TOO_SMALL;
|
||||
|
||||
@ -555,7 +585,7 @@ index 2cd1271..7eca112 100644
|
||||
heap_free( buf );
|
||||
}
|
||||
|
||||
@@ -1546,19 +1632,30 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1546,19 +1656,30 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
struct key *key = handle;
|
||||
ULONG bytes_left = input_len;
|
||||
UCHAR *buf, *src, *dst;
|
||||
@ -587,7 +617,7 @@ index 2cd1271..7eca112 100644
|
||||
{
|
||||
BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO *auth_info = padding;
|
||||
UCHAR tag[16];
|
||||
@@ -1568,7 +1665,7 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1568,7 +1689,7 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
if (!auth_info->pbTag) return STATUS_INVALID_PARAMETER;
|
||||
if (auth_info->cbTag < 12 || auth_info->cbTag > 16) return STATUS_INVALID_PARAMETER;
|
||||
|
||||
@ -596,7 +626,7 @@ index 2cd1271..7eca112 100644
|
||||
return status;
|
||||
|
||||
*ret_len = input_len;
|
||||
@@ -1576,12 +1673,12 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1576,12 +1697,12 @@ 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;
|
||||
|
||||
@ -612,7 +642,7 @@ index 2cd1271..7eca112 100644
|
||||
return status;
|
||||
if (memcmp( tag, auth_info->pbTag, auth_info->cbTag ))
|
||||
return STATUS_AUTH_TAG_MISMATCH;
|
||||
@@ -1589,44 +1686,45 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
@@ -1589,44 +1710,45 @@ NTSTATUS WINAPI BCryptDecrypt( BCRYPT_KEY_HANDLE handle, UCHAR *input, ULONG inp
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 3dc66c17df931e50e8cb639307e0d53db5039d1f Mon Sep 17 00:00:00 2001
|
||||
From 080654bd51c431b745dd75bbe43cadd8f3974113 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 29 Sep 2017 18:49:09 +0200
|
||||
Subject: [PATCH] include: Add ecdsa and asymmetric key related bcrypt
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 5dfa33fabba4065c5d6a15736d4253e31baa6261 Mon Sep 17 00:00:00 2001
|
||||
From 97f00b37c8daf589826b88225db540348bc9f52b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 29 Sep 2017 18:50:04 +0200
|
||||
Subject: [PATCH] bcrypt/tests: Add basic test for ecdsa.
|
||||
|
@ -1,4 +1,4 @@
|
||||
From eba8c4fffe792b267e4e6b527c68b7cf51600910 Mon Sep 17 00:00:00 2001
|
||||
From 64827bb05687927e9f241fc53293e415d4772720 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 29 Sep 2017 19:18:58 +0200
|
||||
Subject: [PATCH] bcrypt: Implement importing of ecdsa keys.
|
||||
@ -33,7 +33,7 @@ index 28c2394..78824d7 100644
|
||||
@ stub GetCipherInterface
|
||||
@ stub GetHashInterface
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 7eca112..2c40ac9 100644
|
||||
index 8568d35..0ec271e 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -220,7 +220,9 @@ enum alg_id
|
||||
@ -80,7 +80,7 @@ index 7eca112..2c40ac9 100644
|
||||
struct key
|
||||
{
|
||||
struct object hdr;
|
||||
@@ -911,6 +923,7 @@ struct key
|
||||
@@ -911,9 +923,37 @@ struct key
|
||||
union
|
||||
{
|
||||
struct key_symmetric s;
|
||||
@ -88,10 +88,6 @@ index 7eca112..2c40ac9 100644
|
||||
} u;
|
||||
};
|
||||
|
||||
@@ -943,6 +956,33 @@ static NTSTATUS key_symmetric_init( struct key *key, struct algorithm *alg, cons
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
+static NTSTATUS key_asymmetric_init( struct key *key, struct algorithm *alg, const UCHAR *pubkey, ULONG pubkey_len )
|
||||
+{
|
||||
+ UCHAR *buffer;
|
||||
@ -122,7 +118,7 @@ index 7eca112..2c40ac9 100644
|
||||
static inline BOOL key_is_symmetric( struct key *key )
|
||||
{
|
||||
return alg_props[key->alg_id].symmetric;
|
||||
@@ -975,7 +1015,13 @@ static NTSTATUS key_duplicate( struct key *key_orig, struct key *key_copy )
|
||||
@@ -987,7 +1027,13 @@ static NTSTATUS key_duplicate( struct key *key_orig, struct key *key_copy )
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -148,7 +144,7 @@ index 7eca112..2c40ac9 100644
|
||||
heap_free( key );
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
@@ -1294,6 +1344,12 @@ static NTSTATUS key_symmetric_init( struct key *key, struct algorithm *alg, UCHA
|
||||
@@ -1317,6 +1367,12 @@ static NTSTATUS key_symmetric_init( struct key *key, struct algorithm *alg, UCHA
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@ -160,8 +156,8 @@ index 7eca112..2c40ac9 100644
|
||||
+
|
||||
static NTSTATUS key_duplicate( struct key *key_orig, struct key *key_copy )
|
||||
{
|
||||
ERR( "support for keys not available at build time\n" );
|
||||
@@ -1518,6 +1574,88 @@ NTSTATUS WINAPI BCryptExportKey( BCRYPT_KEY_HANDLE export_key, BCRYPT_KEY_HANDLE
|
||||
ERR( "support for keys not available at build time\n" );
|
||||
@@ -1542,6 +1598,88 @@ NTSTATUS WINAPI BCryptExportKey( BCRYPT_KEY_HANDLE export_key, BCRYPT_KEY_HANDLE
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 55060223c611c8091c7a248e978966bb8ee3f57b Mon Sep 17 00:00:00 2001
|
||||
From 2776e51e8bb9affd3464834e784c7c0b5dbfc2bc Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 29 Sep 2017 20:31:00 +0200
|
||||
Subject: [PATCH] bcrypt: Implement BCryptVerifySignature for ecdsa signatures.
|
||||
@ -9,7 +9,7 @@ Subject: [PATCH] bcrypt: Implement BCryptVerifySignature for ecdsa signatures.
|
||||
2 files changed, 326 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 2c40ac9..17fb3fe 100644
|
||||
index 0ec271e..74704ea 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -27,6 +27,7 @@
|
||||
@ -384,7 +384,7 @@ index 2c40ac9..17fb3fe 100644
|
||||
static NTSTATUS key_destroy( struct key *key )
|
||||
{
|
||||
if (key_is_symmetric(key))
|
||||
@@ -1412,6 +1726,13 @@ static NTSTATUS key_symmetric_get_secret( struct key *key, UCHAR **secret, ULONG
|
||||
@@ -1436,6 +1750,13 @@ static NTSTATUS key_symmetric_get_secret( struct key *key, UCHAR **secret, ULONG
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@ -398,7 +398,7 @@ index 2c40ac9..17fb3fe 100644
|
||||
static NTSTATUS key_destroy( struct key *key )
|
||||
{
|
||||
ERR( "support for keys not available at build time\n" );
|
||||
@@ -1647,13 +1968,14 @@ NTSTATUS WINAPI BCryptVerifySignature( BCRYPT_KEY_HANDLE handle, void *padding,
|
||||
@@ -1671,13 +1992,14 @@ NTSTATUS WINAPI BCryptVerifySignature( BCRYPT_KEY_HANDLE handle, void *padding,
|
||||
{
|
||||
struct key *key = handle;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From d6296c86cc818de227689c44f3b6a01670115f2a Mon Sep 17 00:00:00 2001
|
||||
From c3255fceabfc20372fe78b9e838e85cf5adbd824 Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Tue, 10 Oct 2017 16:40:41 +0300
|
||||
Subject: [PATCH] bcrypt: Initial implementation for RSA key import and
|
||||
@ -10,7 +10,7 @@ Subject: [PATCH] bcrypt: Initial implementation for RSA key import and
|
||||
2 files changed, 135 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 17fb3fe..11f5fbb 100644
|
||||
index 74704ea..c1232bf 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -72,6 +72,9 @@ static int (*pgnutls_pubkey_verify_hash2)(gnutls_pubkey_t key, gnutls_sign_algor
|
||||
@ -71,7 +71,7 @@ index 17fb3fe..11f5fbb 100644
|
||||
else if (!strcmpW( id, BCRYPT_SHA1_ALGORITHM )) alg_id = ALG_ID_SHA1;
|
||||
else if (!strcmpW( id, BCRYPT_SHA256_ALGORITHM )) alg_id = ALG_ID_SHA256;
|
||||
else if (!strcmpW( id, BCRYPT_SHA384_ALGORITHM )) alg_id = ALG_ID_SHA384;
|
||||
@@ -1022,6 +1038,7 @@ static NTSTATUS key_asymmetric_init( struct key *key, struct algorithm *alg, con
|
||||
@@ -993,6 +1009,7 @@ static NTSTATUS key_asymmetric_init( struct key *key, struct algorithm *alg, con
|
||||
{
|
||||
case ALG_ID_ECDSA_P256:
|
||||
case ALG_ID_ECDSA_P384:
|
||||
@ -215,7 +215,7 @@ index 17fb3fe..11f5fbb 100644
|
||||
pgnutls_pubkey_deinit( gnutls_key );
|
||||
return (ret < 0) ? STATUS_INVALID_SIGNATURE : STATUS_SUCCESS;
|
||||
}
|
||||
@@ -1958,6 +2039,33 @@ NTSTATUS WINAPI BCryptImportKeyPair( BCRYPT_ALG_HANDLE algorithm, BCRYPT_KEY_HAN
|
||||
@@ -1982,6 +2063,33 @@ NTSTATUS WINAPI BCryptImportKeyPair( BCRYPT_ALG_HANDLE algorithm, BCRYPT_KEY_HAN
|
||||
*ret_key = key;
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 7b67f0c8ef5d80a930bc3a2826f2cd7551d625a4 Mon Sep 17 00:00:00 2001
|
||||
From 385edce41cabb41837ecd4f1edbc1f5567d6983b Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Tue, 10 Oct 2017 16:41:09 +0300
|
||||
Subject: [PATCH] bcrypt/tests: Add simple test for RSA.
|
||||
|
@ -1,4 +1,4 @@
|
||||
From b76a055bfc3acdb49a9cc9601c9799169e45ddec Mon Sep 17 00:00:00 2001
|
||||
From 122b26c953e65e243abf5c2d6543fe9fc9869599 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 14 Oct 2017 22:44:13 +0200
|
||||
Subject: [PATCH] bcrypt: Store full ECCKEY_BLOB struct in BCryptImportKeyPair.
|
||||
@ -8,7 +8,7 @@ Subject: [PATCH] bcrypt: Store full ECCKEY_BLOB struct in BCryptImportKeyPair.
|
||||
1 file changed, 7 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
|
||||
index 11f5fbb..203bd69 100644
|
||||
index c1232bf..a805f64 100644
|
||||
--- a/dlls/bcrypt/bcrypt_main.c
|
||||
+++ b/dlls/bcrypt/bcrypt_main.c
|
||||
@@ -1380,6 +1380,7 @@ static void buffer_append_asn1_r_s( struct buffer *buffer, BYTE *r, DWORD r_len,
|
||||
@ -35,7 +35,7 @@ index 11f5fbb..203bd69 100644
|
||||
|
||||
if ((ret = pgnutls_pubkey_import_ecc_raw( *gnutls_key, curve, &x, &y )))
|
||||
{
|
||||
@@ -2030,7 +2032,7 @@ NTSTATUS WINAPI BCryptImportKeyPair( BCRYPT_ALG_HANDLE algorithm, BCRYPT_KEY_HAN
|
||||
@@ -2054,7 +2056,7 @@ NTSTATUS WINAPI BCryptImportKeyPair( BCRYPT_ALG_HANDLE algorithm, BCRYPT_KEY_HAN
|
||||
return STATUS_NO_MEMORY;
|
||||
|
||||
key->hdr.magic = MAGIC_KEY;
|
||||
|
Loading…
Reference in New Issue
Block a user