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

Unified Diff: chromeos/network/client_cert_util.h

Issue 22588002: Refactor the client certificate code in chromeos/network/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments. Created 7 years, 4 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
« no previous file with comments | « chromeos/network/certificate_pattern_matcher.cc ('k') | chromeos/network/client_cert_util.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/network/client_cert_util.h
diff --git a/chromeos/network/certificate_pattern_matcher.h b/chromeos/network/client_cert_util.h
similarity index 32%
rename from chromeos/network/certificate_pattern_matcher.h
rename to chromeos/network/client_cert_util.h
index a79a548d06abf8fe237ab894f33fe1bf9399c4df..aa3c88274dbd13617a017480f3c5dbd5265940e1 100644
--- a/chromeos/network/certificate_pattern_matcher.h
+++ b/chromeos/network/client_cert_util.h
@@ -2,29 +2,60 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROMEOS_NETWORK_CERTIFICATE_PATTERN_MATCHER_H_
-#define CHROMEOS_NETWORK_CERTIFICATE_PATTERN_MATCHER_H_
+#ifndef CHROMEOS_NETWORK_CLIENT_CERT_UTIL_H_
+#define CHROMEOS_NETWORK_CLIENT_CERT_UTIL_H_
+
+#include <string>
#include "base/memory/ref_counted.h"
#include "chromeos/chromeos_export.h"
+namespace base {
+class DictionaryValue;
+}
+
namespace net {
+struct CertPrincipal;
class X509Certificate;
}
namespace chromeos {
class CertificatePattern;
+class IssuerSubjectPattern;
-namespace certificate_pattern {
+namespace client_cert {
+
+enum ConfigType {
+ CONFIG_TYPE_NONE,
+ CONFIG_TYPE_OPENVPN,
+ CONFIG_TYPE_IPSEC,
+ CONFIG_TYPE_EAP
+};
+
+// Returns true only if any fields set in this pattern match exactly with
+// similar fields in the principal. If organization_ or organizational_unit_
+// are set, then at least one of the organizations or units in the principal
+// must match.
+bool CertPrincipalMatches(const IssuerSubjectPattern& pattern,
+ const net::CertPrincipal& principal);
// Fetches the matching certificate that has the latest valid start date.
// Returns a NULL refptr if there is no such match.
CHROMEOS_EXPORT scoped_refptr<net::X509Certificate> GetCertificateMatch(
const CertificatePattern& pattern);
-} // namespace certificate_pattern
+// If not empty, sets the TPM properties in |properties|. If |pkcs11_id| is not
+// NULL, also sets the ClientCertID. |cert_config_type| determines which
+// dictionary entries to set.
+void SetShillProperties(const ConfigType cert_config_type,
+ const std::string& tpm_slot,
+ const std::string& tpm_pin,
+ const std::string* pkcs11_id,
+ base::DictionaryValue* properties);
+
+} // namespace client_cert
} // namespace chromeos
-#endif // CHROMEOS_NETWORK_CERTIFICATE_PATTERN_MATCHER_H_
+#endif // CHROMEOS_NETWORK_CLIENT_CERT_UTIL_H_
« no previous file with comments | « chromeos/network/certificate_pattern_matcher.cc ('k') | chromeos/network/client_cert_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698