| OLD | NEW |
| 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 #include "chromeos/network/certificate_pattern.h" | 5 #include "chromeos/network/certificate_pattern.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/values.h" | 8 #include "base/values.h" |
| 9 #include "components/onc/onc_constants.h" | 9 #include "components/onc/onc_constants.h" |
| 10 | 10 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 result->reserve(list->GetSize()); | 21 result->reserve(list->GetSize()); |
| 22 for (size_t i = 0; i < list->GetSize(); i++) { | 22 for (size_t i = 0; i < list->GetSize(); i++) { |
| 23 std::string item; | 23 std::string item; |
| 24 if (!list->GetString(i, &item)) | 24 if (!list->GetString(i, &item)) |
| 25 return false; | 25 return false; |
| 26 result->push_back(item); | 26 result->push_back(item); |
| 27 } | 27 } |
| 28 return true; | 28 return true; |
| 29 } | 29 } |
| 30 | 30 |
| 31 base::ListValue* CreateListFromStrings( | |
| 32 const std::vector<std::string>& strings) { | |
| 33 base::ListValue* new_list = new base::ListValue; | |
| 34 for (std::vector<std::string>::const_iterator iter = strings.begin(); | |
| 35 iter != strings.end(); | |
| 36 ++iter) { | |
| 37 new_list->AppendString(*iter); | |
| 38 } | |
| 39 return new_list; | |
| 40 } | |
| 41 | |
| 42 } // namespace | 31 } // namespace |
| 43 | 32 |
| 44 //////////////////////////////////////////////////////////////////////////////// | 33 //////////////////////////////////////////////////////////////////////////////// |
| 45 // IssuerSubjectPattern | 34 // IssuerSubjectPattern |
| 46 IssuerSubjectPattern::IssuerSubjectPattern( | 35 IssuerSubjectPattern::IssuerSubjectPattern( |
| 47 const std::string& common_name, | 36 const std::string& common_name, |
| 48 const std::string& locality, | 37 const std::string& locality, |
| 49 const std::string& organization, | 38 const std::string& organization, |
| 50 const std::string& organizational_unit) | 39 const std::string& organizational_unit) |
| 51 : common_name_(common_name), | 40 : common_name_(common_name), |
| (...skipping 13 matching lines...) Expand all Loading... |
| 65 organizational_unit_.empty(); | 54 organizational_unit_.empty(); |
| 66 } | 55 } |
| 67 | 56 |
| 68 void IssuerSubjectPattern::Clear() { | 57 void IssuerSubjectPattern::Clear() { |
| 69 common_name_.clear(); | 58 common_name_.clear(); |
| 70 locality_.clear(); | 59 locality_.clear(); |
| 71 organization_.clear(); | 60 organization_.clear(); |
| 72 organizational_unit_.clear(); | 61 organizational_unit_.clear(); |
| 73 } | 62 } |
| 74 | 63 |
| 75 scoped_ptr<base::DictionaryValue> IssuerSubjectPattern::CreateONCDictionary() | |
| 76 const { | |
| 77 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); | |
| 78 if (!common_name_.empty()) | |
| 79 dict->SetString(onc::client_cert::kCommonName, common_name_); | |
| 80 if (!locality_.empty()) | |
| 81 dict->SetString(onc::client_cert::kLocality, locality_); | |
| 82 if (!organization_.empty()) | |
| 83 dict->SetString(onc::client_cert::kOrganization, organization_); | |
| 84 if (!organizational_unit_.empty()) | |
| 85 dict->SetString(onc::client_cert::kOrganizationalUnit, | |
| 86 organizational_unit_); | |
| 87 return dict.Pass(); | |
| 88 } | |
| 89 | |
| 90 void IssuerSubjectPattern::ReadFromONCDictionary( | 64 void IssuerSubjectPattern::ReadFromONCDictionary( |
| 91 const base::DictionaryValue& dict) { | 65 const base::DictionaryValue& dict) { |
| 92 Clear(); | 66 Clear(); |
| 93 | 67 |
| 94 dict.GetStringWithoutPathExpansion(onc::client_cert::kCommonName, | 68 dict.GetStringWithoutPathExpansion(onc::client_cert::kCommonName, |
| 95 &common_name_); | 69 &common_name_); |
| 96 dict.GetStringWithoutPathExpansion(onc::client_cert::kLocality, &locality_); | 70 dict.GetStringWithoutPathExpansion(onc::client_cert::kLocality, &locality_); |
| 97 dict.GetStringWithoutPathExpansion(onc::client_cert::kOrganization, | 71 dict.GetStringWithoutPathExpansion(onc::client_cert::kOrganization, |
| 98 &organization_); | 72 &organization_); |
| 99 dict.GetStringWithoutPathExpansion(onc::client_cert::kOrganizationalUnit, | 73 dict.GetStringWithoutPathExpansion(onc::client_cert::kOrganizationalUnit, |
| (...skipping 13 matching lines...) Expand all Loading... |
| 113 return issuer_ca_pems_.empty() && issuer_.Empty() && subject_.Empty(); | 87 return issuer_ca_pems_.empty() && issuer_.Empty() && subject_.Empty(); |
| 114 } | 88 } |
| 115 | 89 |
| 116 void CertificatePattern::Clear() { | 90 void CertificatePattern::Clear() { |
| 117 issuer_ca_pems_.clear(); | 91 issuer_ca_pems_.clear(); |
| 118 issuer_.Clear(); | 92 issuer_.Clear(); |
| 119 subject_.Clear(); | 93 subject_.Clear(); |
| 120 enrollment_uri_list_.clear(); | 94 enrollment_uri_list_.clear(); |
| 121 } | 95 } |
| 122 | 96 |
| 123 scoped_ptr<base::DictionaryValue> CertificatePattern::CreateONCDictionary() | |
| 124 const { | |
| 125 scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); | |
| 126 | |
| 127 if (!issuer_ca_pems_.empty()) { | |
| 128 dict->SetWithoutPathExpansion(onc::client_cert::kIssuerCAPEMs, | |
| 129 CreateListFromStrings(issuer_ca_pems_)); | |
| 130 } | |
| 131 | |
| 132 if (!issuer_.Empty()) | |
| 133 dict->SetWithoutPathExpansion(onc::client_cert::kIssuer, | |
| 134 issuer_.CreateONCDictionary().release()); | |
| 135 | |
| 136 if (!subject_.Empty()) | |
| 137 dict->SetWithoutPathExpansion(onc::client_cert::kSubject, | |
| 138 subject_.CreateONCDictionary().release()); | |
| 139 | |
| 140 if (!enrollment_uri_list_.empty()) | |
| 141 dict->SetWithoutPathExpansion(onc::client_cert::kEnrollmentURI, | |
| 142 CreateListFromStrings(enrollment_uri_list_)); | |
| 143 return dict.Pass(); | |
| 144 } | |
| 145 | |
| 146 bool CertificatePattern::ReadFromONCDictionary( | 97 bool CertificatePattern::ReadFromONCDictionary( |
| 147 const base::DictionaryValue& dict) { | 98 const base::DictionaryValue& dict) { |
| 148 Clear(); | 99 Clear(); |
| 149 | 100 |
| 150 const base::DictionaryValue* child_dict = NULL; | 101 const base::DictionaryValue* child_dict = NULL; |
| 151 const base::ListValue* child_list = NULL; | 102 const base::ListValue* child_list = NULL; |
| 152 | 103 |
| 153 // All of these are optional. | 104 // All of these are optional. |
| 154 if (dict.GetListWithoutPathExpansion(onc::client_cert::kIssuerCAPEMs, | 105 if (dict.GetListWithoutPathExpansion(onc::client_cert::kIssuerCAPEMs, |
| 155 &child_list) && | 106 &child_list) && |
| (...skipping 17 matching lines...) Expand all Loading... |
| 173 &child_list) && | 124 &child_list) && |
| 174 child_list) { | 125 child_list) { |
| 175 if (!GetAsListOfStrings(*child_list, &enrollment_uri_list_)) | 126 if (!GetAsListOfStrings(*child_list, &enrollment_uri_list_)) |
| 176 return false; | 127 return false; |
| 177 } | 128 } |
| 178 | 129 |
| 179 return true; | 130 return true; |
| 180 } | 131 } |
| 181 | 132 |
| 182 } // namespace chromeos | 133 } // namespace chromeos |
| OLD | NEW |