CCF
Loading...
Searching...
No Matches
claims.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
5#include "ccf/claims_digest.h"
6#include "ccf/ds/logger.h"
7
8namespace ccf
9{
10 static ClaimsDigest no_claims()
11 {
12 return ClaimsDigest();
13 }
14
15 static ccf::crypto::Sha256Hash entry_leaf(
16 const std::vector<uint8_t>& write_set,
17 const std::optional<ccf::crypto::Sha256Hash>& commit_evidence_digest,
18 const ClaimsDigest& claims_digest)
19 {
20 ccf::crypto::Sha256Hash write_set_digest(write_set);
21
22 if (commit_evidence_digest.has_value())
23 {
24 if (claims_digest.empty())
25 {
27 write_set_digest, commit_evidence_digest.value());
28 }
29 else
30 {
32 write_set_digest,
33 commit_evidence_digest.value(),
34 claims_digest.value());
35 }
36 }
37 else
38 {
39 if (claims_digest.empty())
40 {
41 return ccf::crypto::Sha256Hash(write_set_digest);
42 }
43 else
44 {
45 return ccf::crypto::Sha256Hash(write_set_digest, claims_digest.value());
46 }
47 }
48 }
49}
Definition sha256_hash.h:16
Definition app_interface.h:14