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

Unified Diff: net/base/x509_certificate_win.cc

Issue 2812064: Revert 52799 - Add support for parsing certificate formats other than raw, DE... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 5 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: net/base/x509_certificate_win.cc
===================================================================
--- net/base/x509_certificate_win.cc (revision 52800)
+++ net/base/x509_certificate_win.cc (working copy)
@@ -434,54 +434,6 @@
}
}
-void AddCertsFromStore(HCERTSTORE store,
- X509Certificate::OSCertHandles* results) {
- PCCERT_CONTEXT cert = NULL;
-
- while ((cert = CertEnumCertificatesInStore(store, cert)) != NULL) {
- PCCERT_CONTEXT to_add = NULL;
- if (CertAddCertificateContextToStore(
- NULL, // The cert won't be persisted in any cert store. This breaks
- // any association the context currently has to |store|, which
- // allows us, the caller, to safely close |store| without
- // releasing the cert handles.
- cert,
- CERT_STORE_ADD_USE_EXISTING,
- &to_add) && to_add != NULL) {
- // When processing stores generated from PKCS#7/PKCS#12 files, it
- // appears that the order returned is the inverse of the order that it
- // appeared in the file.
- // TODO(rsleevi): Ensure this order is consistent across all Win
- // versions
- results->insert(results->begin(), to_add);
- }
- }
-}
-
-X509Certificate::OSCertHandles ParsePKCS7(const char* data, size_t length) {
- X509Certificate::OSCertHandles results;
- CERT_BLOB data_blob;
- data_blob.cbData = length;
- data_blob.pbData = reinterpret_cast<BYTE*>(const_cast<char*>(data));
-
- HCERTSTORE out_store = NULL;
-
- DWORD expected_types = CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED |
- CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED |
- CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED;
-
- if (!CryptQueryObject(CERT_QUERY_OBJECT_BLOB, &data_blob, expected_types,
- CERT_QUERY_FORMAT_FLAG_BINARY, 0, NULL, NULL, NULL,
- &out_store, NULL, NULL) || out_store == NULL) {
- return results;
- }
-
- AddCertsFromStore(out_store, &results);
- CertCloseStore(out_store, CERT_CLOSE_STORE_CHECK_FLAG);
-
- return results;
-}
-
} // namespace
void X509Certificate::Initialize() {
@@ -801,28 +753,7 @@
return cert_handle;
}
-X509Certificate::OSCertHandles X509Certificate::CreateOSCertHandlesFromBytes(
- const char* data, int length, Format format) {
- OSCertHandles results;
- switch (format) {
- case FORMAT_DER: {
- OSCertHandle handle = CreateOSCertHandleFromBytes(data, length);
- if (handle != NULL)
- results.push_back(handle);
- break;
- }
- case FORMAT_PKCS7:
- results = ParsePKCS7(data, length);
- break;
- default:
- NOTREACHED() << "Certificate format " << format << " unimplemented";
- break;
- }
- return results;
-}
-
-
// static
X509Certificate::OSCertHandle X509Certificate::DupOSCertHandle(
OSCertHandle cert_handle) {

Powered by Google App Engine
This is Rietveld 408576698