Juan Lang : rsaenh: Use helper function to delete a key container' s registry key.

Alexandre Julliard julliard at winehq.org
Wed Nov 7 06:46:00 CST 2007


Module: wine
Branch: master
Commit: 9260fcf7acafc15364340b457e7f01bb1216b564
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9260fcf7acafc15364340b457e7f01bb1216b564

Author: Juan Lang <juan.lang at gmail.com>
Date:   Tue Nov  6 11:53:14 2007 -0800

rsaenh: Use helper function to delete a key container's registry key.

---

 dlls/rsaenh/rsaenh.c |   52 +++++++++++++++++++++++++++++++------------------
 1 files changed, 33 insertions(+), 19 deletions(-)

diff --git a/dlls/rsaenh/rsaenh.c b/dlls/rsaenh/rsaenh.c
index fbb0238..4c154c1 100644
--- a/dlls/rsaenh/rsaenh.c
+++ b/dlls/rsaenh/rsaenh.c
@@ -965,6 +965,38 @@ static BOOL open_container_key(LPCSTR pszContainerName, DWORD dwFlags, HKEY *phK
 }
 
 /******************************************************************************
+ * delete_container_key [Internal]
+ *
+ * Deletes a key container's persistent storage.
+ *
+ * PARAMS
+ *  pszContainerName [I] Name of the container to be opened.
+ *  dwFlags          [I] Flags indicating which keyset to be opened.
+ */
+static BOOL delete_container_key(LPCSTR pszContainerName, DWORD dwFlags)
+{
+    CHAR szRegKey[MAX_PATH];
+
+    if (snprintf(szRegKey, MAX_PATH, RSAENH_REGKEY, pszContainerName) >= MAX_PATH) {
+        SetLastError(NTE_BAD_KEYSET_PARAM);
+        return FALSE;
+    } else {
+        HKEY hRootKey;
+        if (dwFlags & CRYPT_MACHINE_KEYSET)
+            hRootKey = HKEY_LOCAL_MACHINE;
+        else
+            hRootKey = HKEY_CURRENT_USER;
+        if (!RegDeleteKeyA(hRootKey, szRegKey)) {
+            SetLastError(ERROR_SUCCESS);
+            return TRUE;
+        } else {
+            SetLastError(NTE_BAD_KEYSET);
+            return FALSE;
+        }
+    }
+}
+
+/******************************************************************************
  * store_key_container_keys [Internal]
  *
  * Stores key container's keys in a persistent location.
@@ -1479,7 +1511,6 @@ BOOL WINAPI RSAENH_CPAcquireContext(HCRYPTPROV *phProv, LPSTR pszContainer,
                    DWORD dwFlags, PVTableProvStruc pVTable)
 {
     CHAR szKeyContainerName[MAX_PATH];
-    CHAR szRegKey[MAX_PATH];
 
     TRACE("(phProv=%p, pszContainer=%s, dwFlags=%08x, pVTable=%p)\n", phProv,
           debugstr_a(pszContainer), dwFlags, pVTable);
@@ -1501,24 +1532,7 @@ BOOL WINAPI RSAENH_CPAcquireContext(HCRYPTPROV *phProv, LPSTR pszContainer,
             break;
 
         case CRYPT_DELETEKEYSET:
-            if (snprintf(szRegKey, MAX_PATH, RSAENH_REGKEY, szKeyContainerName) >= MAX_PATH) {
-                SetLastError(NTE_BAD_KEYSET_PARAM);
-                return FALSE;
-            } else {
-                HKEY hRootKey;
-                if (dwFlags & CRYPT_MACHINE_KEYSET)
-                    hRootKey = HKEY_LOCAL_MACHINE;
-                else
-                    hRootKey = HKEY_CURRENT_USER;
-                if (!RegDeleteKeyA(hRootKey, szRegKey)) {
-                    SetLastError(ERROR_SUCCESS);
-                    return TRUE;
-                } else {
-                    SetLastError(NTE_BAD_KEYSET);
-                    return FALSE;
-                }
-            }
-            break;
+            return delete_container_key(szKeyContainerName, dwFlags);
 
         case CRYPT_NEWKEYSET:
             *phProv = read_key_container(szKeyContainerName, dwFlags, pVTable);




More information about the wine-cvs mailing list