x509_certificate_net_log_param.cc revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
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
3// found in the LICENSE file.
4
5#include "net/cert/x509_certificate_net_log_param.h"
6
7#include <string>
8#include <vector>
9
10#include "base/values.h"
11#include "net/cert/x509_certificate.h"
12
13namespace net {
14
15base::Value* NetLogX509CertificateCallback(const X509Certificate* certificate,
16                                           NetLog::LogLevel log_level) {
17  base::DictionaryValue* dict = new base::DictionaryValue();
18  base::ListValue* certs = new base::ListValue();
19  std::vector<std::string> encoded_chain;
20  certificate->GetPEMEncodedChain(&encoded_chain);
21  for (size_t i = 0; i < encoded_chain.size(); ++i)
22    certs->Append(new base::StringValue(encoded_chain[i]));
23  dict->Set("certificates", certs);
24  return dict;
25}
26
27}  // namespace net
28