// 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 NET_CERT_MERKLE_CONSISTENCY_PROOF_H_
#define NET_CERT_MERKLE_CONSISTENCY_PROOF_H_

#include <string>
#include <vector>

#include "net/base/net_export.h"
#include "starboard/types.h"

namespace net {

namespace ct {

// Consistency proof between two STHs as defined in section 2.1.2. of RFC6962.
struct NET_EXPORT MerkleConsistencyProof {
  MerkleConsistencyProof();
  MerkleConsistencyProof(const std::string& log_id,
                         const std::vector<std::string>& proof_nodes,
                         uint64_t old_size,
                         uint64_t new_size);
  ~MerkleConsistencyProof();

  // The origin of this proof.
  std::string log_id;

  // Consistency proof nodes.
  std::vector<std::string> nodes;

  // Size of the older tree.
  uint64_t first_tree_size = 0;

  // Size of the newer tree.
  uint64_t second_tree_size = 0;
};

}  // namespace ct

}  // namespace net

#endif  // NET_CERT_MERKLE_CONSISTENCY_PROOF_H_
