Signed-off-by: Zhang Shuai <wxsxsdz(a)gmail.com>
---
dlls/rsaenh/cryptoprovconfig.h | 8 +++++-
dlls/rsaenh/cryptoprovutils.c | 46 +++++++++++++++++-----------------
dlls/rsaenh/cryptoprovutils.h | 10 ++++----
3 files changed, 35 insertions(+), 29 deletions(-)
diff --git a/dlls/rsaenh/cryptoprovconfig.h b/dlls/rsaenh/cryptoprovconfig.h
index 10cbc31b8b..e482d37ad4 100644
--- a/dlls/rsaenh/cryptoprovconfig.h
+++ b/dlls/rsaenh/cryptoprovconfig.h
@@ -79,6 +79,12 @@ static const PROVNAMEPERSONALITYPAIR
aProvNamePersonalityPairs[6] =
/******************************************************************************
* Definitions concerning prefix.
*/
-#define RSAENH_SCHANNEL_INFO SCHANNEL_INFO
+#define RSAENH_SCHANNEL_INFO SCHANNEL_INFO
+#define RSAENH_MAX_KEY_SIZE CRYPTO_PROV_MAX_KEY_SIZE
+#define RSAENH_MAX_BLOCK_SIZE CRYPTO_PROV_MAX_BLOCK_SIZE
+
+#define CRYPTO_PROV_REGKEY RSAENH_REGKEY
+#define CRYPTO_PROV_MAGIC_KEY RSAENH_MAGIC_KEY
+#define CRYPTO_PROV_MAGIC_CONTAINER RSAENH_MAGIC_CONTAINER
#endif /* __WINE_CRYPTOPROVCONFIG_H */
diff --git a/dlls/rsaenh/cryptoprovutils.c b/dlls/rsaenh/cryptoprovutils.c
index 7262ead819..ed3b16b13a 100644
--- a/dlls/rsaenh/cryptoprovutils.c
+++ b/dlls/rsaenh/cryptoprovutils.c
@@ -52,19 +52,19 @@ extern struct handle_table handle_table;
*/
BOOL create_container_key(KEYCONTAINER *pKeyContainer, REGSAM sam, HKEY *phKey)
{
- CHAR szRSABase[sizeof(RSAENH_REGKEY) + MAX_PATH];
+ CHAR szBase[sizeof(CRYPTO_PROV_REGKEY) + MAX_PATH];
HKEY hRootKey;
- sprintf(szRSABase, RSAENH_REGKEY, pKeyContainer->szName);
+ sprintf(szBase, CRYPTO_PROV_REGKEY, pKeyContainer->szName);
if (pKeyContainer->dwFlags & CRYPT_MACHINE_KEYSET)
hRootKey = HKEY_LOCAL_MACHINE;
else
hRootKey = HKEY_CURRENT_USER;
- /* @@ Wine registry key: HKLM\Software\Wine\Crypto\RSA */
- /* @@ Wine registry key: HKCU\Software\Wine\Crypto\RSA */
- return RegCreateKeyExA(hRootKey, szRSABase, 0, NULL,
+ /* @@ Wine registry key: HKLM\Software\Wine\Crypto\(CRYPTO_PROV) */
+ /* @@ Wine registry key: HKCU\Software\Wine\Crypto\(CRYPTO_PROV) */
+ return RegCreateKeyExA(hRootKey, szBase, 0, NULL,
REG_OPTION_NON_VOLATILE, sam, NULL, phKey, NULL)
== ERROR_SUCCESS;
}
@@ -83,19 +83,19 @@ BOOL create_container_key(KEYCONTAINER
*pKeyContainer, REGSAM sam, HKEY *phKey)
*/
BOOL open_container_key(LPCSTR pszContainerName, DWORD dwFlags,
REGSAM access, HKEY *phKey)
{
- CHAR szRSABase[sizeof(RSAENH_REGKEY) + MAX_PATH];
+ CHAR szBase[sizeof(CRYPTO_PROV_REGKEY) + MAX_PATH];
HKEY hRootKey;
- sprintf(szRSABase, RSAENH_REGKEY, pszContainerName);
+ sprintf(szBase, CRYPTO_PROV_REGKEY, pszContainerName);
if (dwFlags & CRYPT_MACHINE_KEYSET)
hRootKey = HKEY_LOCAL_MACHINE;
else
hRootKey = HKEY_CURRENT_USER;
- /* @@ Wine registry key: HKLM\Software\Wine\Crypto\RSA */
- /* @@ Wine registry key: HKCU\Software\Wine\Crypto\RSA */
- return RegOpenKeyExA(hRootKey, szRSABase, 0, access, phKey) ==
+ /* @@ Wine registry key: HKLM\Software\Wine\Crypto\(CRYPTO_PROV) */
+ /* @@ Wine registry key: HKCU\Software\Wine\Crypto\(CRYPTO_PROV) */
+ return RegOpenKeyExA(hRootKey, szBase, 0, access, phKey) ==
ERROR_SUCCESS;
}
@@ -110,10 +110,10 @@ BOOL open_container_key(LPCSTR pszContainerName,
DWORD dwFlags, REGSAM access, H
*/
BOOL delete_container_key(LPCSTR pszContainerName, DWORD dwFlags)
{
- CHAR szRegKey[sizeof(RSAENH_REGKEY) + MAX_PATH];
+ CHAR szRegKey[sizeof(CRYPTO_PROV_REGKEY) + MAX_PATH];
HKEY hRootKey;
- sprintf(szRegKey, RSAENH_REGKEY, pszContainerName);
+ sprintf(szRegKey, CRYPTO_PROV_REGKEY, pszContainerName);
if (dwFlags & CRYPT_MACHINE_KEYSET)
hRootKey = HKEY_LOCAL_MACHINE;
@@ -180,7 +180,7 @@ void store_key_pair(HCRYPTKEY hCryptKey, HKEY
hKey, DWORD dwKeySpec, DWORD dwFla
if (!(szValueName = map_key_spec_to_key_pair_name(dwKeySpec)))
return;
- if (lookup_handle(&handle_table, hCryptKey, RSAENH_MAGIC_KEY,
+ if (lookup_handle(&handle_table, hCryptKey, CRYPTO_PROV_MAGIC_KEY,
(OBJECTHDR**)&pKey))
{
if (crypt_export_key(pKey, 0, PRIVATEKEYBLOB, 0, TRUE, 0, &dwLen))
@@ -222,7 +222,7 @@ void store_key_container_keys(KEYCONTAINER *pKeyContainer)
DWORD dwFlags;
/* On WinXP, persistent keys are stored in a file located at:
- * $AppData$\\Microsoft\\Crypto\\RSA\\$SID$\\some_hex_string
+ * $AppData$\\Microsoft\\Crypto\\(CRYPTO_PROV)\\$SID$\\some_hex_string
*/
if (pKeyContainer->dwFlags & CRYPT_MACHINE_KEYSET)
@@ -289,7 +289,7 @@ void store_key_permissions(HCRYPTKEY hCryptKey,
HKEY hKey, DWORD dwKeySpec)
if (!(szValueName = map_key_spec_to_permissions_name(dwKeySpec)))
return;
- if (lookup_handle(&handle_table, hCryptKey, RSAENH_MAGIC_KEY,
+ if (lookup_handle(&handle_table, hCryptKey, CRYPTO_PROV_MAGIC_KEY,
(OBJECTHDR**)&pKey))
RegSetValueExA(hKey, szValueName, 0, REG_DWORD,
(BYTE *)&pKey->dwPermissions,
@@ -330,9 +330,9 @@ void store_key_container_permissions(KEYCONTAINER
*pKeyContainer)
void release_key_container_keys(KEYCONTAINER *pKeyContainer)
{
release_handle(&handle_table, pKeyContainer->hKeyExchangeKeyPair,
- RSAENH_MAGIC_KEY);
+ CRYPTO_PROV_MAGIC_KEY);
release_handle(&handle_table, pKeyContainer->hSignatureKeyPair,
- RSAENH_MAGIC_KEY);
+ CRYPTO_PROV_MAGIC_KEY);
}
/******************************************************************************
@@ -407,7 +407,7 @@ BOOL read_key_value(HCRYPTPROV hKeyContainer, HKEY
hKey, DWORD dwKeySpec, DWORD
{
CRYPTKEY *pKey;
- if (lookup_handle(&handle_table, *phCryptKey, RSAENH_MAGIC_KEY,
+ if (lookup_handle(&handle_table, *phCryptKey, CRYPTO_PROV_MAGIC_KEY,
(OBJECTHDR**)&pKey))
{
if ((szValueName = map_key_spec_to_permissions_name(dwKeySpec)))
@@ -454,7 +454,7 @@ HCRYPTPROV read_key_container(PCHAR
pszContainerName, DWORD dwFlags, const VTabl
DWORD dwProtectFlags = (dwFlags & CRYPT_MACHINE_KEYSET) ?
CRYPTPROTECT_LOCAL_MACHINE : 0;
- if (!lookup_handle(&handle_table, hKeyContainer,
RSAENH_MAGIC_CONTAINER,
+ if (!lookup_handle(&handle_table, hKeyContainer,
CRYPTO_PROV_MAGIC_CONTAINER,
(OBJECTHDR**)&pKeyContainer))
return (HCRYPTPROV)INVALID_HANDLE_VALUE;
@@ -466,10 +466,10 @@ HCRYPTPROV read_key_container(PCHAR
pszContainerName, DWORD dwFlags, const VTabl
*/
if (read_key_value(hKeyContainer, hKey, AT_KEYEXCHANGE,
dwProtectFlags, &hCryptKey))
- release_handle(&handle_table, hCryptKey, RSAENH_MAGIC_KEY);
+ release_handle(&handle_table, hCryptKey, CRYPTO_PROV_MAGIC_KEY);
if (read_key_value(hKeyContainer, hKey, AT_SIGNATURE,
dwProtectFlags, &hCryptKey))
- release_handle(&handle_table, hCryptKey, RSAENH_MAGIC_KEY);
+ release_handle(&handle_table, hCryptKey, CRYPTO_PROV_MAGIC_KEY);
}
return hKeyContainer;
@@ -478,7 +478,7 @@ HCRYPTPROV read_key_container(PCHAR
pszContainerName, DWORD dwFlags, const VTabl
/******************************************************************************
* new_key_container [Internal]
*
- * Create a new key container. The personality (RSA Base, Strong or
Enhanced CP)
+ * Create a new key container. The personality
* of the CSP is determined via the pVTable->pszProvName string.
*
* PARAMS
@@ -495,7 +495,7 @@ HCRYPTPROV new_key_container(PCCH
pszContainerName, DWORD dwFlags, const VTableP
HCRYPTPROV hKeyContainer;
DWORD i;
- hKeyContainer = new_object(&handle_table, sizeof(KEYCONTAINER),
RSAENH_MAGIC_CONTAINER,
+ hKeyContainer = new_object(&handle_table, sizeof(KEYCONTAINER),
CRYPTO_PROV_MAGIC_CONTAINER,
destroy_key_container,
(OBJECTHDR**)&pKeyContainer);
if (hKeyContainer != (HCRYPTPROV)INVALID_HANDLE_VALUE)
{
diff --git a/dlls/rsaenh/cryptoprovutils.h b/dlls/rsaenh/cryptoprovutils.h
index f745ada8d4..3a756d3735 100644
--- a/dlls/rsaenh/cryptoprovutils.h
+++ b/dlls/rsaenh/cryptoprovutils.h
@@ -47,8 +47,8 @@ typedef struct _SCHANNEL_INFO
CRYPT_DATA_BLOB blobServerRandom;
} SCHANNEL_INFO;
-#define RSAENH_MAX_KEY_SIZE 64
-#define RSAENH_MAX_BLOCK_SIZE 24
+#define CRYPTO_PROV_MAX_KEY_SIZE 64
+#define CRYPTO_PROV_MAX_BLOCK_SIZE 24
typedef struct tagCRYPTKEY
{
OBJECTHDR header;
@@ -63,9 +63,9 @@ typedef struct tagCRYPTKEY
DWORD dwBlockLen;
DWORD dwState;
KEY_CONTEXT context;
- BYTE abKeyValue[RSAENH_MAX_KEY_SIZE];
- BYTE abInitVector[RSAENH_MAX_BLOCK_SIZE];
- BYTE abChainVector[RSAENH_MAX_BLOCK_SIZE];
+ BYTE abKeyValue[CRYPTO_PROV_MAX_KEY_SIZE];
+ BYTE abInitVector[CRYPTO_PROV_MAX_BLOCK_SIZE];
+ BYTE abChainVector[CRYPTO_PROV_MAX_BLOCK_SIZE];
SCHANNEL_INFO siSChannelInfo;
CRYPT_DATA_BLOB blobHmacKey;
} CRYPTKEY;
--
2.21.0