12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "net/cert/test_root_certs.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/location.h"
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/logging.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/android/network_library.h"
10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "net/cert/x509_certificate.h"
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace net {
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool TestRootCerts::Add(X509Certificate* certificate) {
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  std::string cert_bytes;
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (!X509Certificate::GetDEREncoded(certificate->os_cert_handle(),
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                      &cert_bytes))
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      return false;
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  android::AddTestRootCertificate(
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      reinterpret_cast<const uint8*>(cert_bytes.data()), cert_bytes.size());
21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  empty_ = false;
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return true;
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void TestRootCerts::Clear() {
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  if (empty_)
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    return;
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  android::ClearTestRootCertificates();
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  empty_ = true;
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool TestRootCerts::IsEmpty() const {
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return empty_;
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TestRootCerts::~TestRootCerts() {}
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void TestRootCerts::Init() {
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  empty_ = true;
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace net
44