| Index: chromeos/network/onc/onc_utils.h
|
| diff --git a/chromeos/network/onc/onc_utils.h b/chromeos/network/onc/onc_utils.h
|
| index d604cfc67a755252ffa17a2d988619db718514b4..f714939ca905045a2aab9db8587f42593c09f227 100644
|
| --- a/chromeos/network/onc/onc_utils.h
|
| +++ b/chromeos/network/onc/onc_utils.h
|
| @@ -5,20 +5,26 @@
|
| #ifndef CHROMEOS_NETWORK_ONC_ONC_UTILS_H_
|
| #define CHROMEOS_NETWORK_ONC_ONC_UTILS_H_
|
|
|
| +#include <map>
|
| #include <string>
|
| +#include <vector>
|
|
|
| #include "base/basictypes.h"
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "chromeos/chromeos_export.h"
|
| #include "chromeos/network/onc/onc_constants.h"
|
| -#include "net/cert/x509_certificate.h"
|
|
|
| namespace base {
|
| class DictionaryValue;
|
| class ListValue;
|
| }
|
|
|
| +namespace net {
|
| +class X509Certificate;
|
| +typedef std::vector<scoped_refptr<X509Certificate> > CertificateList;
|
| +}
|
| +
|
| namespace chromeos {
|
| namespace onc {
|
|
|
| @@ -88,11 +94,46 @@ CHROMEOS_EXPORT bool ParseAndValidateOncForImport(
|
| base::ListValue* network_configs,
|
| base::ListValue* certificates);
|
|
|
| +// Get the hexadecimal representation of the fingerprint of |cert|.
|
| +CHROMEOS_EXPORT std::string GetHexFingerprintOfCert(
|
| + const net::X509Certificate& cert);
|
| +
|
| +// Returns a certificate of |cert_list| with the given |fingerprint|. If none or
|
| +// more than one matching entry exists, returns NULL.
|
| +CHROMEOS_EXPORT net::X509Certificate* FindCertByFingerprint(
|
| + const net::CertificateList& cert_list,
|
| + const std::string& fingerprint);
|
| +
|
| +// Returns the PEM encoding of the certificate of |cert_list| with
|
| +// |fingerprint|. If none or more than one matching entry exists or the encoding
|
| +// failed, returns an empty string.
|
| +CHROMEOS_EXPORT std::string GetPEMEncodedCertFromFingerprint(
|
| + const net::CertificateList& cert_list,
|
| + const std::string& fingerprint);
|
| +
|
| // Parse the given PEM encoded certificate |pem_encoded| and create a
|
| // X509Certificate from it.
|
| CHROMEOS_EXPORT scoped_refptr<net::X509Certificate> DecodePEMCertificate(
|
| - const std::string& pem_encoded,
|
| - const std::string& nickname);
|
| + const std::string& pem_encoded);
|
| +
|
| +// Replaces all references by GUID to Server or CA certs by their fingerprints
|
| +// (see GetHexFingerprintOfCert). Return true, if all references could be
|
| +// resolved. Otherwise return false and network configurations with
|
| +// unresolveable references are removed from
|
| +// |network_configs|. |network_configs| must be a list of ONC
|
| +// NetworkConfiguration dictionaries.
|
| +CHROMEOS_EXPORT bool ResolveServerCertRefsInNetworks(
|
| + const std::map<std::string,
|
| + scoped_refptr<net::X509Certificate> >& certs_by_guid,
|
| + base::ListValue* network_configs);
|
| +
|
| +// Replaces all references by GUID to Server or CA certs by their fingerprints
|
| +// (see GetHexFingerprintOfCert). |network_config| must be a ONC
|
| +// NetworkConfiguration.
|
| +CHROMEOS_EXPORT bool ResolveServerCertRefsInNetwork(
|
| + const std::map<std::string,
|
| + scoped_refptr<net::X509Certificate> >& certs_by_guid,
|
| + base::DictionaryValue* network_config);
|
|
|
| } // namespace onc
|
| } // namespace chromeos
|
|
|