// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_WEB_NET_CERT_HOST_PAIR_H_
#define IOS_WEB_NET_CERT_HOST_PAIR_H_

#include <string>

#include "base/gtest_prod_util.h"
#include "base/memory/ref_counted.h"
#include "net/base/hash_value.h"

namespace net {
class X509Certificate;
}

namespace web {

// Holds certificate-host pair. Implements operator less, hence can act as a key
// for a container.
class CertHostPair {
 public:
  CertHostPair(scoped_refptr<net::X509Certificate> cert, std::string host);
  CertHostPair(const CertHostPair& other);
  ~CertHostPair();

  bool operator<(const CertHostPair& other) const;

 private:
  FRIEND_TEST_ALL_PREFIXES(CertHostPairTest, Construction);

  const scoped_refptr<net::X509Certificate> cert_;
  const std::string host_;
  const net::SHA256HashValue cert_hash_;
};

}  // namespace web

#endif  // IOS_WEB_NET_CERT_HOST_PAIR_H_
