Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1672)

Unified Diff: base/crypto/capi_util.h

Issue 2828019: Add a locked version of CryptAcquireContext (Closed)
Patch Set: Forgot one reference... Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/crypto/capi_util.h
diff --git a/base/crypto/capi_util.h b/base/crypto/capi_util.h
new file mode 100644
index 0000000000000000000000000000000000000000..9f26403255f6137a53d17c96e3a7bf19dc7ab62a
--- /dev/null
+++ b/base/crypto/capi_util.h
@@ -0,0 +1,31 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_CRYPTO_CAPI_UTIL_H_
+#define BASE_CRYPTO_CAPI_UTIl_H_
+
+#include <windows.h>
+#include <wincrypt.h>
+
+namespace base {
+
+// CryptAcquireContext when passed CRYPT_NEWKEYSET or CRYPT_DELETEKEYSET in
+// flags is not thread-safe. For such calls, we create a global lock to
+// synchronize it.
+//
+// From "Threading Issues with Cryptographic Service Providers",
+// <http://msdn.microsoft.com/en-us/library/aa388149(v=VS.85).aspx>:
+//
+// "The CryptAcquireContext function is generally thread safe unless
+// CRYPT_NEWKEYSET or CRYPT_DELETEKEYSET is specified in the dwFlags
+// parameter."
+BOOL CryptAcquireContextLocked(HCRYPTPROV* prov,
wtc 2010/06/23 16:44:15 Suggestion for future work: also add CryptoAcquire
+ const TCHAR* container,
+ const TCHAR* provider,
+ DWORD prov_type,
+ DWORD flags);
+
+} // namespace base
+
+#endif // BASE_CRYPTO_CAPI_UTIl_H_

Powered by Google App Engine
This is Rietveld 408576698