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

Side by Side Diff: chromeos/network/onc/onc_utils.h

Issue 17471005: Move PEM certificate decoding to onc_utils. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROMEOS_NETWORK_ONC_ONC_UTILS_H_ 5 #ifndef CHROMEOS_NETWORK_ONC_ONC_UTILS_H_
6 #define CHROMEOS_NETWORK_ONC_ONC_UTILS_H_ 6 #define CHROMEOS_NETWORK_ONC_ONC_UTILS_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/memory/ref_counted.h"
11 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
12 #include "chromeos/chromeos_export.h" 13 #include "chromeos/chromeos_export.h"
13 #include "chromeos/network/onc/onc_constants.h" 14 #include "chromeos/network/onc/onc_constants.h"
15 #include "net/cert/x509_certificate.h"
14 16
15 namespace base { 17 namespace base {
16 class DictionaryValue; 18 class DictionaryValue;
17 class ListValue; 19 class ListValue;
18 } 20 }
19 21
20 namespace chromeos { 22 namespace chromeos {
21 namespace onc { 23 namespace onc {
22 24
23 struct OncValueSignature; 25 struct OncValueSignature;
(...skipping 18 matching lines...) Expand all
42 // For logging only: strings not user facing. 44 // For logging only: strings not user facing.
43 CHROMEOS_EXPORT std::string GetSourceAsString(ONCSource source); 45 CHROMEOS_EXPORT std::string GetSourceAsString(ONCSource source);
44 46
45 // Used for string expansion with function ExpandStringInOncObject(...). 47 // Used for string expansion with function ExpandStringInOncObject(...).
46 class CHROMEOS_EXPORT StringSubstitution { 48 class CHROMEOS_EXPORT StringSubstitution {
47 public: 49 public:
48 StringSubstitution() {} 50 StringSubstitution() {}
49 virtual ~StringSubstitution() {} 51 virtual ~StringSubstitution() {}
50 52
51 // Returns the replacement string for |placeholder| in 53 // Returns the replacement string for |placeholder| in
52 // |substitute|. Currently, onc::substitutes::kLoginIDField and 54 // |substitute|. Currently, substitutes::kLoginIDField and
53 // onc::substitutes::kEmailField are supported. 55 // substitutes::kEmailField are supported.
54 virtual bool GetSubstitute(std::string placeholder, 56 virtual bool GetSubstitute(std::string placeholder,
55 std::string* substitute) const = 0; 57 std::string* substitute) const = 0;
56 private: 58 private:
57 DISALLOW_COPY_AND_ASSIGN(StringSubstitution); 59 DISALLOW_COPY_AND_ASSIGN(StringSubstitution);
58 }; 60 };
59 61
60 // Replaces all expandable fields that are mentioned in the ONC 62 // Replaces all expandable fields that are mentioned in the ONC
61 // specification. The object of |onc_object| is modified in place. Currently 63 // specification. The object of |onc_object| is modified in place. Currently
62 // onc::substitutes::kLoginIDField and onc::substitutes::kEmailField are 64 // substitutes::kLoginIDField and substitutes::kEmailField are expanded. The
63 // expanded. The replacement strings are obtained from |substitution|. 65 // replacement strings are obtained from |substitution|.
64 CHROMEOS_EXPORT void ExpandStringsInOncObject( 66 CHROMEOS_EXPORT void ExpandStringsInOncObject(
65 const OncValueSignature& signature, 67 const OncValueSignature& signature,
66 const StringSubstitution& substitution, 68 const StringSubstitution& substitution,
67 base::DictionaryValue* onc_object); 69 base::DictionaryValue* onc_object);
68 70
69 // Creates a copy of |onc_object| with all values of sensitive fields replaced 71 // Creates a copy of |onc_object| with all values of sensitive fields replaced
70 // by |mask|. To find sensitive fields, signature and field name are checked 72 // by |mask|. To find sensitive fields, signature and field name are checked
71 // with the function FieldIsCredential(). 73 // with the function FieldIsCredential().
72 CHROMEOS_EXPORT scoped_ptr<base::DictionaryValue> MaskCredentialsInOncObject( 74 CHROMEOS_EXPORT scoped_ptr<base::DictionaryValue> MaskCredentialsInOncObject(
73 const OncValueSignature& signature, 75 const OncValueSignature& signature,
74 const base::DictionaryValue& onc_object, 76 const base::DictionaryValue& onc_object,
75 const std::string& mask); 77 const std::string& mask);
76 78
77 // Decrypts |onc_blob| with |passphrase| if necessary. Clears |network_configs| 79 // Decrypts |onc_blob| with |passphrase| if necessary. Clears |network_configs|
78 // and |certificates| and fills them with the validated NetworkConfigurations 80 // and |certificates| and fills them with the validated NetworkConfigurations
79 // and Certificates of |onc_blob|. Returns false if any validation errors or 81 // and Certificates of |onc_blob|. Returns false if any validation errors or
80 // warnings occurred. Still, some networks or certificates might be added to the 82 // warnings occurred. Still, some networks or certificates might be added to the
81 // output lists and should be further processed by the caller. 83 // output lists and should be further processed by the caller.
82 CHROMEOS_EXPORT bool ParseAndValidateOncForImport( 84 CHROMEOS_EXPORT bool ParseAndValidateOncForImport(
83 const std::string& onc_blob, 85 const std::string& onc_blob,
84 chromeos::onc::ONCSource onc_source, 86 ONCSource onc_source,
85 const std::string& passphrase, 87 const std::string& passphrase,
86 base::ListValue* network_configs, 88 base::ListValue* network_configs,
87 base::ListValue* certificates); 89 base::ListValue* certificates);
88 90
91 // Parse the given PEM encoded certificate |pem_encoded| and create a
92 // X509Certificate from it.
93 CHROMEOS_EXPORT scoped_refptr<net::X509Certificate> GetCertFromPEMEncoding(
Mattias Nissler (ping if slow) 2013/06/20 16:15:36 nit: Maybe DecodePEMCertificate would be a more ac
pneubeck (no reviews) 2013/06/21 11:28:00 Done.
94 const std::string& pem_encoded,
95 const std::string& nickname);
96
89 } // namespace onc 97 } // namespace onc
90 } // namespace chromeos 98 } // namespace chromeos
91 99
92 #endif // CHROMEOS_NETWORK_ONC_ONC_UTILS_H_ 100 #endif // CHROMEOS_NETWORK_ONC_ONC_UTILS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698